BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AWS FargateがWindowsコンテナの起動時間を大幅に改善

AWS FargateがWindowsコンテナの起動時間を大幅に改善

原文リンク(2024-06-02)

AWSは、AWS Fargate上で動作するWindowsコンテナの起動時間の改善を発表した。AMIのプリベーク、EC2の高速起動の活用、ネットワークプロキシの廃止によって起動時間が改善された。チームはまた、コンテナの起動時間をさらに向上させるための推奨事項も提供している。

AWSは、「Windows Server 2022 Coreのインフラ準備時間を最大42%短縮した」と述べている。FargateのWindows起動時間は、インフラ準備時間、コンテナイメージのプル時間、タスク起動時間という3つのハイレベルなバケットに分けられるという。

インフラストラクチャの準備時間には、基礎となるコンピューティングのプロビジョニングに必要な時間と、コンテナイメージのプルに必要な時間が含まれる。コンテナイメージのプル時間には、containerdがコンテナイメージをプルし、抽出する時間が含まれる。最後に、タスク起動時間は、Fargateエージェントがcontainerdと連携して、適切な構成でタスクコンテナを起動する時間だ。

AWSチームは、Fargate用に最適化された、より効率的なWindows Server AMIを事前にベイクした。これにより、個々のコンテナに必要なセットアップが削減され、デプロイプロセスにおける潜在的なレイテンシーやエラーが減少する。Contino社のシニア・コンサルタントであるMark Nash氏は、イメージ・ベイカリーを次のように説明している。

VM、コンテナ、ディスクの作成に使用するカスタムイメージを作成する、体系化された自動化された反復可能なプロセスです。インスタンスの構築後にシステムの設定を行うのではなく、VMイメージに必要な設定をベイクすることで、VMのプロビジョニング時間を短縮できます。

チームはまた、FargateのWindowsタスク起動用にEC2の高速起動を有効にした。EC2の高速起動では、事前にプロビジョニングされたスナップショットを活用することで、Windows OSの起動プロセスにおける再起動や複雑な初期化ステップの必要性を最小限に抑えている。

その裏側では、EC2 fast launchは提供された設定に基づいて一時的なt3インスタンスのセットを作成する。これらのインスタンスが標準的な起動ステップを完了すると、インスタンスのスナップショットが取得される。元のインスタンスは終了し、スナップショットは要求されたインスタンスを生成するために必要に応じて使用される。AWSは、「需要に応えるために、十分なFast Launchスナップショットを常時利用できる」ことを確約している。

チームは、サイドカーベースのネットワークプロキシを、タスクネットワークネームスペース内からFargateワーカープロセスを実行する改良されたプロセスに置き換えた。これにより、ネットワークプロキシの必要性が完全になくなった。最後に、Fargateは、EC2 Launch Agentがプロセスを開始するのを待つのではなく、Windows Server OSのブートプロセスが完了した直後にインスタンスのブートストラップを開始するようになった。

さらに、Fargate上で実行されるWindows Serverタスクの起動パフォーマンスをさらに改善するための推奨事項をいくつか挙げている。FargateのWindowsキャッシュをフル活用するには、コンテナを最新のWindows Serverベースイメージでビルドする必要がある。新しいベースコンテナイメージは、Microsoftによって毎月第2火曜日にリリースされる。Fargate Windowsキャッシュは、最新と前月のWindows Serverコアベースイメージのみを保存している。

また、Windows Server 2022 Coreイメージはフットプリントが小さいため、起動時間が速くなることから、チームはWindows Server 2022 Coreイメージの使用を推奨している。フットプリントの削減の一部は、GUIやWindowsデスクトップ機能を提供しないことで達成されている。

AWS Fargateにもっとも近いGoogle CloudのサービスはCloud Runだ。しかし、本稿執筆時点では、Cloud Runはコンテナ用のWindowsオペレーティングシステムをサポートしていない。Azureの同等サービスはAzure Container Intancesで、LinuxとWindowsコンテナの両方をサポートしている。

Windowsは、Amazon ECS上で実行されるAWS Fargateでのみ利用できる。Amazone EKS上でFargateを実行する場合、Windowsのサポートはない。改善された起動時間は、AWS Fargateが利用できるすべてのリージョンで適用可能だ。

作者について

この記事に星をつける

おすすめ度
スタイル

BT