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 Night 202305
Search
Kazuki Maeda
May 17, 2023
Technology
2
580
App Runner Night 202305
Kazuki Maeda
May 17, 2023
Tweet
Share
More Decks by Kazuki Maeda
See All by Kazuki Maeda
生成AIを用いた 新しい学びの体験を 提供するまでの道のり
kzkmaeda
0
27
生成AIによって変わる世界 -可能性とリスクについて考える-
kzkmaeda
2
120
新しいことを組織ではじめる、そしてつづける
kzkmaeda
5
800
20240824_JAWS_PANKRATION_2024
kzkmaeda
0
54
20240416_devopsdaystokyo
kzkmaeda
1
390
20240321_生成AI時代のDevOps
kzkmaeda
2
1k
20240222_LangChain_ver0.1.0_LCEL
kzkmaeda
4
370
20240201_クラウド利用料を 半額にするために取り組んだ10+のコト
kzkmaeda
4
7.2k
20231027_Bedrock勉強会
kzkmaeda
3
1.3k
Other Decks in Technology
See All in Technology
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
110
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
180
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
530
AWS re:Invent 2024 ふりかえり
kongmingstrap
0
130
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
podman_update_2024-12
orimanabu
1
270
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
230
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A better future with KSS
kneath
238
17k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Site-Speed That Sticks
csswizardry
2
190
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
BBQ
matthewcrist
85
9.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
A designer walks into a library…
pauljervisheath
204
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Transcript
Docker Image 既にあるから デプロイしたら動くんでしょ? 2023/5/17 App Runner Night @kzk_maeda
Kazuki Maeda @kzk_maeda SRE @atama plus AWS Community Builders AWS
Startup Community Core Member 7+ years of experience of AWS Like: Lambda / Step Functions / Glue / MWAA / Athena 最近はLlamaIndexとmomentoを触ってる 自己紹介
AppRunnerとの出会い
None
AppRunner App Runnerとの出会い
App Runner 始めました • PaaSで運用していたサブシステムをAWSに移行することに(先月) ◦ Docker deployを用いていた • 既存のContainer
Imageが活用できることに加え、Outbound IP固定化などのいく つかの要件があり、App Runnerが満たしていそうだったので利用開始
Docker Image 既にあるから デプロイしたら動くんでしょ?
甘い
初回構築 IaC CI/CD
初回構築 IaC CI/CD 二度と触れない文鎮Service 予測できないLog Group 諦めた自動デプロイ
ちゃんと作る
初回構築 IaC CI/CD それぞれでの注意点を紹介します
初回構築 IaC CI/CD 二度と触れない文鎮Service 予測できないLog Group 諦めた自動デプロイ
二度と触れない文鎮Service • 初回のdeployでhealth checkに失敗すると、文鎮Serviceが完成! 初回構築 IaC CI/CD
【なぜ?】二度と触れない文鎮Service • App RunnerはB/Gデプロイが裏側で実行される • 一度でもhealthyになったServiceであれば、その後のデプロイで失敗しても 一つ前の状態に自動で戻してくれる • が、初回デプロイだと戻し先がなくて困っちゃったのカナ 初回構築
IaC CI/CD https://docs.aws.amazon.com/apprunner/latest/dg/architecture.html
【どうする?】二度と触れない文鎮Service • 無理です、作り直しましょう 初回構築 IaC CI/CD
初回構築 IaC CI/CD 二度と触れない文鎮Service 予測できないLog Group 諦めた自動デプロイ
予測できないLog Group • App Runnerはデプロイすると自動でLog Groupを作成してくれる • が、作成されるLog Groupにservice-idが含まれていて事前予測不可 ◦
/aws/apprunner/service-name/service-id/service • そして保持期間が無制限 • そのためIaCで保持期間を設定したLog Groupが作成できない 初回構築 IaC CI/CD
【なぜ?】予測できないLog Group • 仕様です • コンソールからアプリケーションログ等を参照する機能が提供されており、 一意性担保のために service-id が必要になったんだと思われる 初回構築
IaC CI/CD https://docs.aws.amazon.com/ja_jp/apprunner/latest/dg/monitor-cwl.html
【どうする?】予測できないLog Group • (Terraformの場合) • App Runner Serviceに依存する形でLog Groupを定義 •
ログエントリが発生すると先に作成されるので、その場合は対象Resourceをimport して保持期間を修正 初回構築 IaC CI/CD
初回構築 IaC CI/CD 二度と触れない文鎮Service 予測できないLog Group 諦めた自動デプロイ
諦めた自動デプロイ • ECRにpushしたら自動でApp Runnerにデプロイ!べんりぃ! • ⇨ RepositoryとWorkloadを別のAWSアカウントにしていると 自動デプロイができない! 初回構築 IaC
CI/CD
【なぜ?】諦めた自動デプロイ • 仕様です • なんとなく、いろいろ難しそうだなというのはわかります • ECRのCross Account Replicationでもダメでした (pushが動いてるわけではなさそうなのでそれはそう)
初回構築 IaC CI/CD
【どうする?】諦めた自動デプロイ • ① 別のCI/CDサービスを使って頑張る ◦ これにより、デプロイプロセスの中で container targetのhealth checkを実行できる ◦
のでApp Runnerにデプロイする際に health checkで落ちてrollbackすることや文鎮になることを防 止できるので逆にアリかもしれない ◦ github actionsのサンプルはあるけど test phaseがない • ②ECRをApp Runnerと同じアカウントに構築する 初回構築 IaC CI/CD CircleCIの例
まとめ
色々あったけど、App Runnerの抽象レベルは好きなので これからもよろしくね!