こんにちは、星です。
AWS EFSがついにGAリリースとなって各所が賑わっていますね。
検証ついでにAWS CLIでEFS(Amazon Elastic File System )を色々触ってみましたので共有したいと思います。
はじめに
EFSとはなんぞや
浅くまとめるとNFS経由で利用可能な共有ファイルシステムです。
やってみる
実際にやってみた内容
- ファイルシステムの作成(DefaultVPC、1subnet)
- EC2(Amazon Linux)にマウントしてファイルを作成
- 後片付け
上記3本立てで進めていきましょう。
利用可能なコマンド
最新版のCLIバージョンで利用可能なコマンド一覧です(1.10.44)
今回は赤文字のコマンドを使用してEFSを作成します。
- create-file-system
- create-mount-target
- create-tags
- delete-file-system
- delete-mount-target
- delete-tags
- describe-file-systems
- describe-mount-target-security-groups
- describe-mount-targets
- describe-tags
- help
- modify-mount-target-security-groups
プレビュー版ということもあってコマンド数は少なめですね。
下準備
CLIを最新版にアップデートする(重要!)
CLIで作業する前に最新版へのアップデートをしておきましょう。重要ですね(2回目)
1 | [ec2-user@ip-10-0-0-242 ~]$ sudo pip install -U awscli |
プレビュー版のEFSを有効
サービスとしては正式リリース扱いですが、CLIはプレビュー版扱いなので有効化します。
1 | [ec2-user@ip-10-0-0-242 ~]$ aws configure set preview.efs true [ec2-user@ip-10-0-0-242 ~]$ |
EFSの作成
いよいよCLIで作成をしていきます
ファイルシステムの作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [ec2-user@ip-172-31-9-103 ~]$ aws efs create- file -system --creation-token "EFSFileSystemhoshi" --performance-mode "generalPurpose" { "SizeInBytes" : { "Value" : 0 }, "CreationToken" : "EFSFileSystemhoshi" , "CreationTime" : 1467613674.0, "PerformanceMode" : "generalPurpose" , "FileSystemId" : "fs-904fbb39" , "NumberOfMountTargets" : 0, "LifeCycleState" : "creating" , "OwnerId" : "xxxxxxxxxxxxxxxxx" } [ec2-user@ip-172-31-9-103 ~]$ |
ファイルシステムの作成確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | [ec2-user@ip-172-31-9-103 ~]$ aws efs describe- file -systems --creation-token "EFSFileSystemhoshi" { "FileSystems" : [ { "SizeInBytes" : { "Value" : 6144 }, "CreationToken" : "EFSFileSystemhoshi" , "CreationTime" : 1467613674.0, "PerformanceMode" : "generalPurpose" , "FileSystemId" : "fs-904fbb39" , "NumberOfMountTargets" : 0, "LifeCycleState" : "available" , "OwnerId" : "xxxxxxxxxxxxxx" } ] } [ec2-user@ip-172-31-9-103 ~]$ |
Nameタグ付け
マネジメントコンソールの操作と同様にタグ付けもしておきます
1 2 3 | [ec2-user@ip-172-31-9-103 ~]$ aws efs create-tags -- file -system- id "fs-904fbb39" --tags "Key=Name,Value=testfs" [ec2-user@ip-172-31-9-103 ~]$ |
Nameタグ付け確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [ec2-user@ip-172-31-9-103 ~]$ aws efs describe-tags -- file -system- id "fs-904fbb39" { "Tags" : [ { "Value" : "testfs" , "Key" : "Name" } ] } [ec2-user@ip-172-31-9-103 ~]$ |
マウントターゲットの作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [ec2-user@ip-172-31-9-103 ~]$ aws efs create- mount -target -- file -system- id "fs-904fbb39" --subnet- id "subnet-125f7254" { "MountTargetId" : "fsmt-fafa0c53" , "NetworkInterfaceId" : "eni-83b7a5df" , "FileSystemId" : "fs-904fbb39" , "LifeCycleState" : "creating" , "SubnetId" : "subnet-125f7254" , "OwnerId" : "xxxxxxxxxxxxxx" , "IpAddress" : "172.31.1.60" } [ec2-user@ip-172-31-9-103 ~]$ |
マウントターゲット作成確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [ec2-user@ip-172-31-9-103 ~]$ aws efs describe- mount -targets -- file -system- id fs-904fbb39 { "MountTargets" : [ { "MountTargetId" : "fsmt-05fd0bac" , "NetworkInterfaceId" : "eni-963fbeeb" , "FileSystemId" : "fs-904fbb39" , "LifeCycleState" : "available" , "SubnetId" : "subnet-29c92a4c" , "OwnerId" : "xxxxxxxxxxxxxxxxx" , "IpAddress" : "172.31.35.20" } ] } [ec2-user@ip-172-31-9-103 ~]$ |
以上でAWS側でのEFS作成作業は完了です。
使ってみる
作成したEFSをEC2にマウントしてみます
NFSインストール
必要に応じてNFSをインストールします。Amazon Linuxはインストール済みだったので本作業は不要でした。
1 | $ sudo yum install -y nfs-utils |
マウントする
マネジメントコンソール上に書かれているマウント方法通りにマウントしてみます。
1 2 3 4 5 | [ec2-user@ip-172-31-33-152 ~]$ sudo mkdir efs [ec2-user@ip-172-31-33-152 ~]$ sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http: //169 .254.169.254 /latest/meta-data/placement/availability-zone ).fs-9e14e037.efs.us-west-2.amazonaws.com:/ efs [ec2-user@ip-172-31-33-152 ~] |
マウント確認
マウントできました。EB(エクサバイト)なんて表示初めて見ました。
[ec2-user@ip-172-31-33-152 ~]$ df -hFilesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 1.2G 6.6G 15% /
devtmpfs 490M 60K 490M 1% /dev
tmpfs 498M 0 498M 0% /dev/shm
us-west-2b.fs-9e14e037.efs.us-west-2.amazonaws.com:/ 8.0E 0 8.0E 0% /home/ec2-user/efs
[ec2-user@ip-172-31-33-152 ~]$後片付け
うまいことマウントできましたので後片付け(削除)もCLIで実施します。
アンマウント
1 2 3 4 5 6 7 8 9 10 11 12 13 | ec2-user@ip-172-31-9-103 ~]$ sudo umount efs [ec2-user@ip-172-31-9-103 ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 8123812 2720672 5302892 34% / devtmpfs 500712 56 500656 1% /dev tmpfs 509720 0 509720 0% /dev/shm [ec2-user@ip-172-31-9-103 ~]$ |
マウントターゲット削除
マウントターゲット→ファイルシステムの順番で削除をします。
先にファイルシステムから削除しようとしてもエラーになるので注意です。
1 2 3 | [ec2-user@ip-172-31-9-103 ~]$ aws efs delete- mount -target -- mount -target- id "fsmt-fafa0c53" [ec2-user@ip-172-31-9-103 ~]$ |
マウントターゲット削除確認
1 2 3 4 5 6 7 8 9 | [ec2-user@ip-172-31-9-103 ~]$ aws efs describe- mount -targets -- file -system- id "fs-904fbb39 " { "MountTargets" : [] } [ec2-user@ip-172-31-9-103 ~]$ |
ファイルシステム削除
1 2 3 | [ec2-user@ip-172-31-9-103 ~]$ aws efs delete- file -system -- file -system- id "fs-904fbb39" [ec2-user@ip-172-31-9-103 ~]$ |
ファイルシステム削除確認
1 2 3 | [ec2-user@ip-172-31-9-103 ~]$ aws efs delete- file -system -- file -system- id "fs-904fbb39" [ec2-user@ip-172-31-9-103 ~]$ |
以上で削除は完了です。
まとめ
コマンド数も少なく作成、削除まで簡単に実施することが出来ました。
プレビュー版なのでコマンド名、コマンド数が変更になる可能性もあります。
マネジメントコンソールでも数ポチで作成出来ますが、CLIの操作に慣れておくと運用の幅も広がるのでおすすめです。
敷居が高い分、色々調べながら触るのでサービスの理解度が深まるのも利点ですね。
投稿者プロフィール
最新の投稿
AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
セキュリティ2021年7月14日ゼロデイ攻撃とは
セキュリティ2021年7月14日マルウェアとは
WAF2021年7月13日クロスサイトスクリプティングとは?