3.5. Red Hat Enterprise Linux イメージの AWS へのアップロード

ホストマシンで本セクションにある手順に従って、イメージを AWS にアップロードします。

3.5.1. S3 バケットの作成

AWS にインポートするには、Amazon S3 バケットが必要です。Amazon S3 バケットは、オブジェクトを格納する Amazon リソースです。イメージのアップロードプロセスの一環として、S3 バケットを作成し、イメージをバケットに移動します。以下の手順に従って、バケットを作成します。

前提条件

手順

  1. Amazon S3 コンソール を起動します。
  2. Create Bucket をクリックします。Create Bucket ダイアログが表示されます。
  3. Name and region ビューで、以下を行います。

    1. Bucket name を入力します。
    2. Region を選択します。フィールドにリージョンを入力するか、ドロップダウンをクリックして、利用可能な全リージョンから使用するリージョンを選択します。
    3. 次へ をクリックします。
  4. Configure options ビューでは、目的のオプションを選択し、Next をクリックします。
  5. Set permissions ビューで、デフォルトのオプションを変更または受け入れ、Next をクリックします。
  6. バケットの設定を確認します。
  7. Create bucket をクリックします。

    注記

    AWS CLI を使用してバケットを作成することもできます。たとえば、aws s3 mb s3://my-new-bucket は、my-new-bucket という名前の S3 バケットを作成します。mb コマンドの詳細は、AWS CLI コマンドリファレンス を参照してください。

3.5.2. vmimport ロールの作成

仮想マシンのインポートに必要な vmimport ロールを作成するには、以下の手順を実行します。詳細は、Amazon ドキュメントの VM Import Service Role を参照してください。

手順

  1. trust-policy.json という名前のファイルを作成し、以下のポリシーを追加します。システムの任意の場所にファイルを保存し、その場所を書き留めます。

    {
       "Version": "2012-10-17",
       "Statement": [
          {
             "Effect": "Allow",
             "Principal": { "Service": "vmie.amazonaws.com" },
             "Action": "sts:AssumeRole",
             "Condition": {
                "StringEquals":{
                   "sts:Externalid": "vmimport"
                }
             }
          }
       ]
    }
  2. create role コマンドを実行して vmimport ロールを作成します。trust-policy.json ファイルの場所への完全なパスを指定します。file:// の接頭辞をパスに設定します。以下に例を示します。

    aws iam create-role --role-name vmimport --assume-role-policy-document file:///home/sample/ImportService/trust-policy.json
  3. role-policy.json という名前のファイルを作成し、以下のポリシーを追加します。s3-bucket-name を、S3 バケットの名前に置き換えます。

    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Effect":"Allow",
             "Action":[
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket"
             ],
             "Resource":[
                "arn:aws:s3:::s3-bucket-name",
                "arn:aws:s3:::s3-bucket-name/*"
             ]
          },
          {
             "Effect":"Allow",
             "Action":[
                "ec2:ModifySnapshotAttribute",
                "ec2:CopySnapshot",
                "ec2:RegisterImage",
                "ec2:Describe*"
             ],
             "Resource":"*"
          }
       ]
    }
  4. put-role-policy コマンドを使用して、作成したロールにポリシーを割り当てます。role-policy.json ファイルの完全パスを指定します。以下に例を示します。

    aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file:///home/sample/ImportService/role-policy.json

3.5.3. AMI の S3 への変換およびプッシュ

Amazon Machine Image (AMI) を S3 に変換してプッシュするには、以下の手順を実行します。サンプルは典型的なもので、qcow2 ファイル形式でフォーマットされたイメージを raw 形式に変換します。Amazon では、OVAVHDVHDXVMDK、および raw の形式のイメージを利用できます。Amazon で利用できるイメージ形式の詳細は、VM import/Export の仕組み を参照してください。

手順

  1. qemu-img コマンドを実行してイメージを変換します。以下に例を示します。

    qemu-img convert -f qcow2 -O raw rhel-server-7.7-1-x86_64-kvm.qcow2 rhel-server-7.7-1-x86_64-kvm.raw
  2. イメージを S3 にプッシュします。

    aws s3 cp rhel-server-7.7.1-x86_64-kvm.raw s3://s3-_bucket-name_
    注記

    この手順では数分かかる場合があります。完了したら、AWS S3 コンソール を使用して、イメージが S3 バケットに正常にアップロードされたことを確認できます。

3.5.4. raw イメージからの AMI の作成

raw イメージから AMI を作成するには、以下の手順を実行します。

前提条件

手順

  • AWS CLI で aws ec2 import-image コマンドを実行すると、raw イメージから AMI を作成できます。
# aws ec2 import-image --platform Linux --license-type BYOL --no-encrypted --description _imagedescription_ --architecture x86_64 --disk-containers Format=Raw,UserBucket="{S3Bucket=virtqes1,S3Key=rhel-server-ec2-7.9-30.x86_64.raw}" --region _regionname_

3.5.5. AMI からのインスタンスの起動

AMI からインスタンスを起動して設定するには、以下の手順を行います。

手順

  1. AWS EC2 Dashboard から、Images を選択して、AMI を選択します。
  2. イメージを右クリックして、Launch を選択します。
  3. ワークロードの要件を満たす、もしくは超過する Instance Type を選択します。

    インスタンスタイプに関する情報は、Amazon EC2 Instance Types を参照してください。

  4. Next:Configure Instance Details をクリックします。

    1. 作成する インスタンス数 を入力します。
    2. Network で、AWS 環境でのセットアップ の際に作成した VPC を選択します。インスタンスのサブネットを選択するか、新しいサブネットを作成します。
    3. 自動割り当てパブリック IP では、Enable を選択します。

      注記

      これらは、基本インスタンスの作成に必要な最小限の設定オプションです。アプリケーション要件に応じて追加オプションを確認します。

  5. Next: Add Storage をクリックします。デフォルトのストレージが十分であることを確認してください。
  6. Next: Add Tags をクリックします。

    注記

    タグを使用すると、AWS リソースの管理に役立ちます。タグ付けの詳細は、Amazon EC2 リソースにタグを付ける を参照してください。

  7. Next:Configure Security Group をクリックします。AWS 環境でのセットアップ の際に作成したセキュリティーグループを選択します。
  8. Review and Launch をクリックします。選択内容を確認します。
  9. Launch をクリックします。既存の鍵のペアの選択、または新しい鍵のペアの作成に関するダイアログが表示されます。AWS 環境でのセットアップ 時に作成した鍵のペアを選択します。

    注記

    秘密鍵のパーミッションが正しいことを確認します。必要に応じて chmod 400 <keyname>.pem コマンドオプションを使用してパーミッションを変更します。

  10. Launch Instances をクリックします。
  11. View Instances をクリックします。インスタンスに名前を付けることができます。

    インスタンスを選択して Connect をクリックすると、インスタンスへの SSH セッションを開始できます。A standalone SSH client に記載されているコマンドの例を使用してください。

    注記

    または、AWS CLI を使用してインスタンスを起動することもできます。詳細は、Amazon 社のドキュメントの Launching, Listing, and Terminating Amazon EC2 Instances を参照してください。

3.5.6. Red Hat サブスクリプションの割り当て

Red Hat Cloud Access プログラムで有効になっているサブスクリプションを割り当てるには、以下の手順を行います。

前提条件

サブスクリプションが有効になっている。

手順

  1. システムを登録します。

    subscription-manager register --auto-attach
  2. サブスクリプションを割り当てます。