Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
App Runner 実践
Search
a2-ito
October 19, 2023
0
490
App Runner 実践
a2-ito
October 19, 2023
Tweet
Share
More Decks by a2-ito
See All by a2-ito
ECSにおけるBGデプロイの実現
a2ito
0
64
Organizations と Identity Center を Terraform で管理しよう
a2ito
0
84
Bigtable
a2ito
0
72
Chord
a2ito
0
56
Chubby
a2ito
0
71
Dynamo
a2ito
0
74
Megastore
a2ito
0
62
Monarch
a2ito
0
74
Numbers everyone should know
a2ito
0
75
Featured
See All Featured
Speed Design
sergeychernyshev
31
1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Embracing the Ebb and Flow
colly
86
4.7k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Faster Mobile Websites
deanohume
307
31k
Being A Developer After 40
akosma
90
590k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Transcript
App Runner 実践 JAWS-UG SRE支部 #7 @a2-ito
Profile • Akihiko Ito • Cloud Architect/SRE • dotD •
Twitter: @piyohiko110 • Github: @a2-ito
App Runner • コンテナorコードをデプロイする • チューニング要素 ◦ CPU ◦ RAM
◦ 同時接続数 ◦ 最大・最小サイズ • エンドポイント ◦ パブリックエンドポイント ◦ プライベートエンドポイント • VPCコネクタによるVPC内リソースへのアクセス
App Runner実践 1. IaC との組み合わせ 2. CloudFront との組み合わせ 3. コンテナ起動時のトラブル
1. IaC との組み合わせ • App Runner のデプロイをどこまで IaC コード化するか? ◦
アプリとインフラのライフサイクルをきれいにしたい
1. IaC との組み合わせ • App Runner のデプロイをどこまで IaC コード化するか? ◦
アプリとインフラのライフサイクルをきれいにしたい ①AWSリソースをデ プロイ ②ECRにpush
1. IaC との組み合わせ • 依存関係があるため、2ステップでは構築完了できない ◦ ECR がないとコンテナイメージが push できない
◦ ECR にコンテナイメージがないと App Runner をデプロイできない ◦ App Runner リソースがないと Route53 の エイリアス が作れない 依存 依存 依存
1. IaC との組み合わせ • App Runner の作成をアプリのライフサイクルに寄せるのは茨の道 ◦ ECR と
Aurora まで Terraform で作成 ◦ 残りをアプリ側で、、、 Github Actions で全部設 定するのつらい これはインフラやろ
2. CloudFront との組み合わせ • フロントエンドと一緒に CloudFront にぶら下げたい
2. CloudFront との組み合わせ • App Runner のデフォルトドメイン問題 ◦ パブリックエンドポイントモードの場合、外部からアクセスできるドメインが作成される ◦
この経路はアクセスさせたくない
2. CloudFront との組み合わせ • App Runner のデフォルトドメイン問題 a. CloudFront でカスタムヘッダを持たせて、そのリクエストだけを許可する
b. WAFのIP制限でも実装は可能(アプリをどうしてもいじりたくない場合)
2. CloudFront との組み合わせ • CloudFront のリクエストサイズ問題 ◦ 大きいサイズのリクエストは CloudFront の上限に引っかかる可能性がある
◦ App Runner のデフォルトドメインを使うか、 Lambda などにオフロードする
3. コンテナ起動時のトラブル • 現状(2023.10時点)の App Runner の仕様 ◦ 起動に失敗すると自動でロールバックされる ◦
ロールバックしても起動できない場合、停止状態になる ◦ 停止中は設定変更ができない ▪ イメージソースも修正できない
3. コンテナ起動時のトラブル • 構築直後初回起動でNW接続ができないケースがあった ◦ 起動時にDBコネクションを貼りに行くもの、起動が早いものは特に要注意 ◦ 永遠に起動できないことも DB接続がこける アプリ起動がこける
停止状態になると設定変 更できない
3. コンテナ起動時のトラブル • ワークアラウンド ◦ Exponential Backoff ◦ 外部接続なしモード