Amazon Web Services ブログ

AWS App Runner におけるコンテナイメージベースのデプロイ速度を改善しました

AWS App Runner は、インフラやコンテナの経験がなくても、コンテナ化された Web アプリや API をビルド、デプロイ、実行できるフルマネージドなコンテナアプリケーションサービスです。App Runner はインフラ構成の複雑さを抽象化します。実際、WixHubbleCox やその他多くの企業が、App Runner を利用することでサーバー管理にかける時間を減らし、イノベーションを加速することに集中しています。App Runner ではソースコードまたはコンテナイメージから直接、スケーラブルでセキュアなWeb アプリとしてデプロイできます。これらは高速でシンプルで、かつコスト効率の高い方法です。

本日(2023/12/07) 、App Runner のコンテナイメージベースのデプロイ速度の改善をリリースしました。 ベンチマークでは、コンテナイメージサイズに応じて、リリース前と比較してデプロイ時間が約 30 ~ 40% 短縮しました。

この機能強化により、コンテナイメージリポジトリからイメージをダウンロードできない場合の App Runner の動作も改善されます。 以前は、App Runner がイメージをダウンロードできない場合、ステータスを failed にする前に 10 分間リトライしていました。 App Runner は、コンテナイメージのダウンロードができない何らかの要因があった場合、デプロイのステータスを直ちに failed にするようになりました。

今回の機能改善は自動的に適用され、すべての App Runner ユーザーがメリットを得ることができます。既存の App Runner サービスを更新する必要はありません。

どれだけ速くなったのかを実際に計測

コンテナ化されたアプリケーションの場合、コンテナイメージの大きさは、デプロイ時間やアプリケーションの起動時間に影響します。 より小さなコンテナイメージを使うほど、アプリケーションの起動時間は短くなり、デプロイも速くなります。 これは、コンテナイメージのダウンロードが、アプリケーションのデプロイに最も時間のかかるタスクの 1 つであるためです。

App Runner の今回の機能改善の効果を、コンテナイメージの大きさごとに計測することを目指しました。 デプロイ時間の改善を測るために、hello-app-runner コンテナイメージを利用しました。 hello-app-runner コンテナイメージは 261 MB です。 次に、50 MB のファイルを大量に生成することで、イメージの大きさを人為的に大きくしました。1 GB、2 GB、および 3 GB の 3 つのイメージを用意しました。

必要な大きさのコンテナイメージを用意したら、それらを使用して App Runner サービスを作成し、サービスのステータスが Healthy になるまでにかかる時間を機能改善の前後で比較しました。 各イメージを 10 回デプロイし、平均値を測定して外れ値を除外しました。 下の表は、デプロイ時間の改善を示しています。

下のグラフは、サービスのステータスが Healthy になるまでの時間を秒単位で示しています。

コンテナイメージの大きさが 1 GB 未満の場合、デプロイ時間は約 2 分短縮しています。 大きなイメージの場合、5 分近くの短縮しています。

すでに利用可能です

今回の機能改善は、App Runner を利用可能なすべての AWS リージョンで適用されています。デプロイプロセスが 1 分短くなると、アプリケーション開発やリリースサイクルに大きな影響をもたらすでしょう。App Runner を使うことでみなさまが、みなさまのお客様により迅速にアプリケーションを届けられることを願っています。

このリリースは、ユーザーのみなさまが 大規模な Web アプリや API を、より手軽に実行できるようにするための継続的な取り組みの一環です。 App Runner の最近の機能強化については、リリースノートをご覧ください。

AWS App Runner における今後の機能開発の詳細については、App Runner roadmap on GitHub をご覧ください。 また、AWS re:Post for AWS App Runner でフィードバックや質問もお待ちしています。

翻訳はソリューションアーキテクトの濵が担当しました。原文はこちらです。