[ストーリで理解]Azure Container Instances の制限

ストーリの登場人物についてはこちらを参照してください。

また、シリーズで体系的に学びたい方は[ストーリで学ぶAzureシリーズ]を確認してみてください!

「コンテナの制限って?どこまで使えるの?」

[おてて動かそう]のAzure Container Instances制限ガイド

会議室の一角で、美咲はタブレットを片手に眉をひそめていた。コンテナについて基本を学んだ彼女は、今度は実際の運用に向けて詳細を調べていた。

「Azure Container Instancesって、どのくらいのリソースまで使えるんですか?何か制限とかありますよね?」

そんな美咲の疑問を聞いた田中が、自分のデスクから声をかけた。

「おっ、ACI制限について調べてるんすね!実際使うとなると大事なポイントっす。いくつか把握しておきたい制限があるっす」

田中はホワイトボードに向かって立ち上がり、マーカーを手に取った。

コンテナリソースの基本制限

「まず、ACIにはハード制限とソフト制限があるんす。ハード制限はどんなに頼んでも変えられない制限で、ソフト制限はサポートに頼めば引き上げてもらえるかもしれない制限っす」

美咲は熱心にメモを取り始めた。「具体的にどんな制限があるんですか?」

ハード制限について

田中はホワイトボードに書き始めた。「まずハード制限、つまり絶対に変えられない制限としては…」

  • コンテナーグループあたりのコンテナー数:60個まで
  • コンテナーグループあたりのボリューム数:20個まで
  • IPあたりのポート数:5つまで
  • 実行中のコンテナーインスタンスのログサイズ:4MB
  • 停止したインスタンスのログサイズ:16KBまたは1,000行

「えっ、60個も入れられるんですか?そんなに必要なケースってあるんですか?」美咲が驚いた様子で尋ねた。

「実際にそこまで使うことは少ないっすね。普通は数個のコンテナーで構成することが多いっす。でも、マイクロサービスアーキテクチャだと、たくさんの小さなサービスを連携させることがあるんすよ」

その時、会議室のドアが開き、隼人が入ってきた。

「美咲さん、ACI制限について調べているのか。重要なトピックだな」

ソフト制限について

隼人もホワイトボードの前に立ち、続けた。「ソフト制限、つまりサポートに依頼すれば引き上げ可能な制限もいくつかある。主なものはこうだ」

  • 1リージョン、1サブスクリプションあたりのStandard SKUコンテナーグループ:100
  • 1リージョン、1サブスクリプションあたりのStandard SKUコア(CPU):100
  • 1時間あたりのコンテナーグループの作成件数:300
  • 5分間あたりのコンテナーグループの作成件数:100

「なるほど…」美咲は頷きながらメモを続けた。「でも、CPUとかメモリはどれくらい使えるんですか?」

コンテナータイプ別のリソース制限

「コンテナーのタイプごとに違うんだよ」隼人が答えた。「まず、標準的なLinuxコンテナーグループの場合」

「標準の場合、最大CPU:4コア、最大メモリ:16GB、ストレージは50GBっす」田中が補足した。

「Windowsコンテナーも同様で、最大CPU:4コア、最大メモリ:16GB、ただしストレージは20GBまでだ」隼人が追加。

美咲が不思議そうな顔をした。「Windowsはストレージが少ないんですね…」

「OSのサイズが関係してるんすよ。Windowsの方がイメージサイズが大きいから、使えるストレージが少なくなるんす」田中が説明した。

「他にもスポットコンテナーと機密コンテナーという種類もあるんだが、それらも同様のリソース制限がある」隼人が付け加えた。

リージョンとコンテナータイプによる可用性

「全部のリージョンで全部のコンテナータイプが使えるわけじゃないんですよね?」美咲が質問した。

「鋭いっすね!」田中が笑顔で答える。「スポットコンテナーは現時点では米国東部2、西ヨーロッパ、米国西部のリージョンでしか使えないっす」

隼人が補足する。「機密コンテナーも、利用可能なリージョンが限られている。インド中部、東アジア、米国東部など12のリージョンで使用可能だ」

「GPUを使ったコンテナーも提供されているが、これはプレビュー段階で、本番環境では推奨されていない。代わりにAKS(Azure Kubernetes Service)を使うべきだ」

美咲は少し困惑した表情で「AKSって…また新しい用語ですね」とつぶやいた。

「今日はACIの話だから、AKSについてはまた今度説明するっす!」田中が笑いながら言った。

デプロイ時の注意点

「ACIのリソース制限内に収まるようにコンテナーグループを設計しても、実際のデプロイでは失敗することがあるんだ」隼人が真剣な表情で説明した。

「えっ、どうしてですか?」美咲が驚いた様子で尋ねた。

「特定のリージョンでの負荷が高い場合に起こりうるっす。その場合は、リソースを少なめに設定したり、別のリージョンを試してみるといいっすよ」田中がアドバイスした。

「それと」隼人が続ける「特にGPUリソースは、仮想ネットワークのデプロイではサポートされていないし、Linuxコンテナーグループでしか使えない。そして完全サポートではなく、ベストエフォートベースのサポートしかないので注意が必要だ」

「使用量やクォータは、List Usage APIを使って確認できるから、大規模なデプロイの前に必ずチェックするといい」

【まとめ】Azure Container Instancesの制限ポイント

  • ACIには変更不可のハード制限と、サポートに依頼で引き上げ可能なソフト制限がある
  • コンテナーグループあたり最大60個のコンテナー、20個のボリューム、IPあたり5つのポート
  • 標準Linuxコンテナー:最大4CPU、16GBメモリ、50GBストレージ
  • 標準Windowsコンテナー:最大4CPU、16GBメモリ、20GBストレージ
  • スポットコンテナーや機密コンテナーは利用可能なリージョンが限定されている
  • GPUコンテナーはプレビュー段階で、本番環境ではAKSが推奨される
  • リージョンの負荷によってはデプロイが失敗することがあるため、リソース設定の調整や別リージョンの使用を検討する
  • クォータ引き上げが必要な場合は、Azureサポートに依頼する

「うーん、思ったより色々と制限があるんですね」美咲が感想を述べた。

「でも、これらの制限を理解しておけば、ACIを効果的に使うことができるんだ。小規模なアプリケーションや、短期間のワークロード実行には十分なリソースがある」隼人が励ましの言葉をかけた。

「そうっすね!大事なのは、自分のアプリケーションの要件を把握して、それに合った設計をすることっす。美咲さん、何か具体的なアプリケーションを考えてるんすか?」

「まだ具体的には決まってないんですが、この制限を念頭に置いて考えてみます!」美咲は笑顔で答えた。「ありがとうございます、田中さん、山田さん!」


参照

https://learn.microsoft.com/ja-jp/azure/container-instances/container-instances-resource-and-quota-limits