Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
App Runner 実践 JAWS-UG SRE支部 #7 @a2-ito
Slide 2
Slide 2 text
Profile ● Akihiko Ito ● Cloud Architect/SRE ● dotD ● Twitter: @piyohiko110 ● Github: @a2-ito
Slide 3
Slide 3 text
App Runner ● コンテナorコードをデプロイする ● チューニング要素 ○ CPU ○ RAM ○ 同時接続数 ○ 最大・最小サイズ ● エンドポイント ○ パブリックエンドポイント ○ プライベートエンドポイント ● VPCコネクタによるVPC内リソースへのアクセス
Slide 4
Slide 4 text
App Runner実践 1. IaC との組み合わせ 2. CloudFront との組み合わせ 3. コンテナ起動時のトラブル
Slide 5
Slide 5 text
1. IaC との組み合わせ ● App Runner のデプロイをどこまで IaC コード化するか? ○ アプリとインフラのライフサイクルをきれいにしたい
Slide 6
Slide 6 text
1. IaC との組み合わせ ● App Runner のデプロイをどこまで IaC コード化するか? ○ アプリとインフラのライフサイクルをきれいにしたい ①AWSリソースをデ プロイ ②ECRにpush
Slide 7
Slide 7 text
1. IaC との組み合わせ ● 依存関係があるため、2ステップでは構築完了できない ○ ECR がないとコンテナイメージが push できない ○ ECR にコンテナイメージがないと App Runner をデプロイできない ○ App Runner リソースがないと Route53 の エイリアス が作れない 依存 依存 依存
Slide 8
Slide 8 text
1. IaC との組み合わせ ● App Runner の作成をアプリのライフサイクルに寄せるのは茨の道 ○ ECR と Aurora まで Terraform で作成 ○ 残りをアプリ側で、、、 Github Actions で全部設 定するのつらい これはインフラやろ
Slide 9
Slide 9 text
2. CloudFront との組み合わせ ● フロントエンドと一緒に CloudFront にぶら下げたい
Slide 10
Slide 10 text
2. CloudFront との組み合わせ ● App Runner のデフォルトドメイン問題 ○ パブリックエンドポイントモードの場合、外部からアクセスできるドメインが作成される ○ この経路はアクセスさせたくない
Slide 11
Slide 11 text
2. CloudFront との組み合わせ ● App Runner のデフォルトドメイン問題 a. CloudFront でカスタムヘッダを持たせて、そのリクエストだけを許可する b. WAFのIP制限でも実装は可能(アプリをどうしてもいじりたくない場合)
Slide 12
Slide 12 text
2. CloudFront との組み合わせ ● CloudFront のリクエストサイズ問題 ○ 大きいサイズのリクエストは CloudFront の上限に引っかかる可能性がある ○ App Runner のデフォルトドメインを使うか、 Lambda などにオフロードする
Slide 13
Slide 13 text
3. コンテナ起動時のトラブル ● 現状(2023.10時点)の App Runner の仕様 ○ 起動に失敗すると自動でロールバックされる ○ ロールバックしても起動できない場合、停止状態になる ○ 停止中は設定変更ができない ■ イメージソースも修正できない
Slide 14
Slide 14 text
3. コンテナ起動時のトラブル ● 構築直後初回起動でNW接続ができないケースがあった ○ 起動時にDBコネクションを貼りに行くもの、起動が早いものは特に要注意 ○ 永遠に起動できないことも DB接続がこける アプリ起動がこける 停止状態になると設定変 更できない
Slide 15
Slide 15 text
3. コンテナ起動時のトラブル ● ワークアラウンド ○ Exponential Backoff ○ 外部接続なしモード