検索

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

download PDF

Amazon Web Services (AWS) で RHEL インスタンスを実行できるようにするには、まず RHEL イメージを AWS にアップロードする必要があります。

3.4.1. AWS CLI のインストール

AWS で HA クラスターを管理するために必要な手順の多くには、AWS CLI の使用が含まれます。

前提条件

  • AWS アクセスキー ID および AWS シークレットアクセスキーを作成し、それらにアクセスできるようになりました。手順と詳細は、AWS CLI のクイック設定 を参照してください。

手順

  1. yum コマンドを使用して AWS コマンドラインツール をインストールします。

    # yum install awscli
  2. aws --version コマンドを使用して、AWS CLI をインストールしたことを確認します。

    $ aws --version
    aws-cli/1.19.77 Python/3.6.15 Linux/5.14.16-201.fc34.x86_64 botocore/1.20.77
  3. AWS アクセスの詳細に従って、AWS コマンドラインクライアントを設定します。

    $ aws configure
    AWS Access Key ID [None]:
    AWS Secret Access Key [None]:
    Default region name [None]:
    Default output format [None]:

3.4.2. 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. Next をクリックします。
  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 Command Reference を参照してください。

3.4.3. vmimport ロールの作成

仮想マシンインポートサービスを使用して RHEL 仮想マシン (VM) を Amazon Web Services (AWS) にインポートするには、vmimport ロールを作成する必要があります。

詳細は、Amazon ドキュメントの Importing a VM as an image using VM Import/Export を参照してください。

手順

  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.4.4. イメージの S3 への変換およびプッシュ

qemu-img コマンドを使用すると、イメージを変換して S3 にプッシュできるようになります。サンプルは典型的なもので、qcow2 ファイル形式でフォーマットされたイメージを raw 形式に変換します。Amazon では、OVAVHDVHDXVMDK、および raw の形式のイメージを利用できます。Amazon で利用できるイメージ形式の詳細は、How VM Import/Export works を参照してください。

手順

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

    # qemu-img convert -f qcow2 -O raw rhel-8.0-sample.qcow2 rhel-8.0-sample.raw
  2. イメージを S3 にプッシュします。

    $ aws s3 cp rhel-8.0-sample.raw s3://s3-bucket-name
    注記

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

3.4.5. イメージのスナップショットとしてのインポート

Amazon Elastic Cloud Compute (EC2) サービスで RHEL インスタンスを起動するには、Amazon Machine Image (AMI) が必要です。システムの AMI を作成するには、まず RHEL システムイメージのスナップショットを EC2 にアップロードする必要があります。

手順

  1. イメージのバケットとパスを指定するファイルを作成します。container.json ファイルに名前を付けます。以下の例では、s3-bucket-name をバケット名に置き換え、s3-key を鍵に置き換えます。Amazon S3 コンソールを使用して、イメージの鍵を取得できます。

    {
        "Description": "rhel-8.0-sample.raw",
        "Format": "raw",
        "UserBucket": {
            "S3Bucket": "s3-bucket-name",
            "S3Key": "s3-key"
        }
    }
  2. イメージをスナップショットとしてインポートします。この例では、パブリックの Amazon S3 ファイルを使用しています。Amazon S3 コンソール を使用して、バケットのパーミッション設定を変更できます。

    $ aws ec2 import-snapshot --disk-container file://containers.json

    端末は以下のようなメッセージを表示します。メッセージ内の ImportTaskID を書き留めます。

    {
        "SnapshotTaskDetail": {
            "Status": "active",
            "Format": "RAW",
            "DiskImageSize": 0.0,
            "UserBucket": {
                "S3Bucket": "s3-bucket-name",
                "S3Key": "rhel-8.0-sample.raw"
            },
            "Progress": "3",
            "StatusMessage": "pending"
        },
        "ImportTaskId": "import-snap-06cea01fa0f1166a8"
    }
  3. describe-import-snapshot-tasks コマンドを使用して、インポートの進行状況を追跡します。ImportTaskID を含めます。

    $ aws ec2 describe-import-snapshot-tasks --import-task-ids import-snap-06cea01fa0f1166a8

    返されるメッセージには、タスクの現在の状態が表示されます。完了したら、Statuscompleted になります。ステータスに記載されているスナップショット ID を書き留めます。

3.4.6. アップロードしたスナップショットからの AMI の作成

Amazon Elastic Cloud Compute (EC2) サービスで RHEL インスタンスを起動するには、Amazon Machine Image (AMI) が必要です。システムの AMI を作成するには、以前にアップロードした RHEL システムスナップショットを使用できます。

手順

  1. AWS EC2 Dashboard に移動します。
  2. Elastic Block Storeスナップショット を選択します。
  3. スナップショット ID (例: snap-0e718930bd72bcda0) を検索します。
  4. スナップショットを右クリックして、イメージの作成 を選択します。
  5. イメージに名前を付けます。
  6. 仮想化のタイプ で、ハードウェア仮想化支援機能 を選択します。
  7. 作成 をクリックします。イメージ作成に関する注意事項に、イメージへのリンクがあります。
  8. イメージリンクをクリックします。Images>AMI の下にイメージが表示されます。

    注記

    また、AWS CLI の register-image コマンドを使用して、スナップショットから AMI を作成できます。詳細は、register-image を参照してください。以下に例を示します。

    $ aws ec2 register-image \
        --name "myimagename" --description "myimagedescription" --architecture x86_64 \
        --virtualization-type hvm --root-device-name "/dev/sda1" --ena-support \
        --block-device-mappings "{\"DeviceName\": \"/dev/sda1\",\"Ebs\": {\"SnapshotId\": \"snap-0ce7f009b69ab274d\"}}"

    root デバイスボリューム /dev/sda1root-device-name として指定する必要があります。AWS のデバイスマッピングの概念情報は、Example block device mapping を参照してください。

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

Amazon Elastic Compute Cloud (EC2) インスタンスを起動して設定するには、Amazon Machine Image (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 リソースの管理に役立ちます。タグ付けの詳細は、Tagging Your Amazon EC2 Resources を参照してください。

  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.4.8. Red Hat サブスクリプションの割り当て

subscription-manager コマンドを使用すると、Red Hat サブスクリプションを登録して RHEL インスタンスに割り当てることができます。

前提条件

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

手順

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

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

  3. オプション: Red Hat Hybrid Cloud Console でインスタンスに関するさまざまなシステムメトリクスを収集するには、インスタンスを Red Hat Insights に登録します。

    # insights-client register --display-name <display-name-value>

    Red Hat Insights の詳細な設定については、Red Hat Insights のクライアント設定ガイド を参照してください。

3.4.9. AWS Gold Image の自動登録の設定

Amazon Web Services (AWS) 上に RHEL 8 の仮想マシンをより早く、より快適にデプロイするために、RHEL 8 の Gold Image を Red Hat Subscription Manager(RHSM) に自動的に登録するように設定することができます。

前提条件

  • 最新の AWS 用 RHEL 8 Gold Image をダウンロードしている。手順については、AWS でのゴールドイメージの使用 を参照してください。

    注記

    AWS アカウントは、一度に 1 つの Red Hat アカウントにしか割り当てできません。そのため、Red Hat アカウントにアタッチする前に、他のユーザーが AWS アカウントへのアクセスを必要としていないことを確認してください。

手順

  1. Gold Image を AWS にアップロードします。手順については、Uploading the Red Hat Enterprise Linux image to AWS を参照してください。
  2. アップロードされたイメージを使用して VM を作成します。自動的に RHSM に登録されます。

検証

  • 上記の手順で作成した RHEL 8 仮想マシンで、subscription-manager identity コマンドを実行して、システムが RHSM に登録されていることを確認します。登録に成功したシステムでは、システムの UUID が表示されます。以下に例を示します。

    # subscription-manager identity
    system identity: fdc46662-c536-43fb-a18a-bbcb283102b7
    name: 192.168.122.222
    org name: 6340056
    org ID: 6340056
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.