スポンサーリンク

Amazon ECS デプロイ(CD/CI)

SpringBootをAWS ECSで動かす-最適化編-

投稿日:

概要

ECSでコンテナを起動するときのポイントの1つが、コンテナ起動時間です。
SpringBootをどのように配置するのが、SpringBoot-ECSにおけるベストプラクティスになるのでしょうか?

その答えは、Spring Boot アプリケーションを AWS Fargate に最適化するで考察されています。
結論は、Spring Native (GraalVM AoT コンパイル) 、Distroless ベースイメージ、X86_64 で動作させることです。

Spring Native (GraalVM AoT コンパイル)とは?

Spring Nativeとは、コンテナ起動に適した実行可能jarを作成するSpring内のプロジェクトのことです。

ここでは、Spring Nativeを使用して、コンテナを高速に起動できる軽量な実行可能jarを作成することを指しています。

Spring Nativeの「Native」は「ネイティブイメージ」を指しており、「ネイティブイメージ」とは、SpringBootプロジェクトの実行可能jarのことです。

Distroless ベースイメージとは?

Distroless ベースイメージとは、Google社が提供するDebianベースのLinux OSのイメージです。
パッケージマネージャーやshellすら含まれていないので、軽量であり、
コンテナ起動時間を最小化することができます。
また、cdすら含まれておらず、セキュアなイメージとされています。

具体的には、次の形式で使用します。

FROM gcr.io/distroless/static-debian11

ここまでの結論として、
・Spring Native (GraalVM AoT コンパイル)によって作成されたSpringBootアプリケーションの実行可能jarを使用してコンテナイメージを作成する。
・そのコンテナイメージをDistroless ベースイメージを使用したLinux OSで起動する。
ということです。

ただし、それほど起動時間や処理数にシビアでないアプリケーションにとっては、この内容は過剰かもしれません。

ハンズオン

ゴール

このハンズオンでは次のインフラを構築します。

https://aws.amazon.com/jp/blogs/news/optimize-your-spring-boot-application-for-aws-fargate/

その上でブラウザからアクセスして、次の画面が出ればゴールです。

Step1 

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-Amazon ECS, デプロイ(CD/CI)

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.