こんにちは、星です。
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回目)
[ec2-user@ip-10-0-0-242 ~]$ sudo pip install -U awscli
プレビュー版のEFSを有効
サービスとしては正式リリース扱いですが、CLIはプレビュー版扱いなので有効化します。
[ec2-user@ip-10-0-0-242 ~]$ aws configure set preview.efs true [ec2-user@ip-10-0-0-242 ~]$
EFSの作成
いよいよCLIで作成をしていきます
ファイルシステムの作成
[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 ~]$
ファイルシステムの作成確認
[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タグ付け
マネジメントコンソールの操作と同様にタグ付けもしておきます
[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タグ付け確認
[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 ~]$
マウントターゲットの作成
[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 ~]$
マウントターゲット作成確認
[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はインストール済みだったので本作業は不要でした。
$ sudo yum install -y nfs-utils
マウントする
マネジメントコンソール上に書かれているマウント方法通りにマウントしてみます。
[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で実施します。
アンマウント
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 ~]$
マウントターゲット削除
マウントターゲット→ファイルシステムの順番で削除をします。
先にファイルシステムから削除しようとしてもエラーになるので注意です。
[ec2-user@ip-172-31-9-103 ~]$ aws efs delete-mount-target --mount-target-id "fsmt-fafa0c53" [ec2-user@ip-172-31-9-103 ~]$
マウントターゲット削除確認
[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 ~]$
ファイルシステム削除
[ec2-user@ip-172-31-9-103 ~]$ aws efs delete-file-system --file-system-id "fs-904fbb39" [ec2-user@ip-172-31-9-103 ~]$
ファイルシステム削除確認
[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日クロスサイトスクリプティングとは?