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
20241004_jpk2024_retrospective
Search
Takuya Yonezawa
October 04, 2024
Technology
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20241004_jpk2024_retrospective
Takuya Yonezawa
October 04, 2024
More Decks by Takuya Yonezawa
See All by Takuya Yonezawa
20260516_SecJAWS_Days
takuyay0ne
5
910
20260422_Midosuji_Tech
takuyay0ne
2
96
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
620
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
750
20260204_Midosuji_Tech
takuyay0ne
1
260
20260129_CB_Kansai
takuyay0ne
1
390
20260126_JAWS_Osaka
takuyay0ne
1
71
こんな時代だからこそ! 想定しておきたいアクセスキー漏洩後のムーブ
takuyay0ne
4
830
セキュリティは全員参加!_JAWSのイベントサイトで脅威モデリングを学んでみよう!
takuyay0ne
0
230
Other Decks in Technology
See All in Technology
[RSJ26] Hierarchy-Aware Multimodal Retrieval-Augmented Generation for Embodied Question Answering
keio_smilab
PRO
1
150
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
1
1.4k
KAEN Company Deck
kaen
PRO
0
250
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
Digitization部 紹介資料
sansan33
PRO
2
7.8k
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
190
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
130
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
1
1.7k
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
150
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
130
Genie Code ワークショップ 応用編 / Genie-Code-Workshop-advanced
databricksjapan
PRO
0
260
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
From π to Pie charts
rasagy
0
350
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
Code Review Best Practice
trishagee
74
20k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
230
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Why Our Code Smells
bkeepers
PRO
340
58k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
480
Transcript
1 © 2024 Japan Digital Design, Inc. Takuya Yonezawa 2024.10.04
JAWS PANKRATION 2024 WEB - re:Trospective -
2 © 2024 Japan Digital Design, Inc. 米澤 拓也 Software
Engineer Technology & Development Div. 前職ではCCoE、現職ではSoftware Engineer フロント/バックエンドの実装からインフラ構築など何でもやってます JAWS DAYS2024 / PANKRATION2024 の運営(WEB担当) Fin-JAWSの運営もやってます 最近はJAWSイベントのWEBサイト構築屋(Next is …) 好きなAWSサービスは CloudFront、Lambda プロフィール @CDK Conference 2024
3 © 2024 Japan Digital Design, Inc. はじめに これまでのウェブサイト
4 © 2024 Japan Digital Design, Inc. JAWS DAYS 2024
• 5年ぶりのオフライン開催@池袋 • スポンサー募集瞬殺劇など、 様々なドラマが繰り広げられた • 従来無かったレスポンシブ対応や、 お気に入り機能などを新規追加 • \極力コストを抑えろ/ JAWS DAYS 2024 CloudFront API Gateway S3 DynamoDB Lambda CDK 主要な登場人物 画面イメージ 実データはDynamoDB(News用/FollowUp用)に格納 実データはDynamoDB(News用/FollowUp用)に格納 https://jawsdays2024.jaws-ug.jp/ https://jawsdays2024.jaws-ug.jp/
5 © 2024 Japan Digital Design, Inc. 基本に忠実なサーバレス構成 JAWS DAYS
2024 アーキ概略 AWS Cloud (Dev/Prod) CloudFront API Gateway S3 (WEB) Lambda (データ取得) CDK X-Ray DynamoDB (動的コンテンツ) その他 AWSリソース 超ざっくり図 GitHub Actions ① 静的コンテンツのデプロイ ② CloudFrontの キャッシュクリア • Next.jsでSSGした静的コンテンツを S3+CloudFront経由で配信 • 動的に出したいコンテンツは API-GW+Lambda+DynamoDBで API化して都度取得 (News/FollowUpなど) • リリース作業はすべて GitHubActionsで自動化
6 © 2024 Japan Digital Design, Inc. (2023/11 ~ 2024/03)
1113 commit コミット数 本番リリース回数 134 deploy (2023/11 ~ 2024/03) 月額トータルコスト 1.1 USD (2024/07,環境2面+もろもろ) JAWS DAYS 2024 〜数値的なお話〜 ※ 人件費はもちろん 0 USD
7 © 2024 Japan Digital Design, Inc. (2023/11 ~ 2024/03)
1113 commit コミット数 本番リリース回数 134 deploy (2023/11 ~ 2024/03) 月額トータルコスト 1.1 USD (2024/07,環境2面+もろもろ) JAWS DAYS 2024 〜数値的なお話〜 ※ 人件費はもちろん 0 USD 今の状態を少しご紹介
8 © 2024 Japan Digital Design, Inc. JAWS DAYS 2024
〜あのWEBサイトは今〜 CloudFrontへのリクエスト数 CloudFrontへの Upload/Download(MB) 平均 6000 requests/day 平均 200MB download/day 平均 0MB upload/day
9 © 2024 Japan Digital Design, Inc. JAWS DAYS 2024
〜数値的なお話〜 もうWEBサイトの更新予定が一切ないため、 キャッシュポリシーで TTL : 3153600000秒 = 100年 を設定して文鎮化 ※ 本当にキャッシュが100年保持されるかは寿命の関係上検証できないので分かりません← CloudFrontのキャッシュポリシー
10 © 2024 Japan Digital Design, Inc. JAWS DAYS 2024
〜まとめ〜 良かった点 イマイチだった点 超激安運用:CloudFrontの無料枠でWEBホスティングが完結 スケーリングがほぼ考慮不要:CloudFront、S3、API-GW、Lambda 強し 文鎮化が楽:CloudFrontのキャッシュいじるだけ アプリケーション以外の作り物が多い: インフラのCDKコード、GitHub Actionsのワークフロー etc... 構成AWS要素が多い:Building Block的ではあるかも知れないが。。。 【CloudFrontコストの参考記事】Amazon CloudFrontの利用料が急増した場合のチェックポイント
11 © 2024 Japan Digital Design, Inc. はじめに ジョーズ・パンクラチオン
12 © 2024 Japan Digital Design, Inc. JAWS PANKRATION 2024
• 24時間ぶっ続けオンライン。 あの狂気のイベントが帰ってきた! • 登壇者/参加者は全世界 • DAYS2024のサイトをベースに、 下記の追加機能を実装 - 国際化対応 (日本語/英語) - microCMSを用いた記事投稿機能 - NEWSのSNSシェア機能 - Bedrockによるセッションサマリ JAWS PANKRATION 2024 主要な登場人物 画面イメージ https://jawspankration2024.jaws-ug.jp/en/ https://jawspankration2024.jaws-ug.jp/en/ https://jawspankration2024.jaws-ug.jp/jp/ https://jawspankration2024.jaws-ug.jp/jp/ App Runner ECR CDK 言語切り替えボタン AWS WAF
13 © 2024 Japan Digital Design, Inc. App Runnerはサーバレスです! JAWS
PANKRATION 2024 アーキ概略 ホントにこれだけ • i18n/microCMS対応のために AWS App Runnerを採用 → 常時稼働のコンピュートリソースで WEBホスティングが必要になったという背景 • standaloneモードでビルドした SSR方式のNext.jsを利用 • GitHub Actionsではコンテナイメー ジをビルドしてECRにPush • お気持ち程度のCDK AWS Cloud (Prod) CDK App Runner ECR Secrets Manager 自動デプロイ GitHub Actions ビルドした コンテナイメージをPush AWS WAF DoS/EDoS対策の ために設置 コスト削減のために ライフサイクルポリシーも適用
14 © 2024 Japan Digital Design, Inc. WEBサイト上の表示 microCMS上の元ネタ microCMSを使ったNEWS機能
ここのHTMLパーサーを作るのが とっっても辛かったです いい感じの 変換処理
15 © 2024 Japan Digital Design, Inc. (2024/05 ~ 2024/08)
246 commit コミット数 本番リリース回数 約80 deploy (2024/05 ~ 2024/08) 月額トータルコスト 14 USD (2024/08,環境1面+もろもろ) JAWS PANKRATION 2024 〜数値的なお話〜 たぶん
16 © 2024 Japan Digital Design, Inc. JAWS PANKRATION 2024
〜データで振り返る〜 App Runnerへのリクエスト数 App Runnerコンテナインスタンス数(min:1, max:25) イベント当日(8/23~24)に急増
17 © 2024 Japan Digital Design, Inc. JAWS PANKRATION 2024
〜データで振り返る〜 WAFでブロックされていたリクエストの内訳 下記の2ルールでの運用結果 ① AWSManagedRulesAmazonIpReputationList ② AWSManagedRulesCommonRuleSet
18 © 2024 Japan Digital Design, Inc. JAWS PANKRATION 2024
〜データで振り返る 〜 \ 結局ほぼAttackは来なかった / (..と 同時に治安の良さに感動しました)
19 © 2024 Japan Digital Design, Inc. JAWS PANKRATION 2024
〜まとめ〜 良かった点 イマイチだった点 AWS環境のスリム化:LambdaやAPI-GW、DynamoDBが不要に CI/CDのスリム化:App Runnerの自動デプロイ機能に乗っかることで、 GitHub ActionsではコンテナイメージのBuild・Pushだけに DAYSと比べて高額: DoS対策の為にWAFも導入するとまあまあ高額 (そもそもApp Runner自体も良いお値段。。) microCMSの採用:News投稿/編集はすべてMicroCMS操作で完結するため、 データインサート作業やビルド作業が不要に(SPOF解消) 文鎮化対応が面倒:近日苦労し始める予定(App Runner剥がし)
20 © 2024 Japan Digital Design, Inc. はじめに ここまではJAWS山梨の内容
21 © 2024 Japan Digital Design, Inc. JAWS PANKRATION 2024
〜まとめ〜 良かった点 イマイチだった点 AWS環境のスリム化:LambdaやAPI-GW、DynamoDBが不要に CI/CDのスリム化:App Runnerの自動デプロイ機能に乗っかることで、 GitHub ActionsではコンテナイメージのBuild・Pushだけに DAYSと比べて高額: DoS対策の為にWAFも導入するとまあまあ高額 (そもそもApp Runner自体も良いお値段。。) microCMSの採用:News投稿/編集はすべてMicroCMS操作で完結するため、 データインサート作業やビルド作業が不要に(SPOF解消) 文鎮化対応が面倒:近日苦労し始める予定(App Runner剥がし)
22 © 2024 Japan Digital Design, Inc. Serverless Days Tokyo
2024にて https://speakerdeck.com/tmokmss/aws-lambda-web-adapterwohuo-yong-suruxin-siisabaresunoshi-zhuang-patan https://speakerdeck.com/tmokmss/aws-lambda-web-adapterwohuo-yong-suruxin-siisabaresunoshi-zhuang-patan LambdaでWEBフレームワークを動かすためのOSS(略称:LWA)
23 © 2024 Japan Digital Design, Inc. LWA使ってみた Dockerfile に魔法のコマンドを1行追加
24 © 2024 Japan Digital Design, Inc. 1時間程度でLambda移行完了 文鎮化バージョン •
CloudFrontの新規作成 • CloudFront⇔Lambda URL間はOAC認 証でガード (関数URL直叩きアクセス対策) • App RunnerにアタッチしていたWAF はCloudFrontに付け替え • 今回はGET系のみなので、 L@Eによる署名処理は不要 [1] AWS Cloud (Prod) ECR Secrets Manager GitHub Actions AWS WAF Lambda CloudFront GET OAC [1] https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-lambda.html [1] https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-lambda.html
25 © 2024 Japan Digital Design, Inc. はじめに アプリケーションエラー発生
26 © 2024 Japan Digital Design, Inc. LWAでハマったポイント \ CloudFront⇔Lambdaにした途端429エラーが連発
/ [429] Too Many Requests
27 © 2024 Japan Digital Design, Inc. 原因はLambdaの同時実行数 LWAでハマったポイント LambdaのService
Quota • 同時実行数の上限が Service Quota上で10になっていた (前まで1000だった気が。。) • 画面レンダリングのために CloudFront→Lambdaで 同時に複数リクエストが走るので 上限抵触した模様(前Page参照) • とりあえず1000にUp クオータ抵触 Quota抵触 10!!
28 © 2024 Japan Digital Design, Inc. そもそもキャッシュ効いてない LWAでハマったポイント •
愚直にCloudFront設定すると、 Function URLをオリジンとする 場合の推奨キャッシュポリシーは 「Caching Disabled」 • webp, woff2, js, cssあたりの 静的コンテンツはキャッシュに 乗せても問題ないので カスタムキャッシュポリシー適応 キャッシュ適応しないよ キャッシュ対応版
29 © 2024 Japan Digital Design, Inc. LWAまとめ 10/1あたりにLWA対応を加えたので 具体的なコスト削減率値は出せていませんが、
もろもろ含めて 15 USD →3 USD くらいには着地しそう コールドスタートを踏むと明らかにApp Runnerよりレスポンスは遅いですが、 踏まなければパフォーマンスは遜色ないですし、今後アクセス数も減るはずなので、 Lambda Web Adapterはめちゃくちゃ良い選択肢でした
30 © 2024 Japan Digital Design, Inc. はじめに 終劇
31 © 2024 Japan Digital Design, Inc. Next… ↑のような技術スタックで JAWSのWEB開発したい方
WANTED!!
Thank you. 32 © 2024 Japan Digital Design, Inc.