第11章 Amazon EC2 でのクラウドインスタンスのプロビジョニング
Amazon Elastic Compute Cloud (Amazon EC2) は、パブリッククラウドコンピュートリソースを提供する Web サービスです。Red Hat Satellite 6 は、Amazon EC2 の パブリック API を使用して新規クラウドインスタンスを作成し、それらの電源管理の状態を制御することができます。本章では、接続を ACME の Amazon EC2 アカウントに追加し、クラウドインスタンスをプロビジョニングします。
11.1. Amazon EC2 プロビジョニングの要件定義
Amazon EC2 プロビジョニングの要件には以下が含まれます。
- Red Hat Enterprise Linux 7 の同期済みのコンテンツリポジトリー。詳細は、『コンテンツ管理ガイド』 の 「Red Hat リポジトリーの同期」 を参照してください。
- EC2 環境でネットワークを管理する Capsule Server。ホストと Capsule Server 間のネットワークのセキュリティーを確保するために、Virtual Private Cloud (VPC) を使用するのが望ましいと言えます。
- イメージベースのプロビジョニングに選択された Amazon Machine Image (AMI)
- ホスト登録のためのアクティべーションキーのサンプル。詳細は、「アクティベーションキーの作成」 を参照してください。
11.2. Satellite Server への Amazon EC2 接続の追加
このプロセスでは、Satellite Server のコンピュートリソースで Amazon EC2 接続を追加します。
Amazon Web Services は、認証プロセスの一環として時間設定を使用します。これは、Satellite Server の時間が正常に同期される必要があることを意味します。ntpd
または chronyd
などの NTP サービスが Satellite Server で適切に実行されていることを確認します。Amazon Web Services に正確な時間を指定できないと、認証が失敗する可能性があります。詳細は、『インストールガイド』 の 「時間の同期」 を参照してください。
Web UI を使用する場合
インフラストラクチャー > コンピュートリソース に移動し、新規のコンピュートリソース をクリックします。UI には、コンピュートリソースの一連のフィールドがあります。
-
名前: リソースのテキスト形式の名前。例:
ACME's EC2
-
プロバイダー: コンピュートリソースプロバイダーを選択するためのフィールド。
EC2
を選択すると、新規のフィールドのセットが表示されます。 -
説明: リソースのテキスト形式の説明。例:
Amazon EC2 Public Cloud
- アクセスキー および シークレットキー - Amazon EC2 アカウントのアクセスキー。これらのキーは、Amazon EC2 管理コンソールの セキュリティー認証情報 で生成します。詳細は、Amazon ドキュメントの Web サイト Managing Access Keys for your AWS Account を参照してください。
- リージョン - 使用する Amazon EC2 リージョン/データセンター。アクセスキーを入力したら、リージョンのロード をクリックして利用可能なリージョンを表示します。
ロケーション および 組織 タブは現在のコンテキストに自動的に設定されます。他のコンテキストをこれらのタブに追加します。
送信 をクリックして Amazon EC2 接続を保存します。
CLI を使用する場合
hammer compute-resource create
コマンドで接続を作成します。--user
および --password
フィールドはそれぞれアクセスキーおよびシークレットキーとして機能します。以下は例になります。
# hammer compute-resource create --name "ACME's EC2" --provider "EC2" \ --description "Amazon EC2 Public Cloud` --user "ABCDEFGHIJ1234567" \ --password "*********" --region "us-east-1" --locations "New York" \ --organizations "ACME"
11.3. Satellite Server での Amazon EC2 イメージの追加
Amazon EC2 はイメージベースのプロビジョニングを使用して新規ホストを作成します。つまり、イメージの詳細を Satellite Server に追加する必要があることを意味します。これにはアクセスの詳細およびイメージの場所が含まれます。
Web UI を使用する場合
インフラストラクチャー > コンピュートリソース に移動し、Amazon EC2 接続の名前をクリックします。UI には、イメージ タブを含む接続についての情報が表示されます。このタブには、新規プロバイダーのイメージは含まれませんが、新規イメージを追加することができます。新規イメージ をクリックすると、UI に Amazon EC2 イメージの一連のフィールドが表示されます。
-
名前: イメージのテキスト形式の名前。例:
Test Amazon EC2 Image
-
オペレーティングシステム: イメージのベースオペレーティングシステムを選択するためのフィールド。例:
RedHat 7.2
-
アーキテクチャー: オペレーティングシステムのアーキテクチャーを選択するためのフィールド。例:
x86_64
-
ユーザー名: イメージにアクセスするための SSH ユーザー名。通常、これは
root
ユーザーになります。 - パスワード: イメージにアクセスするための SSH パスワード。
-
イメージ ID: イメージの Amazon Machine Image (AMI) ID。通常、この形式は
ami-xxxxxxxx
になります。例:ami-b32c14ad
-
ユーザーデータ - イメージが
cloud-init
データなどのユーザーデータ入力をサポートするかどうかを設定します。ユーザーデータを有効にすると、フィニッシュスクリプトが無効になります。ユーザーデータを有効にすると、フィニッシュスクリプトは自動的に無効になります。これは、逆の場合にも当てはまります。フィニッシュスクリプトを有効にすると、ユーザーデータが無効になります。 - IAM ロール: イメージを作成するために使用される Amazon のセキュリティーロール。
送信 をクリックしてイメージの詳細を保存します。
CLI を使用する場合
hammer compute-resource image create
コマンドでイメージを作成します。--uuid
フィールドを使用して Amazon EC2 サーバーのイメージの場所の完全パスを保存します。
# hammer compute-resource image create --name "Test Amazon EC2 Image" \ --operatingsystem "RedHat 7.2" --architecture "x86_64" --username root \ --user-data true --uuid "ami-b32c14ad" --compute-resource "ACME's EC2"
11.4. Amazon EC2 の詳細をコンピュートプロファイルへ追加
Amazon EC2 のインスタンスの特定のハードウェア設定を事前に定義することができます。これは、これらのハードウェア設定をコンピュートプロファイルに追加して実行できます。この例では、4-Example
プロファイルにいくつかの基本的なハードウェア設定を組み込みます。
Web UI を使用する場合
インフラストラクチャー > コンピュートプロファイル に移動し、プロファイルの名前をクリックします。たとえば、事前に作成した 4-Example
プロファイルを使用します。UI には、コンピュートリソースの一覧が表示されます。EC2 接続をクリックします。
UI には、プロファイルに Amazon 固有の詳細を入力できる一連のフィールドがあります。これには以下が含まれます。
- フレーバー: ホストに使用する EC2 のハードウェアのプロファイル。
-
イメージ: イメージベースのプロビジョニングに使用するイメージ。この例では、
Test EC2 Image
を使用します。 - 利用可能ゾーン (Availability zone): EC2 リージョン内で使用するターゲットクラスター。
- サブネット: EC2 インスタンスのサブネット。新規ホストのプロビジョニング用の VPC がある場合は、そのサブネットを使用します。
- セキュリティーグループ - ポートおよび IP アドレスのクラウドベースのアクセスルール。ホストに適用するグループを選択します。
-
管理 IP - IP アドレスの割り当てのタイプ。これは、
パブリック
IP またはプライベート
IP のいずれかになります。
送信 をクリックしてコンピュートプロファイルを保存します。
CLI を使用する場合
コンピュートプロファイルの CLI コマンドは、Red Hat Satellite 6.3 ではまだ実装されていません。代替方法として、ホストの作成プロセスで同じ設定を直接組み込むことができます。
11.5. Amazon EC2 でのイメージベースのホストの作成
Amazon EC2 プロビジョニングプロセスでは、Amazon EC2 サーバーで既存イメージから新規ホストを作成します。
Web UI を使用する場合
ホスト > 新規ホスト に移動します。UI には、ホストの詳細を入力できる一覧のフィールドがあります。
ホスト タブ:
-
ホストの 名前 を入力します。これはプロビジョニングされたシステムのホスト名になります。この例では、
ec2-test1
と入力します。 -
プロビジョニングコンテキスト (組織 および ロケーション) は現在のコンテキストに自動的に設定されます。例:
ACME
およびNew York
-
ホストグループ を選択します。これにより、新規ホストのほとんどのフィールドが自動的に設定されます。例:
Base
-
デプロイ先 で、EC2 接続を選択します。この例では、
ACME's EC2
になります。仮想マシンの新規タブが表示されます。 -
コンピュートプロファイル で、仮想マシンベースの設定を自動的に行うために使用するプロファイルを選択します。例:
4-Example
-
ホストの 名前 を入力します。これはプロビジョニングされたシステムのホスト名になります。この例では、
インターフェース タブ:
- ホストのインターフェースの 編集 をクリックします。
ほとんどのフィールドには、値が自動的に含まれるはずです。特に以下の点に注意してください。
- ホスト タブの 名前 は DNS 名 になります。
- Satellite Server は新規ホストの IP アドレスを自動的に割り当てます。
- MAC アドレス を空白にします。Amazon EC2 サーバーは MAC アドレスをホストに割り当てます。
- Satellite Server は、ホストの最初のインターフェースで Managed (管理)、Primary、および Provision オプションを自動的に選択するはずです。選択されていない場合は、それらを選択してください。
オペレーティングシステム タブ:
- すべてのフィールドには値が自動的に含まれるはずです。オペレーティングシステムの各要素を確認してください。
- イメージ フィールドには、コンピュートプロファイルから選択されたイメージが含まれます。このフィールドから、新規ホストの root ボリュームのベースとなる別のイメージを選択することもできます。
- プロビジョニングテンプレート で 解決 をクリックし、新規ホストから使用する適切なプロビジョニングテンプレートを特定できることを確認します。
仮想マシン タブ:
- これらの設定には、選択されたホストグループおよびコンピュートプロファイルの詳細が入力されているはずです。必要に応じてこれらの設定を変更します。
パラメーター タブ:
-
kt_activation_keys
パラメーターが存在し、サンプル
のアクティべーションキーを使用していることを確認します。
-
送信 をクリックします。
CLI を使用する場合
hammer host create
コマンドでホストを作成し、--provision-method image
を組み込んでイメージベースのプロビジョニングを使用します。以下は例になります。
# hammer host create --name "ec2-test1" --organization "ACME" \ --location "New York" --hostgroup "Base" \ --compute-resource "ACME's EC2" --provision-method image \ --image "Test Amazon EC2 Image" --enabled true --managed true \ --interface "managed=true,primary=true,provision=true,subnet_id=EC2" \ --compute-attributes="flavor_id=m1.small,image_id=TestImage,availability_zones=us-east-1a,security_group_ids=Default,managed_ip=Public"
このコンピュートリソースの追加のホスト作成パラメーターについての詳細は、付録B Hammer CLI の追加のホストパラメーター を参照してください。
この新規ホストのエントリーは、Amazon EC2 サーバーが新規ボリュームのベースとして既存イメージを使用し、インスタンスを作成するようトリガーします。
11.6. SSH を使って Amazon EC2 インスタンスに接続
SSH を使用して、Satellite Server から Amazon EC2 インスタンスにリモートで接続することができます。しかし、Red Hat Satellite を介してプロビジョニングするあらゆる Amazon Web Services EC2 インスタンスへ接続するには、Foreman データベースのコンピュートリソースに関連するプライベートキーに最初にアクセスし、このキーを使って認証する必要があります。
プライベートキーの場所を確認し、SSH を使用して Amazon EC2 サーバーへ接続するには、以下の手順を実行します。
Satellite Server ベースシステムで、コンピュートリソースリストの場所を確認するには、以下のコマンドを入力し、使用したいコンピュートリソースの ID を確認します。
# hammer compute-resource list
ユーザーを
postgres
ユーザーに切り替えます。# su - postgres
postgres
シェルを開始します。$ psql
postgres
ユーザーとして、Foreman データベースに接続します。# postgres=# \c foreman
compute_resource_id = 3
であるkey_pairs
から、シークレットを選択します。# select secret from key_pairs where compute_resource_id = 3; secret
-
-----BEGIN RSA PRIVATE KEY-----
以降、-----END RSA PRIVATE KEY-----
までキーをコピーします。 .pem
ファイルを作成し、ファイルにキーを貼り付けます。# vim Keyname.pem
.pem
ファイルへのアクセスを制限するよう確認します。# chmod 600 Keyname.pem
Amazon EC2 インスタンスへ接続するには、以下のコマンドを入力します。
ssh -i Keyname.pem ec2-user@example.aws.com
11.7. Amazon Web Service EC2 環境向けフィニッシュテンプレートの設定
Amazon EC2 環境で Red Hat Enterprise Linux インスタンスをプロビジョニングする間、Red Hat Satellite のフィニッシュテンプレートを使用できます。
Amazon EC2 向けのフィニッシュテンプレートを設定するには、以下の手順を実行します。
- Red Hat Satellite 6 Web UI で、ホスト > プロビジョニングテンプレート に移動します。
-
プロビジョニングテンプレート ページの検索フィールドに
Kickstart default finish
を入力し、検索 をクリックします。 - Kickstart default finish テンプレートで、クローン を選択します。
- 名前 フィールドに、テンプレート向けに独自の名前を入力します。
テンプレートで、
subscription-manager register
コマンドおよびyum
コマンド以外の root 権限が必要な各コマンドをsudo
で指定します。または、以下の行を追加してテンプレート全体を sudo ユーザーとして実行します。sudo -s << EOS _Template_ _Body_ EOS
- 関連付け タブをクリックし、使用したい Red Hat Enterprise Linux オペレーティングシステムとテンプレートを関連付けします。
- ロケーション タブをクリックして、ホストがある場所を追加します。
- 組織 タブをクリックして、ホストが属する組織を追加します。
- 必要なカスタマイズまたは変更を追加したら、送信 をクリックしてテンプレート保存します。
- ホスト > オペレーティングシステム に移動し、ホスト用に必要なオペレーティングシステムを選択します。
- テンプレート タブをクリックし、フィニッシュテンプレート リストから、フィニッシュテンプレートを選択します。
- ホスト > ホストの作成 に移動し、作成したいホストの情報を入力します。
- パラメーター タブをクリックし、ホストパラメーター に移動します。
ホストパラメーター で、パラメーターの追加 ボタンを 3 回クリックし、新しいパラメーターフィールドを 3 つ追加します。以下の 3 つのパラメーターを追加します。
-
名前 フィールドで、
remote_execution_ssh_keys
を入力します。対応する 値 フィールドで、cat /usr/share/foreman/.ssh/id_rsa_foreman_proxy.pub
の出力を入力します。 -
名前 フィールドで、
remote_execution_ssh_user
を入力します。対応する 値 フィールドで、ec2-user
を入力します。 -
名前 フィールドで、
kt_activation_keys
を入力します。対応する 値 フィールドで、アクティベーションキーを入力します。
-
名前 フィールドで、
- 送信 をクリックして変更を保存します。
11.8. Amazon Web Services と Satellite に関する詳細情報
Amazon Web Services EC2 で Red Hat Gold Images を確認する方法の詳細は、How to Locate Red Hat Cloud Access Gold Images on AWS EC2 を参照してください。
Linux で Amazon Web Service Client をインストールして使用する方法の詳細は、Amazon Web Services ドキュメンテーションの Install the AWS Command Line Interface on Linux を参照してください。
Amazon Web Services における仮想マシンのインポートおよびエクスポートに関する詳細は、Amazon Web Services ドキュメンテーションの VM Import/Export を参照してください。
11.9. 本章のまとめ
本章では、Red Hat Satellite 6 を設定して Amazon EC2 サーバーを使用する方法と、Amazon EC2 サーバーを使用して新規ホストをプロビジョニングする方法を説明しました。ここでは、ネットワークベースのホストおよびイメージベースのホストの両方について紹介しました。
Red Hat Satellite 6 で設定が必要なコンピュートリソースが他にない場合は、13章プロビジョニングの最終設定 のプロビジョニングについての最終メモを参照してください。
次章では、Red Hat Enterprise Linux Atomic Server でのコンテナーのプロビジョニング方法について説明します。