LoginSignup
4
1

S3 バケットをEC2 インスタンスにマウントする

Last updated at Posted at 2024-01-03

チュートリアルの目的

次のアーキテクチャをどのように構築するかを見ていきます。

00d.png

3つのインスタンスにS3バケットをボリュームとして使用し、これらのインスタンスがデータを共有できるようにマウントする予定です。

以前のチュートリアルで共通のEFSボリュームを使用した似たようなケースについてすでに触れています。

S3をボリュームとして使用すると、パフォーマンスとデータの整合性に関する多くの制約があることに注意してください。 S3はオブジェクトをバージョン管理することができますが、まだ更新されていないオブジェクトがインスタンスに取得される可能性があります。バージョニングを使用する場合は、この種の問題に注意してください。また、EFSはS3よりも優れたパフォーマンスを提供していることにも注意してください。

S3をボリュームとして使用するいくつかの方法があります。たとえば、s3fsのような方法があります。このチュートリアルでは、mount-s3を使用してそれをどのように行うかを説明します。

ロールの作成

検索フィールドに「IAM」と入力してください。

Screenshot 2024-01-02 at 21.08.21.png

IAM」を選択してください。

Screenshot 2024-01-02 at 21.08.21 copy.png

ロール」をクリックしてください。

Screenshot 2024-01-02 at 21.12.26.png

ロールを作成」ボタンをクリックしてください。

Screenshot 2024-01-02 at 21.15.17.png

ユースケース」セクションに移動してください。

Screenshot 2024-01-02 at 21.18.44.png

EC2」を選択してください。

Screenshot 2024-01-02 at 21.21.58 copy.png

次へ」ボタンをクリックしてください。

Screenshot 2024-01-02 at 21.21.58.png

AmazonS3FullAccess」を探して、選択してください。

Screenshot 2024-01-02 at 21.27.27 copy.png

次へ」ボタンをクリックしてください。

Screenshot 2024-01-02 at 21.27.27.png

MyS3RoleFullAccess」というロールに名前を付けてください。

Screenshot 2024-01-02 at 21.34.05.png

ロールを作成」をクリックしてください。

Screenshot 2024-01-02 at 21.42.18.png

S3 バケットの作成

S3 ダッシュボード」にアクセスしてください。「バケットを作成」をクリックしてください。

Screenshot 2024-01-02 at 23.00.09.png

S3バケットを作成し、それに好きな名前を付けます。私の場合、S3バケットの名前はqiita.comになります。

その後、S3 バケットにファイルを追加してください。
例:

Screenshot 2024-01-03 at 8.08.21.png

EC2インスタンスの作成

EC2 ダッシュボード」にアクセスしてください。「インスタンスを起動」をクリックしてください。

MyInstance A」というボリュームに名前を付けてください。

Amazon Linuxを使用していることを確認ください。

また、t2.microを使用していることを確認してください。

このチュートリアルでは、キーペアが要らないので使用しません。

キーペアなしで続行 (推奨されません)」を選択してください。

ネットワーク設定」セクションに移動してください。

AWSは、セキュリティグループを作成すると書いています。

私の場合、セキュリティグループの名前はlaunch-wizard-2となります。ただし、注意してください。あなたの場合、異なる名前になる可能性があります。

次に、「編集」ボタンをクリックしてください。

サブネット」サブセクションに移動してください。

ap-northeast-1a」を選んでください。

MyInstance Bを作成する際には、ap-northeast-1cを選択し、MyInstance Cを作成する際にはap-northeast-1dを選択する必要があります。気をつけてください。

インスタンスを起動」をクリックしてください。

「MyInstance B」と「MyInstance C」を作成

インスタンスBとCを作成する際には、以前にインスタンスAを作成する際に行われたすべての手順を再現してください。ただし、インスタンスBとCがインスタンスAと同じセキュリティグループを使用するように注意してください。また、インスタンスBがサブネットap-northeast-1cを使用し、インスタンスCがサブネットap-northeast-1dを使用するようにも注意してください。

疑問があれば、このチュートリアルに関連する動画をご覧ください。

すべてが順調に進むなら、3インスタンスがあるはずです。

EC2インスタンスの設定

接続して、3つのインスタンスにログインし、次のコマンドを実行してください。
{BUCKET_NAME} をあなたのS3バケットの名前に適切に変更してください。

sudo su
yum update -y
cd /home/ec2-user
wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
yum install ./mount-s3.rpm -y
mount-s3 --version
mkdir s3mount
mount-s3 {BUCKET_NAME} s3mount/ --allow-delete

次のコマンドを入力して、S3バケットが正しくマウントされているかどうかを確認してください:

cd s3mount
ls -ll

もしすべてがうまくいけば、ファイルを見るはずです。

例:

Screenshot 2024-01-03 at 8.53.36.png

ファイルを作成する場合、そのファイルはきちんとS3バケットに作成されます。

例:ファイルを作成します。

echo "Hello World" > test.txt

Screenshot 2024-01-03 at 8.56.00.png

ファイルは、S3バケットに正常に作成されました。

Screenshot 2024-01-03 at 8.59.52.png

ファイルを削除する場合、そのファイルはきちんとS3バケットに削除されます。

例:ファイルを削除します。

rm -f test.txt

ファイルは、S3バケットに正常に作成されました。

動画

必要なら、Youtubeで動画を作成しました。

4
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1