AWS Elastic Beanstalk 環境の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに Amazon Elastic File System (Amazon EFS) ボリュームをマウントしたいと考えています。
簡単な説明
Elastic Beanstalk 環境では、Amazon EFS を使用して、アプリケーションのユーザーがアップロードまたは変更したファイルを保存する共有ディレクトリを作成できます。アプリケーションはマウントした Amazon EFS ボリュームをローカルストレージとして扱うことができます。したがって、アプリケーションコードを変更して複数のインスタンスにスケールアップする必要はありません。
Amazon EFS ボリュームを Elastic Beanstalk 環境の Amazon EC2 インスタンスにマウントするには、ソースコードに設定ファイルを含める必要があります。
解決方法
1. Amazon EFS ファイルシステムを作成し、Amazon EFS ID とセキュリティグループ ID を書き留めます。
2. 接続を許可するには、ファイルシステムのセキュリティグループルールを編集します。ルールは、Elastic Beanstalk 環境のインスタンスのセキュリティグループからのポート 2049 (ネットワークファイルシステムまたは NFS) でのインバウンド接続を許可する必要があります。
3. インスタンスセキュリティグループを更新して、2049 番ポートで Amazon EFS セキュリティグループへのアウトバウンド接続を許可します。
注: あるサブネットのマウントターゲットを別のサブネットの環境にマウントするときに、Amazon EFS セキュリティグループでインバウンド接続を許可する必要があります。つまり、Amazon Virtual Private Cloud (Amazon VPC) CIDR からのポート 2049 でのインバウンド接続を許可する必要があります。
4. アプリケーションバンドルのルートに、.ebextensions という名前のディレクトリを作成します。
5. フォーマット済み設定ファイル (YAML または JSON) をディレクトリに追加します。
重要: 設定ファイルにファイルシステム ID を追加します。FILE_SYSTEM_ID: {"Ref" : "FileSystem"} を FILE_SYSTEM_ID: fs-xxxxxxxx に置き換えます。設定ファイルには、デプロイ時に Amazon EFS ファイルシステムをインスタンスにマウントするスクリプトが含まれています。
6. ステップ 5 の設定ファイルを含むソースコードを Elastic Beanstalk アプリケーションにデプロイします。
7. Amazon EFS ボリュームが、指定されたマウントパスのインスタンスにマウントされていることを確認するには、次のコマンドを実行します。
df -H
関連情報
EFS ファイルシステムのマウント
Amazon Elastic File System で Elastic Beanstalk を使用する
Amazon EFS のセキュリティ