翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: EFS ファイルシステムを作成し、 を使用してEC2インスタンスにマウントする AWS CLI
暗号化されたEFSファイルシステムを作成し、 のEC2インスタンスにマウントしVPC、 を使用してセットアップをテストします AWS CLI。
注記
使用開始 チュートリアルでは、コンソールを使用して Amazon EC2と EFS リソースを作成します。このチュートリアルでは、 を使用して同じ AWS CLI ことを行います。主に Amazon EFS に慣れるために使用しますAPI。
このチュートリアルでは、 アカウントに次の AWS リソースを作成します。
-
Amazon EC2リソース:
-
2 つのセキュリティグループ (EC2インスタンスとEFSファイルシステム用)。
セキュリティグループにルールを追加して、適切なインバウンド/アウトバウンドアクセスを許可します。これにより、 EC2instanceは標準の NFSv4.1 TCP ポートを使用してマウントターゲットを介してファイルシステムに接続できます。
-
のEC2インスタンスVPC。
-
-
Amazon EFSリソース:
-
ファイルシステム。
-
ファイルシステムのマウントターゲット。
EC2 インスタンスにファイルシステムをマウントするには、 にマウントターゲットを作成する必要がありますVPC。のアベイラビリティーゾーンごとに 1 つのマウントターゲットを作成できますVPC。詳細については、「Amazon EFSの仕組み」を参照してください。
-
次に、EC2インスタンスでファイルシステムをテストします。チュートリアルの最後にあるクリーンアップステップでは、これらのリソースを削除するための情報を提供します。
このチュートリアルでは、米国西部 (オレゴン) リージョン () にこれらのリソースをすべて作成しますus-west-2
。どちら AWS リージョン を使用する場合でも、常に使用してください。、 リソースVPC、および EC2リソースを含むすべてのEFSリソースは、同じ に存在する必要があります AWS リージョン。
トピック
前提条件
-
のルート認証情報を使用してコンソールに AWS アカウント サインインし、開始方法の演習を試すことができます。ただし、 AWS Identity and Access Management (IAM) では、 のルート認証情報を使用しないことをお勧めします AWS アカウント。代わりに、アカウントに管理者ユーザーを作成し、それらの認証情報を使用してアカウントのリソースを管理します。代わりに、アカウントに管理者ユーザーを作成し、それらの認証情報を使用してアカウントのリソースを管理します。詳細については、「 ユーザーガイド」のIAM「Identity Center ユーザーに AWS アカウント アクセス権を割り当てるAWS IAM Identity Center 」を参照してください。
-
アカウントでVPC作成したデフォルトVPCまたはカスタムを使用できます。このチュートリアルでは、VPCデフォルト設定が機能します。ただし、カスタム を使用する場合はVPC、以下を確認します。
-
DNS ホスト名が有効になっています。詳細については、「Amazon ユーザーガイドDNS」の「 の属性VPC」を参照してください。 VPC
-
インターネットゲートウェイは にアタッチされますVPC。詳細については、「Amazon ユーザーガイド」の「インターネットゲートウェイを使用してインターネットに接続する」を参照してください。 VPC
-
VPC サブネットは、VPCサブネットで起動されたインスタンスのパブリック IP アドレスをリクエストするように設定されています。詳細については、「Amazon VPCユーザーガイド」の「 VPCsおよび サブネットの IP アドレス指定」を参照してください。
-
VPC ルートテーブルには、インターネットにバインドされたすべてのトラフィックをインターネットゲートウェイに送信するルールが含まれています。
-
-
をセットアップ AWS CLI し、管理者ユーザープロファイルを追加する必要があります。
のセットアップ AWS CLI
以下の手順を使用して、 AWS CLI および ユーザープロファイルを設定します。
を設定するには AWS CLI
-
AWS CLIをダウンロードして設定します。手順については、「 ユーザーガイド」の「 の開始 AWS CLI方法AWS Command Line Interface 」を参照してください。
-
プロファイルを設定します。
ユーザー認証情報は AWS CLI
config
ファイルに保存します。このチュートリアルのCLIコマンド例では、管理者ユーザープロファイルを指定します。configuser ファイルをconfig
ファイルに作成します。以下のように、管理者ユーザープロファイルをconfig
ファイルのデフォルトとして設定することもできます。[profile adminuser] aws_access_key_id =
admin user access key ID
aws_secret_access_key =admin user secret access key
region = us-west-2 [default] aws_access_key_id =admin user access key ID
aws_secret_access_key =admin user secret access key
region = us-west-2前述のプロファイルでは、デフォルトの も設定されます AWS リージョン。CLI コマンドでリージョンを指定しない場合、us-west-2 リージョンが想定されます。
-
コマンドプロンプトで以下のコマンドを入力して、セットアップを確認します。これらのコマンドの両方は、いずれも認証情報を明示的に提供しないため、デフォルトプロファイルの認証情報が使用されます。
-
help コマンドを試してみます。
--profile
パラメータを追加することで、明示的にユーザープロファイルを指定することもできます。aws help
aws help \ --profile adminuser
-
ステップ 1: EC2リソースを作成する
このステップでは、次の作業を行います。
-
2 つのセキュリティグループを作成します。
-
セキュリティグループにルールを追加して、追加のアクセスを許可します。
-
EC2 インスタンスの起動 次のステップで、このインスタンスにEFSファイルシステムを作成してマウントします。
ステップ 1.1: 2 つのセキュリティグループを作成する
このセクションでは、EC2インスタンスとEFSマウントターゲットVPCのセキュリティグループを に作成します。このチュートリアルの後半では、これらのセキュリティグループをEC2インスタンスとEFSマウントターゲットに割り当てます。セキュリティグループの詳細については、「Linux インスタンス用の Amazon EC2 セキュリティグループ」を参照してください。
セキュリティグループを作成するには
-
create-security-group
CLI コマンドを使用して 2 つのセキュリティグループを作成します。-
EC2 インスタンスのセキュリティグループ (
efs-walkthrough1-ec2-sg
) を作成し、VPCID を指定します。$ aws ec2 create-security-group \ --region us-west-2 \ --group-name efs-walkthrough1-ec2-sg \ --description "Amazon EFS walkthrough 1, SG for EC2 instance" \ --vpc-id
vpc-id-in-us-west-2
\ --profile adminuserセキュリティグループ ID を書き留めます。以下に、応答の例を示します。
{ "GroupId": "sg-aexample" }
VPC ID は、次のコマンドを使用して確認できます。
$ aws ec2 describe-vpcs
-
EFS マウントターゲットのセキュリティグループ (
efs-walkthrough1-mt-sg
) を作成します。VPC ID を指定する必要があります。$ aws ec2 create-security-group \ --region us-west-2 \ --group-name efs-walkthrough1-mt-sg \ --description "Amazon EFS walkthrough 1, SG for mount target" \ --vpc-id
vpc-id-in-us-west-2
\ --profile adminuserセキュリティグループ ID を書き留めます。以下に、応答の例を示します。
{ "GroupId": "sg-aexample" }
-
-
セキュリティグループを確認します。
aws ec2 describe-security-groups \ --group-ids
list of security group IDs separated by space
\ --profileadminuser
\ --region us-west-2両方には、すべてのトラフィックを残すことができるアウトバウンドルールが 1 つだけ必要です。
次のセクションでは、以下を可能にする追加アクセスを承認します。
-
EC2 インスタンスに接続できるようにします。
-
EC2 インスタンスとEFSマウントターゲット間のトラフィックを有効にします (このチュートリアルの後半でこれらのセキュリティグループを関連付けます)。
-
ステップ 1.2: セキュリティグループにルールを追加してインバウンド/アウトバウンドアクセスを承認する
このステップでは、セキュリティグループにルールを追加して、インバウンド/アウトバウンドアクセスを許可します。
ルールを追加するには
-
任意のホストSSHから を使用してEC2インスタンスに接続できるように、EC2インスタンス (SSH) のセキュリティグループへの受信 Secure Shell (
efs-walkthrough1-ec2-sg
) 接続を承認します。$ aws ec2 authorize-security-group-ingress \ --group-id
id of the security group created for EC2 instance
\ --protocol tcp \ --port 22 \ --cidr 0.0.0.0/0 \ --profile adminuser \ --region us-west-2セキュリティグループに追加したインバウンドおよびアウトバウンドのルールがあることを確認します。
aws ec2 describe-security-groups \ --region us-west-2 \ --profile adminuser \ --group-id
security-group-id
-
EFS マウントターゲット () のセキュリティグループへのインバウンドアクセスを許可します
efs-walkthrough1-mt-sg
。コマンドプロンプトで、adminuser プロファイルを使用して次の AWS CLI
authorize-security-group-ingress
コマンドを実行し、インバウンドルールを追加します。$ aws ec2 authorize-security-group-ingress \ --group-id
ID of the security group created for Amazon EFS mount target
\ --protocol tcp \ --port 2049 \ --source-groupID of the security group created for EC2 instance
\ --profile adminuser \ --region us-west-2 -
両方のセキュリティグループがインバウンドアクセスを許可することを確認します。
aws ec2 describe-security-groups \ --group-names efs-walkthrough1-ec2-sg efs-walkthrough1-mt-sg \ --profile adminuser \ --region us-west-2
ステップ 1.3: EC2インスタンスを起動する
このステップでは、EC2インスタンスを起動します。
EC2 インスタンスを起動するには
-
EC2 インスタンスの起動時に提供する必要がある以下の情報を収集します。
-
[キーペア名]。キーペアを作成する手順については、「Amazon ユーザーガイド」の「Amazon EC2インスタンスのキーペアを作成するEC2」を参照してください。
-
起動する Amazon マシンイメージ (AMI) の ID。
EC2 インスタンスの起動に使用する AWS CLI コマンドには、パラメータとしてデプロイする Amazon マシンイメージ (AMI) の ID が必要です。この演習では、Amazon Linux HVM を使用しますAMI。
注記
最も汎用的な Linux ベースの を使用できますAMIs。別の Linux を使用する場合はAMI、ディストリビューションのパッケージマネージャーを使用してインスタンスにNFSクライアントをインストールしてください。また、必要に応じてソフトウェアパッケージを追加する必要がある場合もあります。
Amazon Linux の場合AMI、最新の HVM は Amazon Linux AMI
IDsにあります。Amazon Linux AMIIDsテーブルから ID 値を次のように選択します。 -
[US West Oregon (米国西部オレゴン)] リージョンを選択します。このチュートリアルでは、米国西部 (オレゴン) リージョン (us-west-2) 内にすべてのリソースを作成していることを前提としています。
-
EBS-backed HVM 64 ビットタイプを選択します (CLIコマンドでは
t2.micro
インスタンスストアをサポートしていないインスタンスタイプを指定するため)。
-
-
EC2 インスタンス用に作成したセキュリティグループの ID。
-
AWS リージョン。このチュートリアルでは、us-west-2 リージョンを使用しています。
-
インスタンスを起動するVPCサブネット ID。サブネットのリストを取得するには、
describe-subnets
コマンドを使用します。$ aws ec2 describe-subnets \ --region us-west-2 \ --filters "Name=vpc-id,Values=
vpc-id
" \ --profile adminuserサブネット ID を選択した後、
describe-subnets
の結果から次の値を書き留めます。-
サブネット ID – マウントターゲットを作成するときにこの値が必要です。この演習では、EC2インスタンスを起動するのと同じサブネットにマウントターゲットを作成します。
-
サブネットのアベイラビリティーゾーン — この値は、マウントターゲットDNS名を構築するのに必要です。この名前は、EC2インスタンスにファイルシステムをマウントするために使用します。
-
-
-
インスタンスを起動するには、次の AWS CLI
run-instances
コマンドを実行しますEC2。$ aws ec2 run-instances \ --image-id
AMI ID
\ --count 1 \ --instance-type t2.micro \ --associate-public-ip-address \ --key-namekey-pair-name
\ --security-group-idsID of the security group created for EC2 instance
\ --subnet-idVPC subnet ID
\ --region us-west-2 \ --profile adminuser -
run-instances
コマンドによって返されるインスタンス ID を書き留めます。 -
作成したEC2インスタンスには、EC2インスタンスに接続してファイルシステムをマウントするために使用するパブリックDNS名が必要です。パブリックDNS名は 形式です。
ec2-xx-xx-xx-xxx.compute-1.amazonaws.com
次のCLIコマンドを実行して、パブリックDNS名を書き留めます。
aws ec2 describe-instances \ --instance-ids
EC2 instance ID
\ --region us-west-2 \ --profile adminuserパブリックDNS名がない場合は、EC2インスタンスを起動した VPC の設定を確認します。詳細については、「前提条件」を参照してください。
-
(オプション) 作成したEC2インスタンスに名前を割り当てます。これを行うには、インスタンスに割り当てる名前にキー名と値を設定したタグを追加します。これを行うには、次の AWS CLI
create-tags
コマンドを実行します。$ aws ec2 create-tags \ --resources
EC2-instance-ID
\ --tags Key=Name,Value=Provide-instance-name
\ --region us-west-2 \ --profile adminuser
ステップ2:EFSリソースを作成する
このステップでは、次の作業を行います。
-
暗号化されたEFSファイルシステムを作成します。
-
ライフサイクル管理を有効にします。
-
EFS インスタンスを起動したアベイラビリティーゾーンにマウントターゲットを作成します。
ステップ 2.1: EFS ファイルシステムを作成する
このステップでは、EFSファイルシステムを作成します。次のステップで、ファイルシステムのマウントターゲットを作成するときに使用する FileSystemId
を書き留めます。
ファイルシステムを作成するには
-
オプションの
Name
タグを使用してファイルシステムを作成します。-
コマンドプロンプトで、次の AWS CLI
create-file-system
コマンドを実行します。$
aws efs create-file-system \ --encrypted \ --creation-token FileSystemForWalkthrough1 \ --tags Key=Name,Value=SomeExampleNameValue \ --region us-west-2 \ --profile adminuser次のレスポンスが返されます。
{ "OwnerId": "111122223333", "CreationToken": "FileSystemForWalkthrough1", "FileSystemId": "fs-c657c8bf", "CreationTime": 1548950706.0, "LifeCycleState": "creating", "NumberOfMountTargets": 0, "SizeInBytes": { "Value": 0, "ValueInIA": 0, "ValueInStandard": 0 }, "PerformanceMode": "generalPurpose", "Encrypted": true, "KmsKeyId": "arn:aws:kms:us-west-2:111122223333:a5c11222-7a99-43c8-9dcc-abcdef123456", "ThroughputMode": "bursting", "Tags": [ { "Key": "Name", "Value": "SomeExampleNameValue" } ] }
-
[
FileSystemId
] の値を書き留めます。「ステップ2.3: マウントターゲットを作成する」でこのファイルシステムのマウントターゲットを作成するときに、この値が必要になります。
-
ステップ 2.2:ライフサイクル管理を有効にする
このステップでは、低頻度アクセス (IA) EFS ストレージクラスを使用するために、ファイルシステムでライフサイクル管理を有効にします。詳細については、「EFS ファイルシステムのストレージライフサイクルの管理」および「EFS ストレージクラス」を参照してください。
ライフサイクル管理を有効にするには
コマンドプロンプトで、次の AWS CLI
put-lifecycle-configuration
コマンドを実行します。$
aws efs put-lifecycle-configuration \ --file-system-id fs-c657c8bf \ --lifecycle-policies TransitionToIA=AFTER_30_DAYS \ --region us-west-2 \ --profile adminuser
次のレスポンスが返されます。
{ "LifecyclePolicies": [ { "TransitionToIA": "AFTER_30_DAYS" } ] }
ステップ2.3: マウントターゲットを作成する
このステップでは、EC2インスタンスを起動したアベイラビリティーゾーンにファイルシステムのマウントターゲットを作成します。
-
以下の情報があることを確認してください。
-
マウント対象を作成するファイルシステムの ID (例:
fs-example
)。 -
VPC でEC2インスタンスを起動したサブネット IDステップ 1: EC2リソースを作成する。
このチュートリアルでは、EC2インスタンスを起動したのと同じサブネットにマウントターゲットを作成するため、サブネット ID (例: ) が必要です
subnet-example
。 -
前のステップでマウントターゲット用に作成したセキュリティグループの ID。
-
-
コマンドプロンプトで、次の AWS CLI
create-mount-target
コマンドを実行します。$ aws efs create-mount-target \ --file-system-id
file-system-id
\ --subnet-idsubnet-id
\ --security-groupID-of-the security-group-created-for-mount-target
\ --region us-west-2 \ --profile adminuser次のレスポンスが返されます。
{ "MountTargetId": "fsmt-example", "NetworkInterfaceId": "eni-example", "FileSystemId": "fs-example", "PerformanceMode" : "generalPurpose", "LifeCycleState": "available", "SubnetId": "fs-subnet-example", "OwnerId": "account-id", "IpAddress": "xxx.xx.xx.xxx" }
-
また、
describe-mount-targets
コマンドを使用して、ファイルシステムで作成したマウントターゲットの説明を取得することもできます。$ aws efs describe-mount-targets \ --file-system-id
file-system-id
\ --region us-west-2 \ --profile adminuser
ステップ 3: ファイルシステムをEC2インスタンスにマウントしてテストする
このステップでは、次の作業を行います。
-
必要な情報を収集します。
-
EC2 インスタンスに NFSクライアントをインストールします。
-
ファイルシステムをEC2インスタンスにマウントしてテストします。
ステップ 3.1: 情報を収集する
このセクションの手順に従って、次の情報を確認してください。
-
次の形式のEC2インスタンスのパブリックDNS名。
ec2-xx-xxx-xxx-xx.
aws-region
.compute.amazonaws.com -
DNS ファイルシステムの名前。このDNS名前は、次の汎用形式を使用して作成できます。
file-system-id
.efs.aws-region
.amazonaws.comマウントターゲットを使用してファイルシステムをマウントするEC2インスタンスは、ファイルシステムDNSの名前をマウントターゲットの IP アドレスに解決できます。
注記
Amazon EFSでは、EC2インスタンスにパブリック IP アドレスまたはパブリックDNS名を含める必要はありません。前述の要件は、 を の外部からSSHインスタンスに接続できるように、このウォークスルー例専用ですVPC。
ステップ 3.2: EC2インスタンスにNFSクライアントをインストールする
Windows、Linux、macOS X、またはその他の Unix バリアントを実行しているコンピュータからEC2インスタンスに接続できます。
NFS クライアントをインストールするには
-
EC2 インスタンスに接続します。詳細については、「Amazon ユーザーガイド」のEC2「インスタンスに接続する」を参照してください。 EC2
-
SSH セッションを使用して、EC2インスタンスで次のコマンドを実行します。
-
(オプション) アップデートを入手して再起動します。
$
sudo yum -y update
$ sudo reboot再起動後、EC2インスタンスに再接続します。
-
NFS クライアントをインストールします。
$
sudo yum -y install nfs-utils
注記
EC2 インスタンスの起動AMI時に Amazon Linux AMI 2016.03.0 Amazon Linux を選択した場合は、AMIデフォルトで に既に含まれ
nfs-utils
ているため、 をインストールする必要はありません。
-
ステップ 3.3: ファイルシステムをEC2インスタンスにマウントしてテストする
次に、ファイルシステムをEC2インスタンスにマウントします。
-
ディレクトリを作成します (efs-mount-point「」)。
$
mkdir ~/efs-mount-point
-
EFS ファイルシステムをマウントします。
$
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
mount-target-DNS
:/ ~/efs-mount-pointEC2 インスタンスは、マウントターゲットDNS名を IP アドレスに解決できます。オプションでマウントターゲットの IP アドレスを直接指定することもできます。
$
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
mount-target-ip
:/ ~/efs-mount-point -
ファイルEFSシステムをEC2インスタンスにマウントしたので、ファイルを作成できます。
-
ディレクトリを変更します。
$
cd ~/efs-mount-point
-
ディレクトリの内容を一覧表示します。
$
ls -al
これは空である必要があります。
drwxr-xr-x 2 root root 4096 Dec 29 22:33 . drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
-
ファイルシステムのルートディレクトリは、作成時に root ユーザーが所有し、root ユーザーによって書き込みが可能なため、ファイルを追加する権限を変更する必要があります。
$
sudo chmod go+rw .
ls -al
コマンドを実行すると、権限が変更されたことがわかります。drwxrwxrwx 2 root root 4096 Dec 29 22:33 . drwx------ 4 ec2-user ec2-user 4096 Dec 29 22:54 ..
-
テキストファイルを作成します。
$
touch test-file.txt
-
ディレクトリのコンテンツを一覧表示します。
$
ls -l
-
これで、 のEC2インスタンスにEFSファイルシステムが正常に作成され、マウントされましたVPC。
マウントしたファイルシステムは、再起動後も保持されません。ディレクトリを自動的に再マウントするには、fstab
ファイルを使用します。Auto Scaling グループを使用してEC2インスタンスを起動する場合は、起動設定でスクリプトを設定することもできます。
ステップ 4: クリーンアップする
作成したリソースが不要になった場合は、削除する必要があります。これを行うには、 を使用しますCLI。
-
EC2 リソース (EC2インスタンスと 2 つのセキュリティグループ) を削除します。マウントターゲットEFSを削除すると、Amazon はネットワークインターフェイスを削除します。
-
EFS リソース (ファイルシステム、マウントターゲット) を削除します。
このチュートリアルで作成した AWS リソースを削除するには
-
このチュートリアル用に作成したEC2インスタンスを終了します。
$ aws ec2 terminate-instances \ --instance-ids
instance-id
\ --profile adminuserコンソールを使用してEC2リソースを削除することもできます。手順については、「インスタンスの終了」を参照してください。
-
マウントターゲットを削除します。
ファイルシステムを削除する前に、そのファイルシステム用に作成されたマウントターゲットを削除する必要があります。
describe-mount-targets
CLI コマンドを使用してマウントターゲットのリストを取得できます。$ aws efs describe-mount-targets \ --file-system-id
file-system-ID
\ --profile adminuser \ --regionaws-region
次に、
delete-mount-target
CLI コマンドを使用してマウントターゲットを削除します。$ aws efs delete-mount-target \ --mount-target-id
ID-of-mount-target-to-delete
\ --profile adminuser \ --regionaws-region
-
(オプション) 作成した 2 つのセキュリティグループを削除します。セキュリティグループを作成するための料金はかかりません。
EC2 インスタンスのセキュリティグループを削除する前に、マウントターゲットのセキュリティグループを削除する必要があります。マウントターゲットのセキュリティグループには、EC2セキュリティグループを参照するルールがあります。したがって、まずEC2インスタンスのセキュリティグループを削除することはできません。
手順については、「Amazon ユーザーガイド」の「セキュリティグループの削除」を参照してください。 EC2
-
delete-file-system
CLI コマンドを使用してファイルシステムを削除します。describe-file-systems
CLI コマンドを使用してファイルシステムのリストを取得できます。レスポンスからファイルシステム ID を取得できます。aws efs describe-file-systems \ --profile adminuser \ --region
aws-region
ファイルシステム ID を指定してファイルシステムを削除します。
$ aws efs delete-file-system \ --file-system-id
ID-of-file-system-to-delete
\ --regionaws-region
\ --profile adminuser