Elastic Beanstalk 環境のインスタンスに Amazon EFS ボリュームをマウントする方法を教えてください。

最終更新日: 2021 年 6 月 15 日

Amazon Elastic File System (Amazon EFS) ボリュームを Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにマウントしたいと考えています。インスタンスは AWS Elastic Beanstalk 環境にあります。

簡単な説明

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