0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DockerでSpring Bootをコンテナ化しaws ECR・ECSを利用しデプロイ part 2

0
Posted at

目次

  1. AWS ECRにプッシュ
    • DockerイメージをAWSのコンテナレジストリにアップ。
  2. AWS ECS + Fargateにデプロイ
    • クラウド上でコンテナを起動。
  3. クラウド上でのアクセス
    • apiを確認
      この記事はDockerでSpring Bootをコンテナ化しaws ECR・ECSを利用しデプロイ part 1の続きになっております。もしよろしければpart1も見ていただけると幸いです。
      https://qiita.com/jugon_p_p/items/2233da5d31ffa6e50688
⚠️ 警告: ここに注意してください!
本環境を実行すると、ECSの利用料金が発生する可能性があります。
費用の発生を避けたい方は、十分ご注意ください。

AWS ECRにプッシュ

DockerイメージのAWSのコンテナレジストリにアップロードする手順

ECRとは?

  • Amazon Elastic Container Registry (ECR) は、Dockerイメージを安全に保管し管理できるAWSのサービス。
  • AWSの他サービス(例: ECS)と連携しやすい。

手順

  1. ECRリポジトリ作成
    • AWSマネジメントコンソールのECRサービスから、リポジトリを作成。
  2. AWS CLIでECRにログイン各PCにAWS CLIをインストールする必要有
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 522585361401.dkr.ecr.ap-northeast-1.amazonaws.com
  • 522585361401.dkr.ecr.ap-northeast-1.amazonaws.com はアカウントID + リージョンを含むECRリポジトリのURL
  1. Dockerイメージにタグ付け
    • ローカルのイメージにECRリポジトリのURLをタグとしてつける
docker tag springboot-demo:latest 522585361401.dkr.ecr.ap-northeast-1.amazonaws.com/springboot-demo:latest
  1. イメージをプッシュ
docker push 522585361401.dkr.ecr.ap-northeast-1.amazonaws.com/springboot-demo:latest
  • これでイメージがECRにアップロードされ、クラウドで使える状態に。

AWS ECS + Fargateにデプロイ

ECRにあるDockerイメージを使ってコンテナを起動する設定をAWS ECSで行う

ECSとは?

  • Elastic Container Serviceの略で、コンテナの管理とオーケストレーションを担うサービス。
  • Fargateはサーバーレスでコンテナ実行できる起動タイプ。EC2管理が不要。

手順

  1. クラスターを作成
    • ECSの画面からクラスターを作成。
    • クラスタータイプは「Networking only (Fargate)」を選択。
  2. タスク定義を作成
    • コンテナの設定を登録するためのテンプレート。
    • コンテナ名、イメージURL(ECRのURI)、CPU・メモリ、ポートマッピング(例: コンテナポート8080)を指定。
    • ネットワークモードは awsvpc(Fargateの場合必須)。
  3. サービス作成
    • タスク定義を使ってサービスを作成
    • サービスはクラスター内でタスクを複数起動・管理。
    • 起動タイプは「Fargate」、タスク数を指定(例: 1)。
  4. ネットワーク設定
    • VPCのサブネットを選択(パブリック or プライベート)。
    • セキュリティグループでコンテナに割り当てる通信ルールを設定(例: ポート8080を0.0.0.0/0に開放)。
    • 本番環境ではこのポート許容先を指定する必要有
  5. 起動
    • サービスを作成すると、Fargateが自動でコンテナを起動。
    • ECSのタスクが「RUNNING」状態になれば稼働中。

クラウド上でのアクセス

起動したコンテナに外部からアクセスするためのポイント

  1. 公開IPの確認
    • FargateタスクにパブリックIPを割り当てている場合、タスク詳細画面で「パブリックIP」を確認。
    • 例: 54.92.52.223
  2. セキュリティグループの設定確認
    • ポート8080(コンテナで使っているポート)が、0.0.0.0/0に開放されていることを必ず確認。
  3. URLにアクセス
    • ブラウザやcurlで http://<パブリックIP>:8080/ にアクセス。
    • Spring Bootアプリが起動していればAPIや画面が見れる。

AWSにデプロイするためのまとめ

ステップ 詳細
ECRリポジトリ作成 Dockerイメージ保存用リポジトリをAWSで作成
ECRログイン aws ecr get-login-password でDockerをECRにログイン
Dockerイメージタグ付け ローカルイメージにECRリポジトリURIのタグをつける
ECRへプッシュ docker push コマンドでイメージをアップロード
ECSクラスター作成 Fargate用のクラスターを作成
タスク定義作成 コンテナの設定(イメージ、リソース、ポートなど)を登録
サービス作成 & 起動 タスクをFargateで実行するサービスを作成して起動
アクセス パブリックIPとセキュリティグループの設定を確認し、APIにアクセス
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?