Windows Server 2016 で稼働中の EC2 インスタンスで EC2Launch v1 から EC2Launch v2 へアップデートしてみた
はじめに
テクニカルサポートの 片方 です。
既存の Windows Server 2016 ベースの EC2 インスタンスでは、EC2Launch v1 が動作しているケースもまだあるのではないでしょうか。
今回は、Windows Server 2016 で稼働中の EC2 インスタンスに対して、EC2Launch v1 から EC2Launch v2 へアップデートする手順を試してみました。
本ブログでの検証環境
検証では、以下の環境で実施しました。
| 項目 | 内容 |
|---|---|
| OS | Windows Server 2016 |
| Amazon Machine Image (AMI) | ami-0a8933b0a3e5604ac (Windows_Server-2016-English-Full-Base-2026.04.15) |
| サブネット | パブリックサブネット |
| EC2Launch | EC2Launch v1 がインストール済みの状態 |
| アップデート先 | EC2Launch v2 |
| 実施方法 | AWS 公式ドキュメントに記載の PowerShell 手順 |
| 接続方法 | SSM Fleet Manager 経由の RDP でインスタンスへ接続 |
| 使用シェル | Windows PowerShell |
| 作業ユーザー | 管理者権限ユーザー |
今回の環境では、EC2Launch v1 がすでに導入されている Windows Server 2016 の EC2 インスタンスを用意し、そこに対して AWS 公式ドキュメントに沿って EC2Launch v2 をインストールしました。
以降では、実際に実施した手順を順番に見ていきます。
やってみた
それでは実際に、Windows Server 2016 の EC2 インスタンスに対して EC2Launch v2 をインストールしてみます。
今回は、AWS 公式ドキュメントに記載されている PowerShell を利用した手順に沿って進めました。
事前に対象インスタンスへ RDP で接続し、管理者権限で Windows PowerShell を起動しておきます。
- 作業用ディレクトリを作成する
まずは、ダウンロードしたインストーラーを保存するための作業用ディレクトリを作成します。
New-Item -Path "$env:USERPROFILE\Desktop\EC2Launchv2" -ItemType Directory
検証時では、インストールされている EC2Launch v1 のバージョンも確認しています。
Test-ModuleManifest -Path "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1" | Select Version

- TLS 1.2 を有効化する
Windows Server 2016 では、Invoke-WebRequest によるダウンロード時に TLS のバージョンが原因でエラーになる場合があります。
そのため、今回は先に PowerShell セッションで TLS 1.2 を有効化しました。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
- EC2Launch v2 のダウンロード URL を設定する
続いて、EC2Launch v2 の MSI インストーラーの URL を変数に設定します。今回は AWS 公式ドキュメントで案内されている Amazon S3 の URL を使用しました。
$Url = "https://s3.amazonaws.com/amazon-ec2launch-v2/windows/amd64/latest/AmazonEC2Launch.msi"

- インストーラーをダウンロードする
次に、設定した URL を使って EC2Launch v2 の MSI ファイルをダウンロードします。
$DownloadFile = "$env:USERPROFILE\Desktop\EC2Launchv2\" + $(Split-Path -Path $Url -Leaf)
Invoke-WebRequest -Uri $Url -OutFile $DownloadFile

ダウンロード完了後、作業用ディレクトリ配下に AmazonEC2Launch.msi が保存されました。

- EC2Launch v2 をインストールする
ダウンロードした MSI ファイルを使って、EC2Launch v2 をインストールします。
msiexec /i "$DownloadFile"
コマンド実行後、インストーラーが起動しました。画面の案内に従ってインストールを進めます。
例): [Next] ⇒ [Install] ⇒ [Finish]



OS の再起動や停止/起動は必要なく、手順としてはこれで終了です。
お疲れさまでした。
確認してみた
インストール完了後、EC2Launch v2 が正しく導入されているか確認します。
EC2Launch v2 バージョン確認コマンドを実行します。
& "C:\Program Files\Amazon\EC2Launch\EC2Launch.exe" version
EC2Launch v1 のバージョン確認コマンドを実行してエラーとなるかも確認します。
Test-ModuleManifest -Path "C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psd1" | Select Version

念のため、EC2Launch v2 設定ダイアログボックスが表示されるか確認します。

成功ですね。
ユーザーデータ利用
ユーザーデータ入力を使用して EC2 インスタンスを起動するときに EC2Launch v2 を インストールしたい場合は、以下をご参考ください。
<powershell>
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
$WorkDir = 'C:\Temp\EC2Launchv2'
$MsiUrl = 'https://s3.amazonaws.com/amazon-ec2launch-v2/windows/amd64/latest/AmazonEC2Launch.msi'
$MsiPath = Join-Path $WorkDir 'AmazonEC2Launch.msi'
$MsiLog = Join-Path $WorkDir 'AmazonEC2Launch-install.log'
$OutLog = Join-Path $WorkDir 'userdata-install-output.log'
New-Item -Path $WorkDir -ItemType Directory -Force | Out-Null
Start-Transcript -Path $OutLog -Append
try {
# Windows Server 2016 以前では必要になる場合がある
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Write-Host "Downloading EC2Launch v2 installer..."
Invoke-WebRequest -Uri $MsiUrl -OutFile $MsiPath
Write-Host "Installing EC2Launch v2..."
$proc = Start-Process -FilePath 'msiexec.exe' -ArgumentList @(
'/i', "`"$MsiPath`"",
'/qn',
'/norestart',
'/l*v', "`"$MsiLog`""
) -Wait -PassThru
if ($proc.ExitCode -ne 0) {
throw "msiexec failed. ExitCode=$($proc.ExitCode)"
}
$Ec2LaunchExe = Join-Path $env:ProgramFiles 'Amazon\EC2Launch\EC2Launch.exe'
if (-not (Test-Path $Ec2LaunchExe)) {
throw "EC2Launch v2 executable not found: $Ec2LaunchExe"
}
$Version = & $Ec2LaunchExe version
$Version | Out-File -FilePath (Join-Path $WorkDir 'EC2Launch-version.txt') -Encoding utf8
Write-Host "EC2Launch v2 installation completed."
Write-Host $Version
}
catch {
Write-Error $_
throw
}
finally {
Stop-Transcript
}
</powershell>
※ 適宜修正のうえでご利用ください
まとめ
Windows Server 2016 の EC2 インスタンスに対して、AWS 公式ドキュメントに沿って EC2Launch v2 をインストールし、EC2Launch v1 からアップデートできることを確認しました。
作業自体は PowerShell から実施でき、インストール後はバージョン確認によって更新状態も確認できました。
一方で、Windows Server 2016 では TLS 1.2 の有効化が必要になる場合がある点や、既存の EC2Launch v1 がアンインストールされる点には注意が必要です。
一例としては、インスタンスストアボリュームの自動マッピング設定などが考えられます。
同様のアップデートを検討している方は、事前に検証環境で確認したうえで実施してみてください。
本ブログが誰かの参考になれば幸いです。
参考資料
- EC2 Windows インスタンスの起動時に EC2Launch v1 エージェントを使用してタスクを実行する - Amazon Elastic Compute Cloud
- EC2Launch v2 の最新バージョンのインストール - Amazon Elastic Compute Cloud
- EC2Launch v2 設定を Windows インスタンスに構成する - Amazon Elastic Compute Cloud
- ユーザーデータ入力を使用して EC2 インスタンスを起動するときにコマンドを実行する - Amazon Elastic Compute Cloud
クラスメソッドオペレーションズ株式会社について
クラスメソッドグループのオペレーション企業です。
運用・保守開発・サポート・情シス・バックオフィスの専門チームが、IT・AIをフル活用した「しくみ」を通じて、お客様の業務代行から課題解決や高付加価値サービスまでを提供するエキスパート集団です。
当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、クラスメソッドオペレーションズ株式会社 コーポレートサイト をぜひご覧ください。※2026年1月 アノテーション㈱から社名変更しました








