クラウドインテグレーション事業部のにゃんなか(中川)です!!
フォージビジョン エンジニアブログを参照頂き、ありがとうございます!
本記事の内容
● テーマ
本記事では、
EC2Launch v2を初心者向けに機能と設定項目を解説
してみようと思います。
EC2の利用にあたり本ツールを意識されていないかたもいらっしゃるかと思いますが、実は知らず知らずに利用している機能です。
WindowsのEC2を利用される際は、要件によっては変更が必要となり、理解しておくべき内容ですので是非ご参考頂ければと思います。
● 本記事の主な対象の方
・どんな設定項目があるのか大枠を知りたいかた
※本記事では触れない細かい仕様についてはAWSサイトをご参照ください
● 目次
EC2Launch v2とは?
EC2Launch v2とは何かをご説明します。
EC2Launch v2とは
EC2のWindows Serverに対し、AWSと連動した初期設定を行うAWS提供ツールです。
簡単な例をいうと、
EC2でWindows Serverを作成すると、「iPアドレスを含んだホスト名に自動設定」されていたり、「インスタンス情報が記載された壁紙」に設定されているかと思います。
そういった、EC2の初期設定を起動時に実行してくれるツールとなります。
バージョン 2 ?
EC2Launch v2は、Ec2config → EC2Launch (v1) → EC2Launch v2
と続く、WindowsのEC2インスタンス向け初期設定ツールの最新版となります。
元々Windows Server 2016 以前の AMI には EC2Config が含まれておりました。
Windows Server 2016 以降の AMI で EC2Config から EC2Launch へ置き換えられ、最新版として、2020年6月に EC2Launch v2 (2.0.0) がリリースされております。
■ 参考:対応OSや、各バージョンでの機能差異は以下をご参照ください
docs.aws.amazon.com
■ 参考:ec2launch、ec2config とは?
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2launch.html
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2config-service.html
導入について
そのようなツールをインストールした覚えがない。と思われるかたもいらっしゃるかもしれませんが、
ユーザ側で手動導入せずとも、基本的にAWS提供のWindows Server のAMIには標準で含まれております。
※ただし、前述のとおり本ツールにはバージョンがあり、AMIによりどのバージョンが含まれているかは異なります。
※2020/9現在では、標準提供に含まれるAMIにはec2launch v1が多いため、バージョン2利用の際はユーザ側でツールのバージョン移行が必要です。
移行手順は以下に記載がございます。
バージョンの確認方法
EC2Launch v2がインストールされているか否かは、プログラムと機能の一覧より確認可能です。
EC2Launchのv1とv2は、ツールのGUIも異なり、またインストールディレクトリも異なるため、そのような観点でもインストール状況の確認が可能です。
■ EC2Launch v2
・サービスバイナリDIR: C:\Program Files\Amazon\EC2Launch
・サービスデータDIR: C:\ProgramData\Amazon\EC2Launch
■ EC2Launchv1
・ルートDIR:C:\ProgramData\Amazon\EC2-Windows\Launch
・v1のUI
起動方法
EC2Launch v2はWindows サービスとして提供され、他のWindows サービスと同じように管理できます。
EC2Launch v2 サービスはデフォルトで以下のような動きとなります。
・タスクの実行後に、サービスは停止状態になります。
・サービスを再起動すると、サービスは設定タスクを再度実行し、停止状態に戻ります。
※設定したタスクを毎次実行するかの実行頻度についてはタスク側で設定
■ 参考:EC2Launch v2 サービスの動作について
docs.aws.amazon.com
EC2Launch v2は一体何をしてくれるのか
では、EC2Launch v2にどういった機能があるのかをご紹介します。
EC2Launch v2 で実行可能なタスク
AWSサイトで実行可能なタスクとして記載あるものは以下となります。
こうしてみると、ユーザデータってEC2Launch で実行しているんだ!?
など、意識せずとも裏で使っていることがわかりますね。
・インスタンス情報を含んだ壁紙設定
・管理者アカウントのユーザー名とパスワード
・DNSサフィックスの追加
・Sysprepコマンド後にSystems Manager(SSM)サービスを開始
・追加ストレージボリュームのドライブ文字、初期化設定
・OSのパーティションを未使用の領域が含まれるように動的に拡張
・非ブートパーティションを MBR または GPT に設定
・メタデータサービスやKMSサーバへのスタティックルート設定
・ENA(Elastic Network Adapter)設定を最適化
・OpenSSH の有効化(対応するWindows バージョンのみ)
・ジャンボフレームの有効化
・EC2Launch v2 経由でのSysprep 実行
・Windows イベントログを発行
・ユーザーデータを実行
・任意のファイルを作成
・任意のスクリプト実行
・任意のプログラム実行
・インスタンス情報をAmazon EC2コンソールに送信
・RDP証明書のサムプリントを EC2 コンソールに送信
参考:EC2Launch v2 のタスク
docs.aws.amazon.com
設定
続いては、EC2Launch v2の設定変更の方法についてご紹介します。
設定方法
①GUI
GUIを[スタート]メニュー - [Amazon EC2Launch Settings]より起動できます。
実行ファイル:C:\Program Files\Amazon\EC2Launch\EC2Launch.exe
です。
②CLIコマンド
ec2launchコマンドによるCLIでの変更となります。
タスクのうち対応しているコマンドは以下をご参照ください。
③.yml ファイル (agent-config.yml) を編集
設定ファイルを直接更新する方法となります。
①のGUIで設定した内容も本ファイルに反映されます。
C:\ProgramData\Amazon\EC2Launch\config\agent-config.yml
GUIだと設定できないタスクも、設定ファイルだと設定可能であるものもあり、GUIと比べて自由度が高いです。 docs.aws.amazon.com
では次は、具体的な設定項目について、今回は①GUIに絞り、ご紹介させて頂きます。
EC2Launch v2 グラフィカルツール 具体的な設定項目
※記載のデフォルト値は環境により異なる場合がござます。
①General(全般)タブ
設定項目 | デフォルト | 説明 |
---|---|---|
Set computer name(コンピュータ名の設定) | 無効 | ・ホスト名を内部 IP アドレスを含むように自動設定する場合、有効とする。 ・独自のホスト名を設定したい場合や、既存のホスト名が変更されないようにする場合は無効にします。 |
Extend boot volume(ブートボリュームの拡張) | 有効 | ・OSのルートボリュームを未使用の領域を使用し動的に拡張する。 |
Set administrator account(管理者アカウントの設定) | 有効Random | ・有効にすると、管理者アカウントのユーザー名とパスワードの種類を設定可能。 ・有効にしないと、Sysprep 後に管理者アカウントがシステムに作成されない。 ・パスワードの種類 ①Random:ランダム値 ②Specify:パスワード指定 ③DoNothing:unattend.xml ファイルで指定したパスワードを使用 |
Start SSM Service(SSM サービスの開始) | 有効 | ・有効にすると、Systems Manager (SSM) サービスをSysprep後に開始できる |
Optimize ENA(ENA の最適化) | 無効 | ・有効にすると、ENA 設定(ENAの受信側のスケーリング、受信キューの深さ等)を最適化する |
Enable SSH(SSH の有効化) | 無効 | ・有効にすると、OpenSSH を有効にし、リモートシステム管理を許可できます。 |
Enable Jumbo Frames(ジャンボフレームの有効化) | 無効 | ・ジャンボフレームを有効にするかを選択します。 ・ジャンボフレームはネットワーク通信に意図しない影響を及ぼす可能性があるためシステム影響の確認が必要 |
Prepare for imaging(イメージングの準備) | - | EC2Launch v2 で Sysprep を実行する場合は[Shutdown with Sysprep]をクリックします。 |
② DNS サフィックスタブ
設定項目 | デフォルト | 説明 |
---|---|---|
Add DNS suffix | $REGION.ec2-utilities.amazonaws.com | ・DNS 解決用に DNS サフィックスのリストを追加するかどうかを選択できます。(完全修飾ドメイン名を指定せずにサーバ指定可能) ・DNS サフィックスには、$REGION 変数と $AZ変数を含めることができます。 |
③Wallpaper(壁紙)タブ
・選択したインスタンスの詳細を壁紙に表示できます。
・画像は別の画像を選択することもできます。
・インスタンスの詳細は、ログインするたびに生成されます。
④ボリュームタブ
●Initialize
・チェックを入れると、ドライブ文字が設定されボリューム拡張されます。
・[ALL] を選択すると、インスタンスにアタッチされているすべての空の EBS ボリュームを初期化されます。
・[Devices] を選択すると、指定したデバイスのみを初期化します。
●Devices(マップのリスト)
・オプションとして以下を指定可能です。
[Name (割り当てるドライブ名)]
[Letter (割り当てるドライブ文字)]
[Partition (MBR または GPT)]
・[Partition] に値を指定しない場合、2 TB より大きいボリュームは GPT で初期化され、2 TB より小さいボリュームは MBRで初期化。
・NTFS 以外のパーティション、もしくはディスク最初の 4 KB にデータが含まれている場合、スキップされます。
さいごに
EC2Launch v2 のユースケースとしては、Windowsのカスタムイメージを作成する際に利用することは多いのではないでしょうか。
Windowsにはセキュリティ識別子 (SID) が一意に設定されておりますので、AMI化し複製する際はEC2Launch v2 を介しSysprepを実行する必要もございます。
皆様のご参考になれば幸いです。
フォージビジョン エンジニアブログをご覧頂き、ありがとうございました。
AWSの他サービスもどんどん整理していきたいと思います!
■今一度整理シリーズの記事
techblog.forgevision.com
techblog.forgevision.com