EC2Launch v2 の概要
EC2Launch v2 は、インスタンスの起動時、またはインスタンスが停止後に起動された場合、または再起動された場合にタスクを実行するサービスです。
起動エージェントのバージョン機能を比較するには、「Amazon EC2 起動エージェントを比較する」を参照してください。
EC2Launch v2 の概念
次に示す各概念は、EC2Launch v2 の使用を考慮する際の理解に役立ちます。
タスク
インスタンスに対してアクションを実行するために、タスクを呼び出すことができます。タスクは、agent-config.yml
ファイルまたはユーザーデータで設定できます。EC2Launch v2 で使用可能なタスクのリストについては、「EC2Launch v2 のタスク」を参照してください。タスク設定スキーマの詳細については、「EC2Launch v2 タスクの設定」を参照してください。
ステージ
ステージとは、EC2Launch v2 エージェントが実行するタスクを論理的にグループ化したものです。一部のタスクは、特定のステージでのみ実行できます。その他は複数のステージで実行できます。agent-config.yml
を使用するときは、ステージのリストと各ステージ内のタスクのリストを指定する必要があります。
このサービスは、次の順序で実行されます。
- ステージ 1: ブート
- ステージ 2: ネットワーク
- ステージ 3: PreReady
- Windowsの準備ができました
-
PreReady ステージが完了すると、サービスは Amazon EC2 コンソールに
Windows is ready
メッセージを送信します。 - ステージ 4: PostReady
-
ユーザーデータは PostReady ステージで実行されます。スクリプトバージョンには、次のように
agent-config.yml
file PostReady ステージの前に実行されるものと後に実行されるものがあります。agent-config.yml
前-
-
YAML ユーザーデータバージョン 1.1
-
XML ユーザーデータ
-
agent-config.yml
後-
-
YAML ユーザーデータバージョン 1.0 (後方互換性のためのレガシーバージョン)
-
ステージとタスクの例については、「例:agent-config.yml」を参照してください。
ユーザーデータを使用する場合は、起動エージェントが実行するタスクのリストを指定する必要があります。ステージは暗黙に示しています。例については、「例: ユーザーデータ」を参照してください。
EC2Launch v2は、agent-config.yml
およびユーザーデータで指定した順序でタスクのリストを実行します。ステージは順番に実行されます。次のステージは、前のステージが完了した後に開始されます。タスクも順番に実行されます。
頻度
タスク頻度は、ブートコンテキストに応じて、いつタスクを実行するか決定されます。ほとんどのタスクで許可される頻度は 1 つだけです。executeScript
タスクの頻度を指定できます。
EC2Launch v2 タスクの設定 には次の頻度が表示されます。
-
1 回 — タスクは、AMI の初回起動時 (Sysprep の終了時) に 1 回実行されます。
-
常時 — タスクは起動エージェントが実行されるたびに実行されます。起動エージェントは、以下の場合に実行されます。
-
インスタンスの起動または再起動
-
EC2Launch サービスの実行
-
EC2Launch.exe run
の呼び出し
-
agent-config
agent-config
ファイルは、EC2Launch v2 の設定フォルダに置かれています。これには、Boot、Network、PreReady、PostReady の各ステージの設定が含まれます。このファイルを使用して、AMI の初回起動時または後続の起動時に実行するタスクのインスタンスの設定を指定します。
デフォルトでは、EC2Launch v2 のインストール時にインストールされる agent-config
ファイルに、標準の Amazon Windows AMI で使用される推奨設定が含まれています。設定ファイルを修正すると、EC2Launch v2 が指定する AMI での、デフォルトのブート処理を変更できます。
ユーザーデータ
ユーザーデータは、インスタンスの起動時に設定できるデータです。ユーザーデータを更新して、カスタム AMI やクイックスタート AMI の設定を動的に変更できます。EC2Launch v2 は、60 KB のユーザーデータの入力長をサポートします。ユーザーデータに含まれるのは UserData ステージのみであるため、ユーザーデータは agent-config
ファイルの後に実行されます。インスタンスの起動ウィザードを使用してインスタンスを起動するときにユーザーデータを入力することも、EC2 コンソールからユーザーデータを変更することもできます。ユーザーデータの操作方法の詳細については、「Windows インスタンスでの起動時のコマンドの実行」を参照してください。
EC2Launch v2 のタスク
EC2Launch v2 では、ブートが行われるたびに、次のタスクを実行できます。
-
インスタンスに関する情報をレンダリングする新しい壁紙を設定し、必要に応じてカスタマイズします。
-
ローカルマシンに作成される管理者アカウントの属性を設定します。
-
検索サフィックスのリストに DNS サフィックスを追加します。まだ存在しないサフィックスのみがリストに追加されます。
-
追加ボリュームのドライブ文字を設定し、これらを拡張して使用可能な領域を使用します。
-
インターネットまたは設定からファイルをディスクに書き込みます。設定からのコンテンツは、base64 でデコードまたはエンコードできます。インターネットからのコンテンツは解凍できます。
-
インターネットまたは設定からスクリプトを実行します。設定からのスクリプトは、base64 でデコードできます。インターネットからのスクリプトは解凍できます。
-
指定された引数でプログラムを実行します。
-
コンピュータ名を設定します。
-
インスタンス情報を Amazon EC2 コンソールに送信します。
-
RDP 証明書のサムプリントを Amazon EC2 コンソールに送信します。
-
オペレーティングシステムパーティションを動的に拡張して、未使用の領域が含まれるようにします。
-
ユーザーデータを実行します。ユーザーデータを指定する方法については、「EC2Launch v2 タスクの設定」を参照してください。
-
メタデータサービスと AWS KMS サーバーに到達するように、非永続的な静的ルートを設定します。
-
非ブートパーティションを MBR または GPT に設定します。
-
Sysprep 後に Systems Manager (SSM) サービスを開始します。
-
ENA 設定を最適化します。
-
新しい Windows バージョンで OpenSSH を有効にします。
-
ジャンボフレームを有効にします。
-
EC2Launch v2 で実行するように Sysprep を設定します。
-
Windows イベントログを発行します。
[Telemetry]
テレメトリは、AWSを使用して、要件の理解を深め、問題を診断し、AWS のサービスのサービスのユーザーエクスペリエンスを向上するのに役立つ追加情報です。
EC2Launch v2 バージョン2.0.592
およびそれ以降のバージョンは、使用状況指標やエラーなどのテレメトリを収集します。このデータは、EC2Launch v2 が実行される Amazon EC2 インスタンスから収集されます。これには、AWSによって所有されるすべての Windows AMI が含まれます。
EC2Launch v2 では、以下のテレメトリを収集しています。
-
使用状況の情報— エージェントのコマンド、インストール方法、スケジュールされた実行頻度。
-
エラーと診断情報 — エージェントのインストールエラーコード、実行エラーコード、およびエラーコールスタック。
収集されるデータの例:
2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsAgentScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: IsUserDataScheduledPerBoot=true 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandCode=1 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentCommandErrorCode=5 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallCode=2 2021/07/15 21:44:12Z: EC2LaunchTelemetry: AgentInstallErrorCode=0
テレメトリーはデフォルトでは有効になっています。テレメトリ収集はいつでも無効にできます。テレメトリが有効な場合、EC2Launch v2 は、追加の顧客通知なしでテレメトリデータを送信します。
テレメトリー可視性
テレメトリが有効な場合、Amazon EC2 コンソールの出力に次のように表示されます。
2021/07/15 21:44:12Z: Telemetry: <Data>
インスタンスでのテレメトリの無効化
1 つのインスタンスのテレメトリを無効にするには、システム環境変数を設定するか、MSI を使用してインストールを変更します。
システム環境変数を設定してテレメトリを無効にするには、管理者として次のコマンドを実行します。
setx /M EC2LAUNCH_TELEMETRY 0
MSI を使用してテレメトリを無効にするには、MSIをダウンロードした後で、以下のコマンドを実行します:
msiexec /i ".\AmazonEC2Launch.msi" Remove="Telemetry" /q