Runbook を使用してアマゾン ウェブ サービスの VM をデプロイする
この記事では、Azure Automation を利用して仮想マシンを Amazon Web Service (AWS) サブスクリプションにプロビジョニングし、その VM に特別な名前を付ける方法 (AWS では "タグ付け" と呼びます) について説明します。
前提条件
Azure Automation アカウントと Amazon Web Services (AWS) サブスクリプションが必要です。 Azure Automation アカウントの設定と、AWS サブスクリプションの資格情報による構成については、「アマゾン ウェブ サービスによる Runbook の認証」を参照してください。 先に進む前に、このアカウントを作成するか、AWS サブスクリプションの資格情報で更新してください。このアカウントは以降のセクションで参照します。
Amazon Web Services PowerShell モジュールをデプロイする
VM プロビジョニング Runbook は、AWS PowerShell モジュールを使用して処理を実行します。 次の手順を使用して、AWS サブスクリプションの資格情報で構成した Automation アカウントにモジュールを追加してください。
Web ブラウザーを開き、PowerShell ギャラリーに移動し、[Deploy to Azure Automation (Azure Automation にデプロイする)] ボタンをクリックします。
Azure ログイン ページが表示され、認証が終わると Azure Portal に移動し、次のページが表示されます。
使用する Automation アカウントを選択し、[OK] をクリックしてデプロイを開始します。
Note
Azure Automation は、PowerShell モジュールをインポートするときに、コマンドレットを抽出します。 これらのアクティビティは、Automation でのモジュールのインポートが完全に完了し、コマンドレットが抽出されるまで表示されません。 このプロセスには数分かかることがあります。
Azure portall で、Automation アカウントを開きます。
[資産] タイルをクリックし、[資産] ウィンドウで [モジュール] を選択します。
[モジュール] ページの一覧に AWSPowerShell モジュールが表示されます。
AWS デプロイ VM Runbook を作成する
AWS PowerShell モジュールのデプロイが終わったら、PowerShell スクリプトを使用して AWS への仮想マシンのプロビジョニングを自動化する Runbook を作成できます。 次の手順は、Azure Automation でネイティブ PowerShell スクリプトを使用する方法を示しています。
Note
このスクリプトに関する他のオプションと情報については、 PowerShell ギャラリーを参照してください。
PowerShell セッションを開き、次のコマンドを入力して、PowerShell ギャラリーから PowerShell スクリプト New-AwsVM をダウンロードします。
Save-Script -Name New-AwsVM -Path <path>
Azure Portal から Automation アカウントを開き、[プロセス オートメーション] の [Runbook] を選択します。
[Runbook] ページで、[Runbook の追加] を選択します。
[Runbook の追加] ウィンドウで、[簡易作成] を選択して新しい Runbook を作成します。
[Runbook のプロパティ] ウィンドウで、Runbook の名前を入力します。
[Runbook の種類] ドロップダウン リストから、[PowerShell] を選択し、[作成] をクリックします。
[PowerShell Runbook の編集] ページが表示されたら、PowerShell スクリプトをコピーして Runbook 作成キャンバスに貼り付けます。
このサンプル PowerShell スクリプトを使用するときは、次の点に注意してください。
- この Runbook には、パラメーターの既定値が多数含まれています。 すべての既定値に目を通して適宜変更してください。
- AWS 資格情報を
AWScred
とは異なる資格情報資産の名前で保存している場合は、スクリプトの 57 行をその名前で更新する必要があります。 - PowerShell の AWS CLI コマンドを使用する場合、特にこのサンプル Runbook では、AWS リージョンを指定する必要があります。 指定しなかった場合、コマンドレットは失敗します。 詳細については、AWS Tools for PowerShell ドキュメントの AWS トピック「 Specify AWS Region (AWS リージョンを指定する) 」を参照してください。
AWS サブスクリプションからイメージ名の一覧を取得するため、PowerShell ISE を起動し、AWS PowerShell モジュールをインポートします。 ISE 環境内の
Get-AutomationPSCredential
をAWScred = Get-Credential
に置き換えることで、AWS に対する認証を行います。 このステートメントにより、資格情報の入力を求めるプロンプトが表示され、ユーザー名としてアクセス キー ID を、パスワードとしてシークレット アクセス キーを指定できます。#Sample to get the AWS VM available images #Please provide the path where you have downloaded the AWS PowerShell module Import-Module AWSPowerShell $AwsRegion = "us-west-2" $AwsCred = Get-Credential $AwsAccessKeyId = $AwsCred.UserName $AwsSecretKey = $AwsCred.GetNetworkCredential().Password # Set up the environment to access AWS Set-AwsCredentials -AccessKey $AwsAccessKeyId -SecretKey $AwsSecretKey -StoreAs AWSProfile Set-DefaultAWSRegion -Region $AwsRegion Get-EC2ImageByName -ProfileName AWSProfile
次の出力が返されます。
Runbook で
$InstanceType
として参照される Automation 変数に、いずれかのイメージ名をコピーして貼り付けます。 この例では、無料の AWS 階層型サブスクリプションを使用しているため、サンプル Runbook では t2.micro を使用します。[発行] をクリックして Runbook を発行し、確認を要求されたら [はい] をクリックします。
AWS VM Runbook をテストする
- AWS に対して認証を行うための
AWScred
という資産が Runbook によって作成されることを確認するか、ご使用の資格情報の資産名を参照するようにスクリプトを更新します。 - 新しい Runbook を確認し、すべてのパラメーターの値が適宜更新されていることを確認します。 AWS PowerShell モジュールが Azure Automation にインポートされていることを確認します。
- Azure Automation で、Runbook 操作の [ログとトレース] に表示される [詳細レコードの記録] と (必要に応じて) [進行状況レコードの記録] を [オン] に設定します。
- [開始] をクリックして Runbook を開始し、[Runbook の開始] ウィンドウが開いたら [OK] をクリックします。
- [Runbook の開始] ウィンドウで、VM の名前を指定します。 スクリプトに事前構成してある他のパラメーターの既定値をそのまま使用します。 [OK] をクリックして Runbook ジョブを開始します。
- 作成した Runbook ジョブの [ジョブ] ペインが開きます。 このウィンドウを閉じます。
- Runbook ジョブ ページで [すべてのログ] を選択することで、ジョブの進行状況と出力ストリームを確認できます。
- VM がプロビジョニングされたことを確認するために AWS Management Console にログインします (まだログインしていない場合)。
次のステップ
- サポートされる Runbook については、「Azure Automation の Runbook の種類」を参照してください。
- Runbook を操作するには、「Azure Automation で Runbook を管理する」を参照してください。
- PowerShell の詳細については、PowerShell のドキュメントを参照してください。
- スクリプトのサポートについては、Azure Automation でのネイティブ PowerShell スクリプトのサポートに関するページを参照してください。
- PowerShell コマンドレットのリファレンスについては、「Az.Automation」をご覧ください。