コンテナー グループを実装する

完了

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 つのコンテナーがあるマルチコンテナー グループという次の例を考えてみましょう。

Diagram that depicts an Azure Container Instances multi-container group that has two containers.

マルチコンテナー グループには、次のような特徴と構成があります。

  • コンテナー グループは、1 台のホスト コンピューター上でスケジュールされ、DNS 名ラベルが割り当てられています。
  • コンテナー グループは 1 つのパブリック IP アドレスを公開し、1 つのポートを公開します。
  • グループ内の一方のコンテナーはポート 80 でリッスンします。 もう一方のコンテナーはポート 1433 でリッスンします。
  • グループには、ボリューム マウントとして 2 つの Azure Files ファイル共有があります。 グループ内の各コンテナーは、ファイル共有の 1 つをローカルでマウントします。

コンテナー グループを使う場合に考慮すべきこと

マルチコンテナー グループは、1 つの機能タスクを数個のコンテナー イメージに分割する場合に便利です。 これらのイメージは、配布担当を複数のチームに分け、リソース要件も別にすることができます。

マルチコンテナー グループを使う場合は、次のシナリオを検討してください。 オンライン小売企業の社内アプリをサポートできるオプションを考えてみましょう。

  • Web アプリの更新を検討します。 マルチコンテナー グループを実装することで、Web アプリの更新をサポートします。 グループ内の一方のコンテナーで Web アプリを提供し、もう一方のコンテナーでソース管理から最新のコンテンツをプルします。

  • ログ データの収集を検討する。 マルチコンテナー グループを使って、アプリに関するログとメトリックのデータをキャプチャします。 アプリケーション コンテナーからはログとメトリックを出力します。 ログ コンテナーは出力データを収集し、長期ストレージにそのデータを書き込みます。

  • アプリの監視を検討します。 マルチコンテナー グループを使ってアプリを監視できるようにします。 監視コンテナーからアプリケーション コンテナーに対して定期的に要求を送信し、アプリが適切に動作し、応答していることを確認します。 監視コンテナーは、アプリに問題が発生した可能性を特定すると、アラートを生成します。

  • フロントエンドとバックエンドのサポートを検討します。 フロントエンド コンテナーとバックエンド コンテナーを保持するマルチコンテナー グループを作成します。 フロントエンド コンテナーは Web アプリを提供できます。 バックエンド コンテナーは、データを取得するサービスを実行できます。