Amazon Linux 2023のCloud9にEFSをマウントしてみた

2023.12.19

こんにちは、岩城です。

本日、Cloud9のサポートプラットフォームにAmazon Linux 2023が追加されましたね。

Amazon Linux 2023である必要は特にないのですが、Cloud9にEFSをマウントする機会がありました。

折角なのでAmazon Linux 2023のCloud9で試してみた結果を共有します。

やってみた

本エントリでは以下のリソースを作成します。

  • VPC
    • 特筆すべき点が無いので省略します
  • EFS
  • Cloud9

EFS

EFSを作成時にマウントターゲットに設定するセキュリティグループを先に作成しておきます。

Cloud9に割り当てられたセキュリティグループIDをソースとするなど、様々な接続制限方法が考えられますが、本エントリでは単純に同一VPCからのアクセスを許可するように設定します。

事前準備したセキュリティグループをマウントターゲットに指定してEFSを作成します。

作成したEFSのコンソールにあるアタッチをクリックします。

すると、以下のようにマウントするためのコマンドが表示されるのでコピーしておきます。

Cloud9

では、Cloud9の環境を作成します。

Cloud9の環境を作成するときのプラットフォームがデフォルトでAmazon Linux 2023になっていました。

あわせて、コンソール上でAmazon Linux 2023の利用を推奨するレコメンドが表示されていることを確認できました。

Cloud9へ接続し、EFSをマウントしていきます。

EFSのコンソールで確認しておいたmountコマンドを実行します。なお、本エントリでは末尾のマウントポイントをefsから/mnt/efsに変更しています。

ここでマウントできない場合、EFSのマウントターゲットのセキュリティグループを見直してください。

$ sudo mkdir -p /mnt/efs
$ sudo chown ec2-user:ec2-user /mnt/efs
$ cd /mnt
$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-0e6a367f04534b576.efs.ap-northeast-1.amazonaws.com:/ /mnt/efs
$ df -h
Filesystem                                               Size  Used Avail Use% Mounted on
devtmpfs                                                 4.0M     0  4.0M   0% /dev
tmpfs                                                    475M     0  475M   0% /dev/shm
tmpfs                                                    190M  2.9M  188M   2% /run
/dev/xvda1                                                10G  6.9G  3.1G  70% /
tmpfs                                                    475M     0  475M   0% /tmp
/dev/xvda128                                              10M  1.3M  8.7M  13% /boot/efi
fs-0e6a367f04534b576.efs.ap-northeast-1.amazonaws.com:/  8.0E     0  8.0E   0% /mnt/efs
tmpfs                                                     95M     0   95M   0% /run/user/1000

つぎに、Cloud9起動時に自動マウントするため、公式ドキュメントを参考にfstabに以下を追記します。

fs-0e6a367f04534b576.efs.ap-northeast-1.amazonaws.com:/ /mnt/efs nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0

これで再起動時に自動でマウントされるようになります。

おわりに

EC2のユーザーデータのように、Cloud9の環境作成時にEFSのマウントまでやってしまいたいな、と思いました。

本エントリがどなたかのお役に立てれば幸いです。