「AWSでもWindowsコンテナって使えるの?」
「Linuxだけじゃないの?」
そんな疑問をお持ちの方もいらっしゃるのではないでしょうか?
実はAWSでは、LinuxだけでなくWindows Serverベースのコンテナも実行できます。
ただし、Linuxコンテナと比べると制約やコスト面での違いがあるため、事前に理解しておくことが重要です。
本記事では、Amazon ECS上でWindowsコンテナを動かす方法、注意点、Linuxコンテナとの違いを比較表つきでわかりやすく解説します。
そもそも「Windowsコンテナ」ってなに?
Windowsコンテナとは、Windows上で動くアプリケーションを、箱(コンテナ)に詰めて実行する方法です。
Dockerを使えば、Windowsアプリ(.exeなど)も、Linuxアプリと同じようにコンテナ化できます。
AWSでもWindowsコンテナは使える?
はい、使えます!
AWSでは、Amazon ECS(Elastic Container Service)というサービスを使って、Windowsコンテナを動かせます。
✔️ただし注意点があります。
①Linuxコンテナよりも対応しているインスタンスタイプが限られます
1. Fargate(サーバーレス実行環境)では動かない
- Linuxコンテナ → ECS Fargateでも実行可能(EC2不要)
- Windowsコンテナは、現在のところECS Fargateでは利用できず、
EC2起動タイプ(Windows Server搭載インスタンス)でのみ実行可能です。
つまり、Windowsコンテナはサーバーレスでお手軽に使えないため、コストと管理の手間が増えます。
2. 選べるEC2インスタンスが少ない
対応している主なインスタンスタイプ
- t3.large 以上(CPUとメモリが一定以上必要)
- m5.large / c5.large / r5.large なども可
一方、Linuxコンテナは
- t3.micro や t4g.nano などの小型・低コストなインスタンスでも動作可能です。
3. 対応OSバージョンが限定的
Windowsコンテナを使うには、EC2にインストールされているOSが以下のような特定のWindows Serverである必要があります:
- Windows Server 2019
- Windows Server 2022
古いバージョン(2016以前)やカスタムAMIなどは対応外の場合が多いです。
4. ホストインスタンスのメモリ要件が高い
WindowsコンテナはLinuxよりメモリ消費が大きいため、
実運用では 2 vCPU / 8GB以上の構成(例:t3.large相当) が選ばれることが多いです。
文章ではわかりづらいので、比較表を作ってみました。
| 比較項目 | Linuxコンテナ | Windowsコンテナ |
| Fargate対応 | ○ | × |
| 小型インスタンス対応 | ○(t3.microなど) | ×(t3.large以上) |
| OS対応の幅 | 広い(Amazon Linux, Ubuntuなど) | 限定(WS2019/2022など) |
| 初期コスト | 安い | 高い |
②Windowsコンテナは起動に時間がかかります
③料金がLinuxより少し高めです。
【補足】WindowsコンテナはLinuxより起動時間やコストが高くなるため、「Windowsでしか動かないアプリ」をクラウドで運用したいケースに向いています。Linux対応アプリならFargate+Linuxコンテナの方が効率的です。
Linuxと Windowsコンテナを項目に分けてわかりやすく表にしてみました。
| 項目 | Linuxコンテナ | Windowsコンテナ |
|---|---|---|
| 利用可能なOS | Amazon Linux / Ubuntu など幅広く対応 | Windows Server 2019 / 2022 など限定的 |
| 対応インスタンス | 小型インスタンスも利用可能 (例:t3.micro など) | 比較的高スペックが推奨 (例:2vCPU / 8GB以上) |
| 料金傾向 | 比較的安価(軽量構成が可能) | Windowsライセンス費用が含まれるため高めになりやすい |
| ECS起動タイプ | Fargate / EC2 両方対応 | EC2起動タイプのみ対応 |
| 起動時間 | 比較的短い(数秒〜) | イメージサイズが大きいため時間がかかる傾向 |
| イメージサイズ | 小さい(数百MB程度が一般的) | 大きい(数GBになることが多い) |
| 運用コスト | 低〜中(軽量・自動スケールしやすい) | 中〜高(ホスト管理が必要) |
| 主な用途 | Webアプリ、API、マイクロサービス、バッチ処理など | 既存の.NETアプリやWindows専用業務アプリのクラウド移行 |
必要な準備
1. AWSアカウントの作成
まずはAWSの公式サイトでアカウントを作成します。無料枠もあるので、初めてでも安心です。
2. Windowsコンテナの作成(ローカル)
自分のPCでWindowsコンテナを作っておきます。
例として、Dockerfileは以下のようになります。
FROM mcr.microsoft.com/windows/servercore:ltsc2022
COPY myapp.exe C:/myapp/
CMD [“C:/myapp/myapp.exe”]
作成したら、docker buildコマンドでイメージを作成し、Amazon ECRへアップロードします。
ECRにWindowsコンテナをアップロードする方法
- Amazon ECR(Elastic Container Registry)を使って、イメージを保存する場所を作ります。
- AWS CLIを使ってログインし、ECRへdocker pushでアップロードします。
aws ecr get-login-password –region ap-northeast-1 | docker login –username AWS –password-stdin
docker tag mywindowsapp /mywindowsapp
docker push /mywindowsapp
ECSでWindowsコンテナを動かす
1. ECSクラスターの作成
ECSの管理画面から「クラスターを作成」を選び、「EC2起動タイプ」を選択します。
2. Windows対応のEC2インスタンスを選ぶ
Windowsコンテナを使うには、次のようなWindows対応のインスタンスタイプを選びます。
*インスタンスタイプとは、「AWSでどんな性能のパソコンを借りるか」という選択肢のことです
- t3.large 以上
- OSは Windows Server 2019 もしくは 2022
実運用では、2 vCPU / 8GB以上のインスタンス(例:t3.large相当)が安定しやすい構成です。
3. タスク定義でWindowsコンテナを指定
ECSの「タスク定義」で、先ほどECRにアップロードしたWindowsコンテナイメージを設定します。
- OSファミリー:「Windows Server」
- コンテナ名、イメージURL、ポート番号などを入力
4. サービスを作成して、実行!
クラスター上でサービスを作成し、タスクを起動すれば、WindowsコンテナがAWS上で動き始めます!
よくあるトラブルと対処法
よくあるトラブルをまとめて表にしてみました。
| トラブル内容 | 対処法 |
| タスクが起動しない | インスタンスタイプやOSの対応を再確認 |
| 起動が遅い | WindowsコンテナはLinuxに比べて遅め。初期起動は数分かかることも |
| イメージの容量が大きい | servercoreよりもnanoserverベースにすることで軽量化できる |
※必要に応じて、タスク定義でログドライバー(awslogs)を設定することで、CloudWatch Logsに出力できます。
まとめ&本記事の復習
このようにAWSでは、ECSとEC2を使ってWindowsコンテナを動かすことができます。
まとめを一覧表にしてみました。
| ステップ | 内容 | ポイント |
|---|---|---|
| 1. AWSアカウント作成 | 公式サイトで無料アカウント登録 | 初回は無料枠あり |
| 2. DockerでWindowsコンテナを作成 | Windows Server CoreベースでアプリをDocker化 | .exeなどWindows専用アプリに対応 |
| 3. Amazon ECRへアップロード | DockerイメージをECR(AWSの保存場所)に登録 | AWS CLIとdocker pushコマンドで操作 |
| 4. ECSクラスターを作成 | EC2起動タイプでWindows対応インスタンスを選択 | Fargateは非対応。t3.large以上推奨 |
| 5. タスク定義の作成 | ECRのイメージURLやポート番号を設定 | OSファミリーは「Windows」を選ぶ |
| 6. サービスを作成して起動 | 作成したクラスター上でタスクを動かす | 初回起動には数分かかることも |
Linuxコンテナに比べると制約やコスト面で不利な点もありますが、Windows専用アプリケーションをそのままクラウドへ移行したい場合には、有効な選択肢です。
新規開発であればLinuxベースの方が柔軟ですが、既存資産の活用という観点ではWindowsコンテナは十分検討に値します。
是非、興味のある方は、AWSを使って Windowsコンテナを使ってみてください!
【おすすめ記事】
▶︎【注意喚起】KB5060533適用後にPCが起動しない?BIOS破損の可能性と回避策まとめ

