「AWSでもWindowsコンテナって使えるの?」
「Linuxだけじゃないの?」
そんな疑問をお持ちの方へ向けて、この記事ではAWSでWindowsコンテナを使う手順や注意点を、わかりやすくご紹介します!
そもそも「Windowsコンテナ」ってなに?
Windowsコンテナとは、Windows上で動くアプリケーションを、箱(コンテナ)に詰めて実行する方法です。
Dockerを使えば、Windowsアプリ(.exeなど)も、Linuxアプリと同じようにコンテナ化できます。
AWSでもWindowsコンテナは使える?
はい、使えます!
AWSでは、Amazon ECS(Elastic Container Service)というサービスを使って、Windowsコンテナを動かせます。
✔️ただし注意点があります。
①Linuxコンテナよりも対応しているインスタンスタイプが限られます
1. Fargate(サーバーレス実行環境)では動かない
- Linuxコンテナ → ECS Fargateでも実行可能(EC2不要)
- Windowsコンテナ → Fargate非対応。必ず**EC2インスタンス(仮想サーバー)**が必要です。
つまり、Windowsコンテナはサーバーレスでお手軽に使えないため、コストと管理の手間が増えます。
2. 選べるEC2インスタンスが少ない
対応している主なインスタンスタイプ(※2025年現在)
- 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コンテナはOS自体が重いため、最低でも2 vCPU/8GBメモリ以上が推奨されることが多く、実質的にt3.large以上しか使えないのが現実です。
文章ではわかりづらいので、比較表を作ってみました。
比較項目 | Linuxコンテナ | Windowsコンテナ |
Fargate対応 | ○ | × |
小型インスタンス対応 | ○(t3.microなど) | ×(t3.large以上) |
OS対応の幅 | 広い(Amazon Linux, Ubuntuなど) | 限定(WS2019/2022など) |
初期コスト | 安い | 高い |
②Windowsコンテナは起動に時間がかかります
③料金がLinuxより少し高めです。
Linuxと Windowsコンテナを項目に分けてわかりやすく表にしてみました。
項目 | Linuxコンテナ | Windowsコンテナ |
---|---|---|
利用可能なOS | Amazon Linux, Ubuntuなど | Windows Server 2019 / 2022 |
インスタンスの最小サイズ | t3.micro(無料枠あり) | t3.large以上(無料枠なし) |
1時間あたりの料金(東京リージョン例) | t3.micro:約0.0128 USD | t3.large:約0.104 USD |
ECSの起動タイプ | Fargate / EC2どちらも対応 | Fargate非対応(EC2のみ) |
起動時間 | 数秒〜数十秒 | 1〜3分(イメージにより異なる) |
イメージサイズ | 小さい(100MB前後) | 大きい(数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
が良いかな?と個人的には思います。
3. タスク定義でWindowsコンテナを指定
ECSの「タスク定義」で、先ほどECRにアップロードしたWindowsコンテナイメージを設定します。
- OSファミリー:「Windows Server」
- コンテナ名、イメージURL、ポート番号などを入力
4. サービスを作成して、実行!
クラスター上でサービスを作成し、タスクを起動すれば、WindowsコンテナがAWS上で動き始めます!
よくあるトラブルと対処法
よくあるトラブルをまとめて表にしてみました。
トラブル内容 | 対処法 |
タスクが起動しない | インスタンスタイプやOSの対応を再確認 |
起動が遅い | WindowsコンテナはLinuxに比べて遅め。初期起動は数分かかることも |
イメージの容量が大きい | servercoreよりもnanoserverベースにすることで軽量化できる |
まとめ&本記事の復習
このように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アプリをクラウドで運用したい人には超おすすめな選択だと感じています。
是非、興味のある方は、AWSを使って Windowsコンテナを使ってみてください!