1
0

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回はEC2にEFSをマウントしていきます。

環境イメージ

今回は以下のようなイメージで作成しました。
EC2はAmazon Linux2023でデプロイしています。EC2とEFSに関してはEFSマウントヘルパーを使用してマウントしました。
EFSでindex.htmlを共有化し、どちらのEC2に対してWebblousingしても同じ内容が表示されることを確認します。
20240620から-ページ16.drawio.png

構築

SGの作成

EC2とEFSにアタッチするSGを事前に作成していきます。
※セキュリティ的には分けるべきだと思います。
EC2管理画面よりセキュリティグループを選択します。
image.png
今回は以下のような設定にしました。SSH、HTTP、NFS、ICMPを開放しています。
SGの名前をqiita-efs-ec2としています。
screencapture-ap-northeast-1-console-aws-amazon-ec2-home-2024-07-03-05_26_10.png
作成出来たことを確認します。
image.png

EFSのデプロイ

AWSマネジメントコンソールでEFSと検索をかけると出てきますので、これを押下して管理画面に遷移します。
image.png
こんな感じの画面が表示されます。ファイルシステムの作成を押下します。
image.png
カスタマイズを押下します。
image.png
EFSの名前をqiita-efsとしました。
ファイルシステムのタイプですが、1ゾーンの方が安いのですが利便静的なのを見てみたいなと思いリージョンを選択しています。
screencapture-ap-northeast-1-console-aws-amazon-efs-home-2024-07-03-05_32_11.png
EFSをどのVPC、Subnetにデプロイするかを決定します。
今回はデフォルトではなく、自作したVPCとサブネットを選択し、SGは先ほど作成したものを選択しました。
screencapture-ap-northeast-1-console-aws-amazon-efs-home-2024-07-03-05_34_27.png
これはデフォルトのまま先に進みます。設定をした方がセキュリティ的には良いと思います。
image.png
最終確認画面が表示されますので、確認してデプロイしていきます。
screencapture-ap-northeast-1-console-aws-amazon-efs-home-2024-07-03-05_37_45.png

作成されたことが確認できます。作成したEFSにアクセスしてみます。
image.png
EFS内にどれくらいファイルがあるかを確認することが出来るようですね。
image.png

EC2のデプロイとEFSと紐づけ

EC2をデプロイしていきます。今回はAmazon Linux2を選択し、VPCはEFSをデプロイしているのと同じものを選択します。SGも最初に作成したものを選択します。
screencapture-ap-northeast-1-console-aws-amazon-ec2-home-2024-07-03-05_43_52.png
デプロイされたことを確認します。
image.png
TeratermでEC2に接続し以下のコマンドを実行します。

[ec2-user@ip-192-168-1-175 ~]$ sudo su -
[root@ip-192-168-1-175 ~]# dnf update && dnf upgrade -y
[root@ip-192-168-1-175 ~]# dnf install -y amazon-efs-utils
[root@ip-192-168-1-175 ~]# mkdir /mnt/efs

改めてEFSの管理画面に遷移してアタッチを押下します。
image.png
NFSマウントヘルパーのコマンドをコピーします。
image.png
EFSにマウントします。
dfコマンドを実行してマウントされていることを確認します。

[root@ip-192-168-1-175 ~]# mount -t efs -o tls fs-0039132e986f1c7c1:/ /mnt/efs
[root@ip-192-168-1-175 ~]# df -m
Filesystem         1M-blocks  Used     Available Use% Mounted on
devtmpfs                   4     0             4   0% /dev
tmpfs                    475     0           475   0% /dev/shm
tmpfs                    190     1           190   1% /run
/dev/xvda1              8116  1554          6563  20% /
tmpfs                    475     0           475   0% /tmp
/dev/xvda128              10     2             9  13% /boot/efi
tmpfs                     95     0            95   0% /run/user/1000
127.0.0.1:/    8796093022207     0 8796093022207   0% /mnt/efs

apacheをインストールしていきます。

[root@ip-192-168-1-175 ~]# dnf install -y httpd
[root@ip-192-168-1-175 ~]# systemctl start httpd
[root@ip-192-168-1-175 ~]# systemctl enable httpd

apacheで使用するディレクトリ(/var/www/html)にシンボリックリンクを作成したり、シンボリック内にindex.htmlを作成しました。

[root@ip-192-168-1-175 ~]# cd /var/www
[root@ip-192-168-1-175 www]# ls
cgi-bin  html
[root@ip-192-168-1-175 www]# rmdir html/
[root@ip-192-168-1-175 www]# ls
cgi-bin
[root@ip-192-168-1-175 www]# ln -s /mnt/efs /var/www/html
[root@ip-192-168-1-175 www]# ls
cgi-bin  html
[root@ip-192-168-1-175 www]# cd html/
[root@ip-192-168-1-175 html]# vi index.html
[root@ip-192-168-1-175 html]# cat index.html
Hello! EC2 + EFS World!!
[root@ip-192-168-1-175 ~]# systemctl restart httpd

今回のシンボリックのイメージは以下となりますでしょうか?
20240620から-ページ17.drawio.png

Webブラウザでアクセステストをしてみます。
index.htmlに記載の通り表示がされていることがわかりますね。
image.png

マウントされているかの確認

もうひとつEC2インスタンスを立ち上げます。
screencapture-ap-northeast-1-console-aws-amazon-ec2-home-2024-07-03-07_02_22.png
デプロイされたことを確認します。
image.png
Teratermで接続して以下のコマンドを実行します。
初期設定をしたり、EFSに対してマウントなどをしております。

[ec2-user@ip-192-168-2-196 ~]$ sudo su -
[root@ip-192-168-2-196 ~]# dnf update && dnf upgrade -y
[root@ip-192-168-2-196 ~]# dnf install -y amazon-efs-utils httpd
[root@ip-192-168-2-196 ~]# mkdir /mnt/efs
[root@ip-192-168-2-196 ~]# mount -t efs -o tls fs-0039132e986f1c7c1:/ /mnt/efs
[root@ip-192-168-2-196 ~]# systemctl start httpd
[root@ip-192-168-2-196 ~]# systemctl enable httpd
[root@ip-192-168-2-196 ~]# cd /var/www/
[root@ip-192-168-2-196 www]# ls
cgi-bin  html
[root@ip-192-168-2-196 www]# rmdir html/
[root@ip-192-168-2-196 www]# ln -s /mnt/efs /var/www/html
[root@ip-192-168-2-196 www]# ls
cgi-bin  html
[root@ip-192-168-2-196 www]# cd html/
[root@ip-192-168-2-196 html]# ls
index.html
[root@ip-192-168-2-196 html]# cat index.html
Hello! EC2 + EFS World!!

このEC2に対してWebブラウジングしてみます。先程と同じ内容が表示されていることがわかります。
良い感じにEFS環境を使えるようになりました。
image.png

1
0
0

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
1
0