3.3.3. コマンドラインを使用して AWS 上の RHEL 仮想マシンを管理する
Amazon Web Services (AWS) のコマンドラインインターフェイスである awscli2 ユーティリティーを使用すると、コマンドライン経由で AWS 上の Red Hat Enterprise Linux (RHEL) Elastic Cloud Compute (EC2) 仮想マシンを管理できます。RHEL EC2 イメージのスナップショットをインポートし、Amazon Machine Image (AMI) を作成して、RHEL EC2 インスタンスを起動し、接続することができます。
前提条件
- Red Hat アカウントが作成されている。
- AWS アカウントのサインアップとセットアップが完了している。
-
awscli2パッケージのインストールと、アカウントの AWS 認証情報の設定が完了している。
手順
vmimportロールを使用します。$ aws iam create-role --role-name vmimport \ --assume-role-policy-document file://<example_vmimport_trust_policy_file>vmimportロールポリシーファイルを使用して、インラインポリシードキュメントを埋め込みます。$ aws iam put-role-policy --role-name vmimport \ --policy-name vmimport-access \ --policy-document file://<example_vmimport_role_policy_file>また、
vmie.amazonaws.com用の信頼ポリシーを持つ IAM ロール (通常はvmimportという名前) を作成し、AWS ガイドに記載されている JSON ポリシーを割り当てることで、VM Import/Export の権限を付与することもできます。RHEL イメージをスナップショットとしてインポートします。
$ aws ec2 import-snapshot --disk-container file://<example_containers_json_file>スナップショットのインポートが
completedステータスで正常に完了したことを確認します。$ aws ec2 describe-import-snapshot-tasks --import-task-ids <example_import_task_id>Amazon S3 から RHEL 仮想マシンイメージをスナップショットとして Amazon EC2 にインポートできます。S3 バケットとオブジェクトキーを指定した
<example_containers_json_file>ファイルを用意し、インポートを開始して、コマンドが返すタスク ID を監視します。完了したスナップショットから RHEL AMI を登録します。
$ aws ec2 register-image \ --name <example_rhel_custom_ami_name> \ --architecture x86_64 \ --virtualization-type hvm \ --root-device-name /dev/sda1 \ --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\": {\"SnapshotId\": \"<example_snapshot_id>\"}}]" \ --ena-supportRHEL EC2 インスタンス用の鍵ペアを作成します。
$ aws ec2 create-key-pair --key-name <example_key_pair_name> \ --query 'KeyMaterial' --output text > <example_key_file>.pemこの鍵ペアはリージョン固有のものであり、
.pemファイルとして保存されます。鍵ファイルの権限を制限します。
$ chmod 400 <example_key>.pem登録済みの AMI から RHEL EC2 インスタンスを起動します。
$ aws ec2 run-instances \ --image-id <example_registered_ami_id> \ --instance-type <example_instance_type> \ --key-name <example_key_pair_name>RHEL EC2 インスタンスに接続します。デフォルトユーザーは
ec2-userです。$ ssh -i <example_key>.pem ec2-user@<instance_public_dns_or_ip>
検証
スナップショットのインポートが
completedステータスで正常に完了したことを確認します。$ aws ec2 describe-import-snapshot-tasks --import-task-ids <example_import_task_id>AMI が
available状態であることを確認します。$ aws ec2 describe-images --image-ids <example_registered_ami_id>インスタンスが
running状態であることを確認します。$ aws ec2 describe-instances --instance-ids <example_instance_id>インスタンスの起動が完了すると、
State.Nameの値がrunningになります。SSH 接続が正常に機能することを確認します。
$ ssh -i <example_key>.pem ec2-user@<instance_public_dns_or_ip> 'echo connected'