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

最終更新日: 2020 年 3 月 18 日

AWS Elastic Beanstalk 環境のインスタンスに Amazon Elastic File System (Amazon EFS) ボリュームをマウントする事を考えています。

簡単な説明

Elastic Beanstalk 環境では、Amazon EFS を使用して、アプリケーションのユーザーがアップロードまたは変更したファイルを保存する共有ディレクトリを作成できます。アプリケーションはマウントした Amazon EFS ボリュームをローカルストレージのように扱うことができるため、アプリケーションコードを変更して複数のインスタンスにスケールアップする必要はありません。

Amazon EFS ボリュームを Elastic Beanstalk 環境の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにマウントするには、ソースコードに設定ファイルを含める必要があります。

解決方法

1.    Amazon EFS ファイルシステムを作成し、EFS ID とセキュリティグループ ID を書き留めます。

2.    接続を許可するには、EFS のセキュリティグループルールを編集し、Elastic Beanstalk 環境のインスタンスに関連付けられたセキュリティグループからのポート 2049 (ネットワークファイルシステム、または NFS) でインバウンド接続を許可します。

3.    インスタンスセキュリティグループを更新して、ポート 2049 で EFS セキュリティグループへのアウトバウンド接続を許可します。

注: あるサブネットのマウントターゲットを別のサブネットの環境にマウントする場合、Amazon EFS セキュリティグループは Amazon Virtual Private Cloud (Amazon VPC) CIDR からポート 2049 でインバウンド接続を許可する必要があります。

4.    アプリケーションバンドルのルートに、.ebextensions という名前のディレクトリを作成します。

5.    フォーマット済み設定ファイル (YAML または JSON) をディレクトリに追加します。

注: 設定ファイルには、fstab (ファイルシステムテーブル) システム設定ファイルにエントリを追加し、すべての (-a) ファイルシステム (fstab ファイル (タイプ -t nfs4) にリストされている) をマウントするスクリプトが含まれています。Amazon EFS では、タイプは常に nfs4 です。fstab ファイルにリストされているファイルシステムは、デプロイ中に mount-a コマンドを使用して自動的にマウントされます。

6.    ステップ 5 の設定ファイルを含むソースコードを Elastic Beanstalk アプリケーションにデプロイします。

7.    Amazon EFS ボリュームが、指定されたマウントパスのインスタンスにマウントされていることを確認するには、次のコマンドを実行します。

dh -H