コンテナー グループを実装する
Azure Container Instances の最上位のリソースは、コンテナー グループです。 コンテナー グループは、同じホスト コンピューター上でスケジュールされるコンテナーのコレクションです。 これらのコンテナーは、ライフサイクル、リソース、ローカル ネットワーク、ストレージ ボリュームを共有します。
コンテナー グループについて知っておくべきこと
Azure Container Instances のコンテナー グループについて、いくつか詳細を確認しておきましょう。
コンテナー グループは Kubernetes のポッドに似ています。 通常、ポッドはコンテナーと 1 対 1 のマッピング関係がありますが、ポッドには複数のコンテナーを含めることができます。 マルチコンテナー ポッド内のコンテナーは、関連するリソースを共有することができます。
Azure Container Instances は、グループ内のすべてのコンテナーのリソース要求を追加することで、マルチコンテナー グループにリソースを割り当てます。 リソースには、CPU、メモリ、GPU などの項目があります。
2 つのコンテナーがあり、それぞれが CPU リソースを必要とする 1 つのコンテナー グループを考えてみましょう。 各コンテナーには 1 つの CPU が必要です。 Azure Container Instances は、コンテナー グループに対して 2 つの CPU を割り当てます。
一般的に、マルチコンテナー グループのデプロイ方法は 2 つあります。Azure Resource Manager (ARM) テンプレート と YAML ファイルです。
ARM テンプレート。 ARM テンプレートが推奨されるのは、Azure Files ファイル共有など、コンテナー インスタンスのデプロイ時に他の Azure サービス リソースをデプロイする場合です。
YAML ファイル。 YAML 形式は簡潔なので、デプロイに含まれるのがコンテナー インスタンスのみの場合は、YAML ファイルをお勧めします。
コンテナー グループは、外部に面した IP アドレス、IP アドレス上の 1 つ以上のポート、FQDN を持つ DNS ラベルを共有できます。
外部クライアント アクセス。 外部クライアントがグループ内のコンテナーに到達できるようにするには、IP アドレス上とコンテナーからのポートを公開する必要があります。
ポートのマッピング。 グループ内のコンテナーはポートの名前空間を共有しているため、ポートのマッピングはサポートされていません。
削除されたグループ。 コンテナー グループが削除されると、その IP アドレスと FQDN は解放されます。
構成の例
2 つのコンテナーがあるマルチコンテナー グループという次の例を考えてみましょう。
マルチコンテナー グループには、次のような特徴と構成があります。
- コンテナー グループは、1 台のホスト コンピューター上でスケジュールされ、DNS 名ラベルが割り当てられています。
- コンテナー グループは 1 つのパブリック IP アドレスを公開し、1 つのポートを公開します。
- グループ内の一方のコンテナーはポート 80 でリッスンします。 もう一方のコンテナーはポート 1433 でリッスンします。
- グループには、ボリューム マウントとして 2 つの Azure Files ファイル共有があります。 グループ内の各コンテナーは、ファイル共有の 1 つをローカルでマウントします。
コンテナー グループを使う場合に考慮すべきこと
マルチコンテナー グループは、1 つの機能タスクを数個のコンテナー イメージに分割する場合に便利です。 異なる複数のチームがイメージを配布でき、イメージごとにリソース要件を変えることができます。
マルチコンテナー グループを使う場合は、次のシナリオを検討してください。 オンライン小売企業の社内アプリをサポートできるオプションを考えてみましょう。
Web アプリの更新を検討します。 マルチコンテナー グループを実装することで、Web アプリの更新をサポートします。 グループ内の一方のコンテナーで Web アプリを提供し、もう一方のコンテナーでソース管理から最新のコンテンツをプルします。
ログ データの収集を検討する。 マルチコンテナー グループを使って、アプリに関するログとメトリックのデータをキャプチャします。 アプリケーション コンテナーからはログとメトリックを出力します。 ログ コンテナーは出力データを収集し、長期ストレージにそのデータを書き込みます。
アプリの監視を検討します。 マルチコンテナー グループを使ってアプリを監視できるようにします。 監視コンテナーからアプリケーション コンテナーに対して定期的に要求を送信し、アプリが適切に動作し、応答していることを確認します。 監視コンテナーは、アプリに問題が発生した可能性を特定すると、アラートを生成します。
フロントエンドとバックエンドのサポートを検討します。 フロントエンド コンテナーとバックエンド コンテナーを保持するマルチコンテナー グループを作成します。 フロントエンド コンテナーは Web アプリを提供できます。 バックエンド コンテナーは、データを取得するサービスを実行できます。