Slide 1

Slide 1 text

Fargateを使った研修の話 2024年11月02日 Shigeki Shoji

Slide 2

Slide 2 text

庄司重樹 受賞歴 2024 Japan AWS All Certifications Engineers 2023 Japan AWS Top Engineers 資格 AWS認定インストラクター(AAI) AWS認定13冠 Certified ScrumMaster Professional Scrum Product Owner I Professional Scrum Master I Professional Scrum Developer I コミュニティ AWS Community Builders program、関ジャバ他 2

Slide 3

Slide 3 text

研修の概要 • Amazon Working Backwardsを使ってプロダクトの企画をたて、 サービスを構築するPBL型の研修 • Fargateを使うコンテナアプリケーションの開発を実践 3

Slide 4

Slide 4 text

GitHub ActionsでECRにpushする 4

Slide 5

Slide 5 text

ECRへのpushの流れ 5

Slide 6

Slide 6 text

ECRへのpushの流れ 6 docker/login-action でも大丈夫

Slide 7

Slide 7 text

マルチプラットフォームビルド • IntelとArm両方のイメージを作る時には、docker buildxコマン ドを使ってビルドする。この時にはAWS公式ドキュメントにあ る権限だけでは足らず追加が必要。 7 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:region:111122223333:repository/repository-name" }, { "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

Slide 8

Slide 8 text

追加後のポリシー 8 { "Version": "2012-10-17", "Statement": [ { "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", ], "Resource": "arn:aws:ecr:region:111122223333:repository/repository-name", "Effect": "Allow" }, { "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

Slide 9

Slide 9 text

Private SubnetでFargateタスク を実行する 9

Slide 10

Slide 10 text

必要なPrivate Link • 太字のインターフェースにはポート番号443へのインバウンド の許可も必要 10

Slide 11

Slide 11 text

まとめ • ECRにpushするGitHub Actionsではdocker/login-action • マルチプラットフォームビルドする時は追加のIAMポリシーが 必要 • Private SubnetでFargateする時は、Private Linkの設定に注意 11

Slide 12

Slide 12 text

12 ありがとうございました