Amazon EFS ハンズオン(構成図あり)

構成図付きの初心者向け EFS ハンズオンです。
2023.04.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コーヒーが好きな emi です。

EFS を利用する機会がありましたので、AWS マネジメントコンソールを使ったハンズオンを作成しました。
EFS に関するコンポーネントについてと、それらはどこに作成されるのかを理解するのに苦労したので、構成図を随所に用意しています。ご参考になれば幸いです。

全体構成

ハンズオン終了時にできる全体構成は以下のようになります。
手元の端末からセッションマネージャー経由で EC2 インスタンスに接続し、EFS ファイルシステムを利用できる状態を目指します。

事前準備

EFS 自体の作成を始める前に、EFS ファイルシステムをマウントするための EC2 インスタンスを作成します。
事前準備では以下のリソースを作成します。

  • VPC(VPC、サブネット、NAT Gateway)
  • IAM ロール
  • EC2 インスタンス

VPC

VPC、サブネット、NAT Gateway を作成します。

東京リージョンで VPC のコンソールに移動し、[VPC を作成] をクリックして VPC を作成します。

項目 設定値 備考
作成するリソース VPC など
名前タグの自動生成 「自動生成」にチェックし「efs-test」と入力
IPv4 CIDR ブロック 10.0.0.0/16
IPv6 CIDR ブロック IPv6 CIDR ブロックなし
テナンシー デフォルト
アベイラビリティゾーン (AZ) の数 2
パブリックサブネットの数 2
プライベートサブネットの数 2
NAT ゲートウェイ 1 AZ 内 プライベートサブネットの EC2 にセッションマネージャーでログインするのに使用
VPC エンドポイント なし
DNS ホスト名を有効化 チェックする
DNS 解決を有効化 チェックする

最後に [VPC を作成] をクリックしてください。
NAT Gateway が有効化されるのに 2 分ほど時間がかかるので、待ちましょう。
「成功」と表示されれば OK です。

IAM ロール

EC2 インスタンスにセッションマネージャー経由で接続するために、IAM ロールを作成します。

IAM コンソールを開き、左のナビゲーションペインから [ロール] -[ロールを作成] をクリックします。

項目 設定値 備考
信頼されたエンティティタイプ AWS のサービス
ユースケース EC2
許可ポリシー 「AmazonSSMManagedInstanceCore」にチェックする
ロール名 ec2-role

[ロールを作成] をクリックし、画面上部に緑のバーで「ロール ec2-role が作成されました。」と表示されれば OK です。

EC2

EFS ファイルシステムをマウントする EC2 インスタンスを作成します。

今回のハンズオン手順では、EFS をマウントする際に EFS マウントヘルパーという Amazon EFS クライアント(amazon-efs-utils ツール) の一部を利用します。
EFS クライアントがサポートされているディストリビューションは以下のページを参照ください。

今回は Amazon Linux 2 を利用します。

東京リージョンで EC2 コンソールを開き、[インスタンスを起動] をクリックしてください。
まずはプライベートサブネットに EC2 インスタンスを起動します。

項目 設定値 備考
Name and tags efs-test-private-ec2
アプリケーションおよび OS イメージ (Amazon マシンイメージ) Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
(クイックスタートで利用できる Amazon Linux 2 を選択)
2023/4/15 時点の最新 AMI ID:ami-052c9af0c988f8bbd
インスタンスタイプ t3.micro 無料利用枠が利用できる方は t2.micro を選択してください。無料利用枠がない場合は t3.micro の方が安価です。
キーペア (ログイン) キーペアなしで続行(推奨されません) セッションマネージャーでログインするため不要
VPC efs-test-vpc 作成した VPC を選択
サブネット efs-test-subnet-private1-ap-northeast-1a ap-northeast-1a のプライベートサブネットを選択
パブリック IP の自動割り当て 無効化
ファイアウォール (セキュリティグループ) セキュリティグループを作成する
セキュリティグループ名 ec2-sg
インバウンドセキュリティグループのルール [削除] をクリックして削除する
[高度な詳細] - [IAM instance profile] ec2-role 作成済みの IAM ロールを選択

[インスタンスを起動] をクリックし、緑のバーで「成功 インスタンスの起動を正常に開始しました」と表示されれば OK です。
プライベートサブネットに EC2 インスタンスを起動できました。
[すべてのインスタンスを表示] をクリックして、インスタンスの画面に移動してください。「efs-test-private-ec2」が起動しているのが確認できます。

続いてパブリックサブネットに EC2 インスタンスを起動します。
[インスタンスを起動] をクリックしてください。

項目 設定値 備考
Name and tags efs-test-public-ec2 「public」と変更
アプリケーションおよび OS イメージ (Amazon マシンイメージ) Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
(クイックスタートで利用できる Amazon Linux 2 を選択)
2023/4/15 時点の最新 AMI ID:ami-052c9af0c988f8bbd
インスタンスタイプ t3.micro 無料利用枠が利用できる方は t2.micro を選択してください。無料利用枠がない場合は t3.micro の方が安価です。
キーペア (ログイン) キーペアなしで続行(推奨されません) セッションマネージャーでログインするため不要
VPC efs-test-vpc 作成した VPC を選択
サブネット efs-test-subnet-public2-ap-northeast-1c ap-northeast-1cパブリックサブネットを選択
パブリック IP の自動割り当て 有効化 セッションマネージャーでログインするためにパブリック IP が必要なため
ファイアウォール (セキュリティグループ) 既存のセキュリティグループを選択する
共通のセキュリティグループ ec2-sg 作成済みのセキュリティグループを選択
[高度な詳細] - [IAM instance profile] ec2-role 作成済みの IAM ロールを選択

[インスタンスを起動] をクリックし、緑のバーで「成功 インスタンスの起動を正常に開始しました」と表示されれば OK です。
パブリックサブネットに EC2 インスタンスを起動できました。
[すべてのインスタンスを表示] をクリックして、インスタンスの画面に移動してください。「efs-test-public-ec2」が起動しているのが確認できます。

ここまでが事前準備でした。
ここから、EFS に関する構築をおこなっていきます。

EFS マウントターゲット用セキュリティグループの作成

EFS ファイルシステムを EC2 インスタンスからマウントするために、マウントターゲットというものを作成する必要があります。
マウントターゲットにはセキュリティグループが必要なので、先に作成しておきます。

東京リージョンの EC2 コンソールで [セキュリティグループ] - [セキュリティグループを作成] をクリックします。

項目 設定値 備考
セキュリティグループ名 efs-mounttarget-sg
説明 efs-mounttarget-sg
VPC efs-test-vpc
インバウンドルール タイプ:NFS
プロトコル:TCP
ポート範囲:2049
ソース:ec2-sg
説明:from ec2-sg
アウトバウンドルール タイプ:すべてのトラフィック
プロトコル:すべて
ポート範囲:すべて
送信先:0.0.0.0/0
デフォルト

[セキュリティグループを作成] をクリックし、緑のバーで「セキュリティグループが正常に作成されました」と表示されれば OK です。

EFS ファイルシステム、マウントターゲットの作成

EFS ファイルシステムと、マウントターゲットを作成します。

東京リージョンで EFS コンソールを開き、[ファイルシステム] - [ファイルシステムの作成] をクリックします。

[カスタマイズ] をクリックします。

名前に「efs-test」と入力し、そのほかの設定値はそのままで [次へ] をクリックします。

ネットワークで、VPC は作成済みの「efs-test-vpc」を選択します。
マウントターゲットは以下のように設定します。

アベイラビリティゾーン サブネット ID IP アドレス セキュリティグループ 備考
ap-northeast-1a efs-test-subnet-private1-ap-northeast-1a
(efs-test-private-ec2 と同じサブネットを選択)
自動 efs-mounttarget-sg デフォルトセキュリティグループは×で削除する
ap-northeast-1c efs-test-subnet-public2-ap-northeast-1c
(efs-test-public-ec2 と同じサブネットを選択)
自動 efs-mounttarget-sg デフォルトセキュリティグループは×で削除する

[次へ] をクリックします。

「ファイルシステムポリシー - オプション」では何も設定せず、[次へ] をクリックします。

確認して作成画面が表示されるので、画面下部までスクロールして [作成] をクリックします。
緑のバーで「成功!」と表示されれば OK です。

EFS ファイルシステム名のリンクをクリックして詳細画面に遷移します。
[ネットワーク] タブをクリックすると、マウントターゲットの状態が確認できます。
マウントターゲットが「利用可能」になるには 1 分程度時間がかかります。

EC2 インスタンス(Amazon Linux 2)から EFS ファイルシステムをマウントする

EC2 インスタンスに接続し、コマンドで EFS ファイルシステムをマウントします。

EFS ファイルシステムをマウントするために、EFS マウントヘルパーというものを使用します。
EFS マウントヘルパーというのは、Amazon EFS クライアント(amazon-efs-utils パッケージ)の一部です。
そのため EC2 に EFS クライアントをインストールします。
そして、マウントする際は EFS マウントヘルパーを使用したマウントコマンドを実行します。

詳細はこちらのページをご参照ください。

まず、作成済みの EFS ファイルシステムの詳細画面で [アタッチ] をクリックします。

すると、Linux インスタンスに EFS ファイルシステムをマウントするためのコマンドが表示されます。
[DNS 経由でマウント] が選択されていることを確認して、「EFS マウントヘルパーの使用:」の後のコマンドをコピーして手元にメモしておきます。

  • コピーしたコマンド
    sudo mount -t efs -o tls fs-0b5b26c1cecd9c0d6:/ efs

EFS コンソールでの作業はここまでです。

続いて EC2 インスタンス側で以下の作業をおこないます。

  • EFS クライアントのインストール
  • efs ディレクトリの作成
  • EFS ファイルシステムのマウント

東京リージョンで EC2 コンソールを開き、efs-test-private-ec2 にチェックして [接続] をクリックし、セッションマネージャーでログインします。

セッションマネージャーで接続できたら、ユーザーを ec2-user に切り替えておきます。

sudo su - ec2-user

次のコマンドを実行して、amazon-efs-utils パッケージ(EFS クライアント)をインストールします。

sudo yum install -y amazon-efs-utils
  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ sudo yum install -y amazon-efs-utils
    Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
    amzn2-core                                                                                                                            | 3.7 kB  00:00:00
    Resolving Dependencies
    --> Running transaction check
    ---> Package amazon-efs-utils.noarch 0:1.34.5-1.amzn2 will be installed
    --> Processing Dependency: stunnel5 for package: amazon-efs-utils-1.34.5-1.amzn2.noarch
    --> Running transaction check
    ---> Package stunnel5.x86_64 0:5.58-1.amzn2.0.1 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =============================================================================================================================================================
     Package                                  Arch                           Version                                    Repository                          Size
    =============================================================================================================================================================
    Installing:
     amazon-efs-utils                         noarch                         1.34.5-1.amzn2                             amzn2-core                          56 k
    Installing for dependencies:
     stunnel5                                 x86_64                         5.58-1.amzn2.0.1                           amzn2-core                         165 k
    
    Transaction Summary
    =============================================================================================================================================================
    Install  1 Package (+1 Dependent package)
    
    Total download size: 221 k
    Installed size: 526 k
    Downloading packages:
    (1/2): amazon-efs-utils-1.34.5-1.amzn2.noarch.rpm                                                                                     |  56 kB  00:00:00
    (2/2): stunnel5-5.58-1.amzn2.0.1.x86_64.rpm                                                                                           | 165 kB  00:00:00
    -------------------------------------------------------------------------------------------------------------------------------------------------------------
    Total                                                                                                                        1.9 MB/s | 221 kB  00:00:00
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : stunnel5-5.58-1.amzn2.0.1.x86_64                                                                                                          1/2
      Installing : amazon-efs-utils-1.34.5-1.amzn2.noarch                                                                                                    2/2
      Verifying  : amazon-efs-utils-1.34.5-1.amzn2.noarch                                                                                                    1/2
      Verifying  : stunnel5-5.58-1.amzn2.0.1.x86_64                                                                                                          2/2
    
    Installed:
      amazon-efs-utils.noarch 0:1.34.5-1.amzn2
    
    Dependency Installed:
      stunnel5.x86_64 0:5.58-1.amzn2.0.1
    
    Complete!
    [ec2-user@ip-10-0-137-81 ~]$

続いて、以下のページを参考に、EFS ファイルシステムをマウントしていきます。

まず以下のコマンドを実行して、EFS ファイルシステムをマウントするディレクトリを作成します。

sudo mkdir efs

ls コマンドを実行し、efs ディレクトリが作成できたことを確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ ls
    efs
    [ec2-user@ip-10-0-137-81 ~]$

「EFS のアタッチ」画面でコピーしておいたコマンドの末尾を、今作成したディレクトリのパスに書き換えます。

コピーしておいたコマンド

sudo mount -t efs -o tls fs-0b5b26c1cecd9c0d6:/ efs


修正後のコマンド

sudo mount -t efs -o tls fs-0b5b26c1cecd9c0d6:/ /home/ec2-user/efs

修正後のコマンドを実行し、EFS ファイルシステムをマウントします。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ sudo mount -t efs -o tls fs-0b5b26c1cecd9c0d6:/ /home/ec2-user/efs
    [ec2-user@ip-10-0-137-81 ~]$

df -T コマンドを実行して、EFS ファイルシステムがマウントされていることを確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ df -T
    Filesystem     Type            1K-blocks    Used        Available Use% Mounted on
    devtmpfs       devtmpfs           466268       0           466268   0% /dev
    tmpfs          tmpfs              475048       0           475048   0% /dev/shm
    tmpfs          tmpfs              475048     512           474536   1% /run
    tmpfs          tmpfs              475048       0           475048   0% /sys/fs/cgroup
    /dev/nvme0n1p1 xfs               8376300 1683748          6692552  21% /
    tmpfs          tmpfs               95012       0            95012   0% /run/user/0
    127.0.0.1:/    nfs4     9007199254739968       0 9007199254739968   0% /home/ec2-user/efs
    [ec2-user@ip-10-0-137-81 ~]$

ハイライト部分が、Type=nfs4 となっており、/home/ec2-user/efs がマウントされていることが分かる出力です。

mount コマンドでも確認してみます。
mount | grep /home/ec2-user/efs を実行します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ mount | grep /home/ec2-user/efs
    127.0.0.1:/ on /home/ec2-user/efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,port=20244,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)
    [ec2-user@ip-10-0-137-81 ~]$

ここまでで、efs-test-private-ec2 で EFS ファイルシステムをマウントすることができました。
efs-test-private-ec2 のセッションマネージャーのブラウザタブは開いたままにしておきます。

同様に、efs-test-public-ec2 でも EFS ファイルシステムをマウントします。
EC2 コンソールで efs-test-public-ec2 にチェックして [接続] をクリックし、セッションマネージャーでログインします。
efs-test-privatec-ec2 と同様、以下の操作を実施します。

  • EFS クライアントのインストール
  • efs ディレクトリの作成
  • EFS ファイルシステムのマウント
sh-4.2$ sudo su - ec2-user
[ec2-user@ip-10-0-24-168 ~]$ sudo yum install -y amazon-efs-utils
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                            | 3.7 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package amazon-efs-utils.noarch 0:1.34.5-1.amzn2 will be installed
--> Processing Dependency: stunnel5 for package: amazon-efs-utils-1.34.5-1.amzn2.noarch
--> Running transaction check
---> Package stunnel5.x86_64 0:5.58-1.amzn2.0.1 will be installed
--> Finished Dependency Resolution
 :
 :
 :
Complete!
[ec2-user@ip-10-0-24-168 ~]$ sudo mkdir efs
[ec2-user@ip-10-0-24-168 ~]$ ls
efs
[ec2-user@ip-10-0-24-168 ~]$ sudo mount -t efs -o tls fs-0b5b26c1cecd9c0d6:/ /home/ec2-user/efs
[ec2-user@ip-10-0-24-168 ~]$ df -T
Filesystem     Type            1K-blocks    Used        Available Use% Mounted on
devtmpfs       devtmpfs           466268       0           466268   0% /dev
tmpfs          tmpfs              475048       0           475048   0% /dev/shm
tmpfs          tmpfs              475048     460           474588   1% /run
tmpfs          tmpfs              475048       0           475048   0% /sys/fs/cgroup
/dev/nvme0n1p1 xfs               8376300 1683828          6692472  21% /
tmpfs          tmpfs               95012       0            95012   0% /run/user/0
127.0.0.1:/    nfs4     9007199254739968       0 9007199254739968   0% /home/ec2-user/efs
[ec2-user@ip-10-0-24-168 ~]$ mount | grep /home/ec2-user/efs
127.0.0.1:/ on /home/ec2-user/efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,port=20755,timeo=600,retrans=2,sec=sys,clientaddr=127.0.0.1,local_lock=none,addr=127.0.0.1)
[ec2-user@ip-10-0-24-168 ~]$

ここまでで、efs-test-public-ec2 で EFS ファイルシステムをマウントすることができました。
efs-test-public-ec2 のセッションマネージャーのブラウザタブは開いたままにしておきます。

ファイルが共有されるか確認する

開いておいた efs-test-private-ec2 のセッションマネージャーのブラウザタブに戻ります。
cd efs コマンドで、マウントした efs ディレクトリに移動します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ cd efs
    [ec2-user@ip-10-0-137-81 efs]$

ls コマンドで一覧を表示し、中身が空であることを確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 efs]$ ls
    [ec2-user@ip-10-0-137-81 efs]$

sudo chmod go+rw . を実行し、現在のディレクトリ内に読み取り・書き込み権限を付与します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 efs]$ sudo chmod go+rw .
    [ec2-user@ip-10-0-137-81 efs]$

touch efs-test-private-ec2-test.txt を実行し、テストファイルを作成します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 efs]$ touch efs-test-private-ec2-test.txt
    [ec2-user@ip-10-0-137-81 efs]$

ls コマンドで一覧を表示し、efs-test-private-ec2-test.txt が作成されたことを確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 efs]$ ls
    efs-test-private-ec2-test.txt
    [ec2-user@ip-10-0-137-81 efs]$

ここで、efs-test-public-ec2 のセッションマネージャーのブラウザタブに移動します。
cd efs コマンドで、マウントした efs ディレクトリに移動します。
ls コマンドで一覧を表示し、ディレクトリの中身を確認します。

  • 実行結果
    [ec2-user@ip-10-0-24-168 efs]$ ls
    efs-test-private-ec2-test.txt
    [ec2-user@ip-10-0-24-168 efs]$

efs-test-private-ec2 で作成したテキストファイルを確認することができました。

同様に、efs-test-public-ec2 でもテキストを作成してみましょう。
touch efs-test-public-ec2.txt を実行し、テストファイルを作成します。

  • 実行結果
    [ec2-user@ip-10-0-24-168 efs]$ touch efs-test-public-ec2.txt
    [ec2-user@ip-10-0-24-168 efs]$

ls コマンドで一覧を表示し、ディレクトリの中身を確認します。

  • 実行結果
    [ec2-user@ip-10-0-24-168 efs]$ ls
    efs-test-private-ec2-test.txt  efs-test-public-ec2.txt
    [ec2-user@ip-10-0-24-168 efs]$

ここで、efs-test-private-ec2 のセッションマネージャーのブラウザタブに移動します。
ls コマンドで一覧を表示し、ディレクトリの中身を確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 efs]$ ls
    efs-test-private-ec2-test.txt  efs-test-public-ec2.txt
    [ec2-user@ip-10-0-137-81 efs]$

efs-test-public-ec2 で作成したテキストファイルを確認することができました。

EFS ファイルシステムをアンマウントする

EFS ファイルシステムのアンマウントも実施してみましょう。
efs-test-private-ec2 のセッションマネージャーのブラウザタブを開きます。
現在 ec2-user で efs ディレクトリにいる状態なので、cd .. コマンドでディレクトリから移動します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 efs]$ cd ..
    [ec2-user@ip-10-0-137-81 ~]$

pwd コマンドで、現在の作業ディレクトリ(カレントディレクトリ)が EFS をマウントしたディレクトリ(/home/ec2-user/efs)ではないことを確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ pwd
    /home/ec2-user
    [ec2-user@ip-10-0-137-81 ~]$

sudo umount /home/ec2-user/efs コマンドを実行して、EFS ファイルシステムをアンマウントします。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ sudo umount /home/ec2-user/efs
    [ec2-user@ip-10-0-137-81 ~]$

ls /home/ec2-user/efs コマンドで efs ディレクトリの中身を確認します。

  • 実行結果
    [ec2-user@ip-10-0-137-81 ~]$ ls /home/ec2-user/efs
    [ec2-user@ip-10-0-137-81 ~]$

何も表示されず、EFS ファイルシステム上に作成したファイルが見えなくなっているのが確認できました。
exit コマンドで、EC2 からログアウトしておきましょう。

同様に、efs-test-public-ec2 のセッションマネージャーのブラウザタブを開き、EFS ファイルシステムをアンマウントしておきましょう。

EFS ファイルシステムがアンマウントできないとき

実行中のプロセスがあると以下のように表示され、アンマウントできません。

[ec2-user@ip-10-0-137-81 ~]$ sudo umount /home/ec2-user/efs
umount.nfs4: /home/ec2-user/efs: device is busy
[ec2-user@ip-10-0-137-81 ~]$

まず pwd コマンドで、現在の作業ディレクトリ(カレントディレクトリ)が EFS をマウントしたディレクトリ(/home/ec2-user/efs)ではないことを確認します。
もし現在の作業ディレクトリ(カレントディレクトリ)が EFS をマウントしたディレクトリ(/home/ec2-user/efs)の場合、cd ~cd .. コマンドなどでディレクトリを移動してください。

ファイルシステムを使用しているプロセスを確認するために以下のコマンドを実行します。

sudo lsof /home/ec2-user/efs

表示された実行中のプロセスの PID を確認し、以下のコマンドでプロセスを終了させます。

sudo kill -9 [PID]

お片付け

ハンズオンが完了したら、リソースを削除しておきましょう。

EFS の削除

EFS のコンソールを開き、作成した EFS ファイルシステムを選択して [削除] をクリックします。

ファイルシステム の ID を入力し、[確認] をクリックします。

緑のバーで「成功!」と表示されれば OK です。

EC2 の削除

EC2 コンソールに移動し、作成した起動中の EC2 2 台にチェックを入れます。
[インスタンスの状態] - [インスタンスを終了] をクリックします。

[終了] をクリックします。

緑のバーで「正常に終了しました」と表示されれば OK です。

VPC の削除

VPC コンソールに移動し、ナビゲーションペインで [NAT ゲートウェイ] を選択します。
「efs-test-~~」から始まる NAT Gateway を選択し、[アクション] - [NAT ゲートウェイを削除] をクリックします。

「削除」と入力し、[削除] をクリックします。

「Deliting」から「Deleted」になるのに 1 分程度待ちます。

NAT Gateway の状態が「Deleted」になったら、NAT Gateway に付与されていた Elastic IP を解放します。
ナビゲーションペインから [Elastic IP] を選択します。
「efs-test-~~」から始まる Elastic IP を選択し、[アクション] - [Elastic IP の解放] をクリックします。

確認画面で [解放] をクリックし、緑のバーで「Elastic IP アドレスが解放されました」と表示されたら OK です。

最後に VPC を削除します。
ナビゲーションペインから [お使いの VPC] を選択します。
「efs-test-vpc」を選択し、[アクション] - [VPC の削除] をクリックします。

「削除」と入力し、[削除] をクリックします。
緑のバーで「vpc-xxxxxxxxxx / efs-test-vpc および 10 個のその他のリソースが正常に削除されました。」と表示されたら OK です。

IAM ロールの削除

IAM コンソールに移動し、ナビゲーションペインから [ロール] を選択します。
検索窓で「ec2-role」を検索し、ec2-role にチェックを入れ、[削除] をクリックします。

「ec2-role」と入力し、[削除] をクリックします。
緑のバーで「ロール ec2-role が削除されました。」と表示されたら OK です。

終わりに

私はハンズオンを実施するたび「今何を作っているの?」となってしまいます。
本ハンズオンは、全体像を確認したうえで作業を進め、そして今何を実施しているのかが分かるような構成を心がけて作成しました。
本ハンズオンが皆様の EFS の理解につながれば幸いです。

参考