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
510
App Runner 実践
a2-ito
October 19, 2023
Tweet
Share
More Decks by a2-ito
See All by a2-ito
ECSにおけるBGデプロイの実現
a2ito
0
80
Organizations と Identity Center を Terraform で管理しよう
a2ito
0
94
Bigtable
a2ito
0
73
Chord
a2ito
0
59
Chubby
a2ito
0
78
Dynamo
a2ito
0
85
Megastore
a2ito
0
71
Monarch
a2ito
0
85
Numbers everyone should know
a2ito
0
85
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.6k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Mobile First: as difficult as doing things right
swwweet
225
10k
Side Projects
sachag
455
43k
A better future with KSS
kneath
239
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How STYLIGHT went responsive
nonsquared
100
5.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
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 ◦ 外部接続なしモード