はじめに
SSAの勉強を通してEFSについて学びましたが、使ったことはなかったので実際にEC2にマウントするところまでやってみました。
EC2にマウントするまで
ネットワークを作成
今回はVPCを1つ、サブネットを1つ作成し、1AZで構築します。
注意点として、VPCのDNS設定で、「DNS解決」と「DNSホスト名」の2つを有効化しておく必要があります。
EC2にインターネット越しにSSHでアクセスする場合はインターネットゲートウェイをアタッチし、ルートテーブルで0.0.0.0/0
のターゲットにインターネットゲートウェイを指定しておきましょう。
セキュリティグループを作成
EC2用とEFS用の2つのセキュリティグループを作成します。
EC2用
ルール | タイプ | プロトコル | ポート範囲 | ソース |
---|---|---|---|---|
インバウンド | SSH | TCP | 22 | 自端末のIPアドレス |
アウトバウンド | すべて | すべて | すべて | 0.0.0.0/0 |
EC2用にはEFSに特別必要な設定項目はありません。
EFS用
ルール | タイプ | プロトコル | ポート範囲 | ソース |
---|---|---|---|---|
インバウンド | NFS | TCP | 2049 | EC2用のセキュリティグループ |
アウトバウンド | すべて | すべて | すべて | 0.0.0.0/0 |
EFS用では、EC2からの受信を受け付けるため、nfsのポート2049のインバウンドを許可しておきます。
EC2を作成
t2.microなどのインスタンスタイプで適当に作成します。セキュリティグループは先程作成したものを使用し、後でSSH接続できるよう、パブリックIPとキーペアを設定しておきます。
EFSを作成
今回の本題です。
EFSのマネジメントコンソールから「ファイルシステムの作成」を選択し、「カスタマイズ」から詳細設定画面を開きます。
今回は安価に作成するため、ストレージクラスは「1ゾーン」にし、EC2と同じAZを指定します。また、自動バックアップは無効化しておきます。
ネットワークアクセス画面ではさきほど作成したEFS用のセキュリティグループを指定します。
これでEFSが作成できました。
EC2でEFSをマウント
SSHでEC2にログインし、EFSのDNS名を使ってマウントします。
マウントのコマンドはEFSの画面でアタッチをクリックすると、コマンドが表示されます。
マウント先のディレクトリを作成し、コマンドをコピペするとマウントできます。
sudo mkdir -p /mnt/efs
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <EFSのDNS名>:/ /mnt/efs
料金
EFSの使用料金は、基本的にはストレージ使用量+データへのアクセス量で決まります。また、ストレージ使用量はストレージのタイプによって異なります。
今回は1ゾーンストレージを使用したので、1GB使用すると1月当たり0.192USDかかります。安いですね。
おわりに
めっちゃ簡単!!!!
題材としては気楽にできてちょうどいいので、今度CLIやSDK使った場合も試したい。