Spring BootのコンテナアプリをAmazon Elastic Container Serviceで動かす

はじめに

先日まではApp Runner上でコンテナアプリを動かすことをしていました。今日からは、Amazon Elastic Container Serviceを使ってX-Rayなどを試してみようかと思います。

まずはSpring Bootで作ったコンテナアプリをAmazon Elastic Container Serviceで動かすことをやってみます。

参考資料

Amazon Elastic Container Serviceを使うのは久しぶりだったので、何かよい題材はないか探してみます。「AWS Hands-on for Beginners シリーズ一覧」にAmazon Elastic Container Serviceのハンズオンがあったのでそれに目を通します。

pages.awscloud.com

このハンズオンではApache HTTPdを使ったコンテナアプリを動かしています。

Spring Bootアプリをコンテナ化する

まずはSpring Bootアプリをコンテナ化します。コンテナ化する方法は色々とあります。詳細は以下を参照してください。

spring.io

今回は、私が慣れているという理由でJibを使います。

github.com

コンテナ化については、上記のリンク先を参照してください。アプリは8080ポートで動きます。このポート番号が後々重要です。

Amazon Elastic Container Serviceの設定

Amazon Elastic Container Serviceの設定は上記ハンズオンをもとに実施します。コンソール画面が少々違いますが、2024年2月時点で実施しても十分通じる内容でした。

ハンズオンとの1番の違いはタスク定義です。Spring Bootで作ったコンテナアプリは8080ポートで動くので、「ポートマッピング」の「コンテナポート」に8080を設定することが注意点です。

これさえ間違わなければ、あとはハンズオン通りに進めていけばSpring Bootで作ったコンテナアプリは動きました。

考察

久しぶりにAmazon Elastic Container Serviceを触ることになり若干不安を感じましたが、AWSのハンズオン資料が充実していたのでかなり参考になりました。

aws.amazon.com

一方で、あくまでスムーズに行くように作られたハンズオンですので、いくつか説明が省略されているところやデフォルト値でうまく行くように設定されているところがあります。このため、ちょっと応用しようとするとつまづくところがあるのは注意点です。今回で言えばポートマッピングの部分でした。

これでSpring Bootで作ったコンテナアプリをAmazon Elastic Container Service上で動かすことができましたので、次からはX-Rayなどを組み込んでいきます。