Amazon EC2にS3を簡単にマウントする方法

クラウド上の仮想マシンを扱っていると、ディスクの容量を気にしたくないことから、クラウドストレージを利用したいことがあります。最近ですと、Amazon EC2にAmazon S3をマウントして利用したりするでしょう。いろいろな方法がありますが、私が最も簡単だと思う方法を紹介したいと思います。

手順

  1. S3のバケットを作成
  2. IAMを作成
  3. EC2より仮想インスタンスの立ち上げ
  4. goofysのインストール
  5. S3のマウント
  6. テストファイルの書き込み

1. S3のバケットを作成

仮想インスタンスにマウントするためのS3バケットを作成します。ここでは「gb-system」バケットを用意しました。特別な設定は必要なくデフォルトで作成して問題ありません。

2. IAMを作成

EC2の仮想インスタンスよりS3にアクセスするための権限を用意します。AWS CLIを利用する方法もありますが、特別細かな設定が不要であれば、IAMを利用し直接権限を与えるほうが簡単です。 AWSのコンソールから「IAM」サービスより「ロール」をクリックします。そして「ロールの作成」ボタンをクリックします。 「EC2」を選択し、次のステップへ進みます。 「ポリシーのフィルタ」に「S3」と入力し「AmazonS3FullAccess」を探しチェックを入れます。そして次のステップへ進んで下さい。 ここではロールの名前を「EC2_to_S3」としました。

3. EC2より仮想インスタンスの立ち上げ

EC2より仮想インスタンスを立ち上げます。今回はAmazon Linux2を利用します。立ち上げる際の注意点は、Step2において「IAMロールの設定」を行うことです。2.で作成したIAMを設定して下さい。それ以外に特別な設定はありません。 念のため、立ち上げ直後はOSをupdateしておきましょう。

4. goofysのインストール

S3をマウントする方法はいくつかありますが、転送速度の観点から個人的にはgoofysがオススメです。このgoofysはGO言語により実装されているため、GO言語のインストールも必要です。またFUSE (Filesystem in Userspace) を利用して仮想ファイルシステムを構築します。 次にGOPATHを設定してgoofysをインストールします。 go getに数分掛かりますので、反応がなくても慌てないでください。

5. S3の自動マウント

goofysがインストールできたら、コマンドだけでS3をマウントすることができます。しかし、OS再起動の際は再マウントが必要になるので、最初から再マウントできるように設定しましょう。自動マウント設定の際、ユーザのuid, gidが必要になるので予め確認しておきます。 今回の場合、uid=1000, gid=1000と表示されています。 またマウントするためのディレクトリも作成しましょう。 では自動マウントのため「/etc/fstab」を編集しましょう。 この末尾に次のように入力して保存して下さい。 (goofys#の後ろは「S3バケット名」です。また –uid, –gidは idコマンドで調べた値に置き換えてください。) これで設定は完了です。OSを再起動してみましょう。 起動したらマウントできているか確認します。 確かにマウントされていますね。容量は1PB (ペタバイト)と記されています。

6. テストファイルの書き込み

ではファイルを書き込んでみましょう。 S3よりファイルを確認します。 確かにS3にファイルが書き込まれました。ダウンロードしてファイルの内容を確認すると、「Hello S3」と記されています。自動マウント設定済みですので、予期しない再起動があった場合でも問題ありません。

まとめ

goofysを利用すると、EC2で用意した仮想インスタンスに簡単にS3をマウントすることができました。これで無制限にファイルを保存することができます。例えばサーバのログはどんどん溜まっていくので、S3に出力されるようにしておくと容量の心配がいらないですね。使いみちはいろいろと考えられるのでぜひ活用してみて下さい。
» お仕事のご依頼はこちら