公開日:2025年2月12日最終更新日:
コンテナはアプリケーションの実行環境を簡単に構築できる手段として、開発現場でも普及してきました。アプリケーションに必要なソフトウェアのインストールや設定作業をひとまとめにして共有できるため、実行環境の移行や管理の柔軟性が増し、運用期間が長いほどその導入効果が得やすいでしょう。
今回ご紹介するのは、コンテナによるアプリケーション実行環境が簡単に構築できるAzure Container Instancesです。コンテナの配置先となるサーバーリソースやネットワークを提供するインフラサービスで、自前のコンテナイメージがあればアプリケーション実行環境をすぐに準備できるようになります。
コンテナのメリットが気になる方やコンテナの利用を検討中の方は参考にしてみてください。
目次 <Contents>
Azure Container Instancesとは
Azure Container Instancesは、コンテナベースのインフラ環境を提供するクラウドサービスです。コンテナの稼働に必要なCPUやメモリは個別に指定できるので、アプリケーションの規模を問わず利用できます。さらに、グローバルIPアドレスやドメインが自動で割り当てられるため、すぐにインターネット上に公開することも可能です。
また、コンテナの起動にかかる時間が短いため、一時的なタスク処理や必要に応じて稼働させるテスト環境などに活用できます。コンテナ自体にソフトウェアのインストールやサーバー設定を内包できるため起動までがスムーズで、常時稼働しておく必要のない用途のアプリケーションと相性が良いです。
なお、コンテナは同じ仮想ネットワーク上に複数配置できるため、機能を連携させたり、ストレージを共有したりして1つのアプリケーションを構成することも可能です。大規模で複雑なコンテナ管理にはKubernetesなどが用いられますが、簡易な構成や短時間の用途ではAzure Container Instancesのほうがより簡単かつ低コストに利用できるメリットがあります。
アプリケーション構築へのAzure Container Instancesの活用
Azure Container Instancesでは、他のAzureサービスと連携することでより柔軟なアプリケーションを構築できます。コンテナ間の接続や外部ネットワークへの公開など実用的な使い方が可能です。
複数コンテナの管理
Azure Container Instancesでは複数のコンテナを組み合わせてアプリケーションを構成できるコンテナグループと呼ばれる仕組みを備えています。これによって、閉じたネットワークの中でコンテナ間の通信を可能にしたり、コンテンツやログなどをストレージで共有したりできます。
また、コンテナはLinuxとWindowsの両方に対応しており、Docker HubやAzure Container Registryなどのコンテナレジストリにあるコンテナイメージから展開することが可能です。なお、コンテナの構成はAzureポータルから組み立てることもできますが、YAMLファイルにコード化したものをデプロイすることも可能で、自動構築やバージョン追跡などの構成管理が容易になります。
コンテナの公開
Azure Container Instancesで構築されたコンテナには、グローバルIPアドレスやドメインの自動付与ができるため、特別な設定をせずに外部への公開が可能です。なお、Azure Application Gatewayを併用すればIPアドレスを固定化して独自ドメインによる公開もできます。
また、Azure Virtual Networkを用いると、セキュアな仮想ネットワークを通じて既存のシステムとの通信も可能です。既存のWebアプリケーションやオンプレミスと連携させたい場合に有効な選択肢です。
他のAzureコンテナサービスとの違い
Azureには他にもコンテナを扱えるサービスがありますが、それぞれ異なる役割や特徴を持っています。
Azure Container Registry
Azure Container Registryはコンテナイメージを管理するためのサービスです。作成したコンテナイメージをAzure Container Instancesのようなインフラサービスにいつでも引き渡せるため、開発や運用の流れの中に組み込まれて利用されます。
Azure Container Apps
Azure Container Appsはコンテナベースのアプリケーション実行環境に利用されるサービスです。負荷に応じた自動スケーリング機能や、バージョン更新を円滑にするリビジョン管理を備えるなどAzure Container Instancesよりも機能が豊富で、常時稼働が必要なWebサービスに向いています。また、Kubernetesのような高機能なコンテナ管理が必要なケースで有用な選択肢となります。
Azure App Service
Azure App Serviceは、Webアプリケーションの実行環境や管理機能を提供するサービスです。.NETやPythonなどの実行環境が備わっており、プログラムコードやコンテナイメージをアップロードするだけでアプリケーションを素早く公開できます。コンテナ管理の機能は備えていませんが、コンテナ化されたアプリケーションを展開する場合には選択肢に挙がります。
Azure Container Instancesの利用料金
Azure Container Instancesの料金体系は、コンテナを展開したサーバーリソースと稼働時間に応じて料金が発生する従量課金制です。コンテナグループごとに下記の料金が発生します。
Linux
コンテナグループ
対象 | 料金 |
---|---|
メモリ | 0.0002421円/GB/秒 |
vCPU | 0.0022146円/秒 ※vCPUあたり |
Windows
コンテナグループ
対象 | 料金 |
---|---|
メモリ | 0.0002421円/GB/秒 |
vCPU | 0.0022146円/秒 ※vCPUあたり |
Windowsソフトウェア使用時間 | 0.0018907円/GB/秒 |
Windowsコンテナの場合は、Windowsソフトウェア使用時間に対する料金が加算されます。
なお、上記の表は2025年1月時点の情報で、東日本リージョンでの料金を1ドル157.555円換算で算出しています。その他の料金については公式サイトの価格ページをご参考ください。
Azure Container Instancesの使い方
ここからはAzure Container Instancesを使ったコンテナのデプロイ手順を紹介していきます。なお、コンテナを稼働させるとAzureの料金が発生するためご注意ください。
コンテナの作成
Azureポータルにログインし、サービス一覧の中から「コンテナインスタンス」を選びましょう。

コンテナインスタンスの画面に移るので、「作成」をクリックして作成画面に進みます。

コンテナインスタンスの作成画面で、次の必要事項を入力していきます。
- サブスクリプション
- リソースグループ
- コンテナ名
- リージョン
- イメージのソース:クイックスタートイメージ
- イメージ:mcr.microsoft.com/azuredocs/aci-helloworld:latest(Linux)

ネットワークのタブでは「DNS名ラベル」に任意の英数字を入力して、「確認および作成」をクリックして作成に進みましょう。

コンテナインスタンスが作成されて準備が完了すると、「状態」が「実行中」になります。

これでコンテナが稼働し、HTTPからアクセスできるようになります。
コンテナの動作確認
コンテナが正常に動作していることを確認するために、ブラウザからアクセスしてみましょう。コンテナインスタンスの画面に表示されているFQDNがアクセス先になります。

デフォルトだとHTTP(TCP80番ポート)が解放されているので、FQDNを含めた次のURLをブラウザで開いてみましょう。
http://[FQDN]
下記のように表示されれば成功です。

また、コンテナにアクセスするとログの画面に反映されるので、そちらも確認してみましょう。

今回のチュートリアルではサンプルのコンテナイメージを使用しましたが、コンテナインスタンスの作成画面でAzure Container Registryやその他のコンテナレジストリを選ぶことで、事前に用意したコンテナを簡単にデプロイできます。
まとめ
Azure Container Instancesは、コンテナを動かすためのインフラを提供し、小規模のアプリケーションに適したコンテナ管理サービスです。コンテナの起動が速く、稼働時にのみ料金が発生することから、単発のタスクやスポットで展開する用途に向いています。
コンテナサービスを活用することで、サーバー管理や設定作業を省略できるメリットがあるので、既存機能の移行や新機能の追加などの場面でご利用を検討してみてください。