Azure Container Instances とは

コンテナーは、クラウド アプリケーションのパッケージ化、デプロイ、管理を行う優れた方法としてしだいに普及しつつあります。 Azure Container Instances には、仮想マシンを管理したり、より高度なサービスを採用したりせずに、Azure で最も高速かつ簡単にコンテナーを実行する方法が用意されています。

Azure Container Instances は、単純なアプリケーション、タスク自動化、ジョブ作成など、分離されたコンテナーで操作できるあらゆるシナリオ向けの、優れたソリューションです。 複数コンテナー間でのサービスの検出、自動スケーリング、およびアプリケーションの調整されたアップグレードなど、コンテナーの完全なオーケストレーションが必要なシナリオには、Azure Kubernetes Service (AKS) をお勧めします。 コンテナー インスタンスをデプロイするときのベスト プラクティスを理解するには、考慮事項と制限事項FAQ を読むことをお勧めします。

高速なスタートアップ時間

コンテナーは、スタートアップにおいて、仮想マシン (VM) よりもはるかに優れています。 Azure Container Instances を使用すると、VM をプロビジョニングして管理する必要なく、数秒で Azure でコンテナーを開始できます。

Docker Hub、プライベート Azure コンテナー レジストリ、または別のクラウドベースの Docker レジストリから、Linux または Windows のコンテナー イメージを取り込みます。 ACI でサポートされているレジストリについては、FAQ を参照してください。 Azure Container Instances によって複数の一般的な基本 OS イメージがキャッシュされるため、カスタム アプリケーション イメージのデプロイを高速化するのに役立ちます。

コンテナー アクセス

Azure Container Instances を使用すると、IP アドレスと完全修飾ドメイン名 (FQDN) を使用してコンテナー グループをインターネットに直接公開できます。 コンテナー インスタンスを作成するとき、カスタム DNS 名ラベルを指定できるので、customlabel.azureregion.azurecontainer.io でアプリケーションに到達できます。

Azure Container Instances では、アプリケーションの開発とトラブルシューティングを支援するために、対話型シェルを提供することで、実行中のコンテナーでのコマンドの実行もサポートしています。 アクセスは HTTPS 経由で行われ、TLS を使用してクライアント接続がセキュリティで保護されます。

重要

2020 年 1 月 13 日以降、Azure Container Instances では、サーバーとアプリケーションからのセキュリティで保護されたすべての接続で TLS 1.2 を使用する必要があります。 TLS 1.0 と 1.1 のサポートは、廃止される予定です。

準拠しているデプロイ

ハイパーバイザーレベルのセキュリティ

従来、コンテナーは、アプリケーション依存関係の分離とリソース ガバナンスを実現してきましたが、悪意のあるマルチテナント使用に対する十分なセキュリティ強化については考慮されていません。 Azure Container Instances を使用すると、アプリケーションは、VM 内であるかのように、コンテナー内で確実に分離されます。

顧客データ

ACI サービスは、コンテナー グループが想定どおりに実行されていることを保証するために必要な最小限の顧客データを格納します。 現在、顧客データを 1 つのリージョンに格納することは、アジア太平洋地域の東南アジア リージョン (シンガポール) と、ブラジル地域のブラジル南部リージョン (サンパウロ州) でのみ使用できます。 その他のすべてのリージョンでは、顧客データは地域内に格納されます。 詳細については、Azure サポートまでお問い合わせください。

カスタム サイズ

コンテナーは、通常、1 つのアプリケーションだけを実行するために最適化されますが、そのようなアプリケーションの正確なニーズはさまざまに異なることがあります。 Azure Container Instances で、CPU のコア数とメモリを厳密に指定することによって最適な稼働率を確保することが可能です。 支払額は、その要求内容に基づいて秒単位で課金されるので、実際のニーズに応じて支出をきめ細やかに調整することができます。

機械学習などの計算集中型ジョブの場合、Azure Container Instances では、NVIDIA Tesla GPU リソース (プレビュー) を使用するように Linux コンテナーをスケジュールできます。

永続的ストレージ

Azure Container Instances を使用して状態を取得および保持できるように、Azure Storage によってサポートされる Azure Files 共有の直接マウントが提供されます。

Linux コンテナーと Windows コンテナー

Azure Container Instances では、同じ API で、Windows と Linux の両方のコンテナーをスケジュールできます。 コンテナー グループを作成するときに、OS の種類を指定するだけです。

一部の機能は、現在のところ Linux コンテナーに限定されています。

Windows コンテナーのデプロイでは、一般的な Windows ベースのイメージに基づくイメージを使用します。

共同スケジュール グループ

Azure Container Instances は、ホスト コンピューター、ローカル ネットワーク、ストレージ、およびライフサイクルを共有する複数コンテナー グループのスケジュール設定をサポートします。 これにより、メイン アプリケーション コンテナーを、サイドカーのように主要な機能と併走しながら補助的な役割をつかさどるコンテナー (ログ記録など) と結合することができます。

仮想ネットワークのデプロイ

Azure Container Instances を使用すると、Azure 仮想ネットワークにコンテナー インスタンスをデプロイすることができます。 仮想ネットワーク内のサブネットにデプロイするとき、コンテナー インスタンスでは、オンプレミス上にあるものなど (VPN Gateway または ExpressRoute 経由で)、仮想ネットワークに存在する他のリソースと安全に通信することができます。

注意事項

クォータの引き上げを必要とする既定の制限があります。 すべてのクォータの引き上げが承認されるわけではありません: サービスのクォータと利用可能なリージョン - Azure Container Instances | Microsoft Learn

リージョンごとに既定の制限が異なるため、リージョンの制限を考慮する必要があります: リージョンごとのリソースの可用性 - Azure Container Instances | Microsoft Learn

コンテナー グループが機能しなくなった場合は、サポート リクエストを開く前に、コンテナーを再起動し、アプリケーション コードまたはローカル ネットワーク構成を確認することをお勧めします。

コンテナー イメージを 15 GB より大きくすることはできません。このサイズを超えるイメージは、予期しない動作を引き起こす可能性があります: コンテナー イメージのサイズはどのくらいになる可能性がありますか?

一部の Windows Server 基本イメージは、Azure Container Instances との互換性がなくなりました。
どの Windows ベース OS イメージがサポートされていますか。

コンテナー グループが再起動されると、コンテナー グループの IP が変更される可能性があります。 実際のシナリオでは、ハードコーディングされた IP アドレスを使用することをお勧めします。 静的パブリック IP アドレスが必要な場合は、Application Gateway を使用します: コンテナー グループの静的 IP アドレス - Azure Container Instances | Microsoft Learn

サービス機能用に予約されているポートがあります。 予期しない動作につながるので、これらのポートを使用しないことをお勧めします: ACI サービスはサービス機能用にポートを予約しますか?

コンテナーのデプロイまたは実行に問題がある場合は、まず トラブルシューティング ガイドで一般的な間違いや問題を確認してください

プラットフォームのメンテナンス イベントが原因でコンテナー グループが再起動する場合があります。 これらのメンテナンス イベントは、基盤となるインフラストラクチャの継続的な改善を確実にするために行われます: 明示的なユーザー入力なしでコンテナーで分離再起動が行われた

ACI では 特権コンテナー操作は許可されていません。 シナリオにルート ディレクトリを使用しないことをお勧めします

次のステップ

クイックスタート ガイドを使用して、1 つのコマンドでコンテナーを Azure にデプロイしてみてください。