Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS Well Architected Framework− Serverless App...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kohski
March 17, 2021
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Well Architected Framework − Serverless Application Lens − に沿ってアプリケーションを改善した話
Serverless Meetup Japan Virtual #18
kohski
March 17, 2021
More Decks by kohski
See All by kohski
エンジニア歴1ヶ月だけどサーバレスなサービスを使って事業に貢献できた話
kosukekimura
0
710
Other Decks in Programming
See All in Programming
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
Jetpack Compose メカニズム
skydoves
0
440
Intent as Code
shoppingjaws
6
1k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
Java 27新機能 / Java 27 new features
kishida
2
150
新卒PdEのリアル
ryu1013
1
500
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.1k
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.5k
Are APIs Still Relevant in the AI Era?
soyuka
0
270
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
290
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
760
Paper Plane
katiecoart
PRO
4
53k
Fireside Chat
paigeccino
43
4k
New Earth Scene 8
popppiees
4
2.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.8k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
KATA
mclloyd
PRO
35
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Transcript
Serverless Meetup Japan Virtual #18 AWS Well Architected Framework −
Serverless Application Lens − に沿ってアプリケーションを改善した話
Serverless Meetup Japan Virtual #18 自己紹介 • 木村 幸介 •
株式会社キャラウェブ • エンジニア2年目 • 経理やってました
Serverless Meetup Japan Virtual #18 会社概要 会社名:株式会社キャラウェブ 所在地:東京都台東区東上野4−12−1 資本金:7,161万円 主な事業内容:
コンテンツ事業 電子書籍のライセンスおよび管理,電子書籍販売 クラウドパートナー事業 サーバーレスアプリケーション構築にフォーカスした アジャイルチーム提供サービス 他 ISO/IEC 27001:2013 & JIS Q 27001:2014 クラウドに関するコンサルティング、設計、 構築、運用、管理 における認証 当社は AWSパートナーネットワーク の コンサルティングパートナー です
Serverless Meetup Japan Virtual #18 最近の悩み ごく典型的な機能要件を満たすサーバレスアプリ ケーションはつくれるようになった気がするけど、 胸を張って「サーバレスできます」とはとても言え ない。。。
Serverless Meetup Japan Virtual #18 そうだ! Well Architected Framework –
Serverless Application Lens – を改めて読んでみよう!
Serverless Meetup Japan Virtual #18 Well Architected Framework ▪ Well
Architected Framework クラウド上でワークロードを設計および実行するための主要な概 念、設計原則、アーキテクチャのベストプラクティスについて説明さ れているフレームワーク ▪Severless Application Lens サーバーレスワークロードに固有の Well-Architected フレームワ ークの詳細を取り上げている
Serverless Meetup Japan Virtual #18 Well-Architected Framework - Serverless Application
Lens - 1. ホワイトペーパー https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/serve rless-applications-lens/wellarchitected-serverless-applications- lens.pdf 2. Well-Architected Tool Serverless Lens マネジメントコンソールから使用可
Serverless Meetup Japan Virtual #18 Well-Architected Tool
Serverless Meetup Japan Virtual #18 Well-Architected Tool
Serverless Meetup Japan Virtual #18 今日お話しさせていただくこと Well Architected Frameworkを読んで、よりよい サーバレスアプリケーションにするために実践し
たこと
Serverless Meetup Japan Virtual #18 注意点 以降の説明には、すでに実装済みのもので今回 私が初めて腹落ちしたものも含んでいます。 これらが会社として今までできていなかったという わけではありません。
Serverless Meetup Japan Virtual #18 9つの質問 No. 詳細 概要 OPS1
サーバーレスアプリケーションの状態をどのように評価しますか? X-Ray, lambda-power-tools OPS2 アプリケーションのライフサイクル管理について教えて下さい cdk pipelines, versioning, alias SEC1 サーバーレス API へのアクセスをどのようにコントロールしますか? Cognito, IAM, Lambda authorizer SEC2 サーバーレスアプリケーションのセキュリティ境界をどのように管理していますか? 単一用途の関数, 関数独自のロール作成 SEC3 ワークロードにどのようにアプリケーションセキュリティを実装しますか? 静的コード解析ツール(banditなど) REL1 インバウンドリクエスト率はどのように調整していますか? Lambdaの同時実行制御 + SQS REL2 サーバーレスアプリケーションには回復力をどのように組み込んでいますか? StepFunctionsの使用 PERF1 どのようにサーバーレスアプリケーションのパフォーマンスを最適化しますか? lambda power tuning, Cache COST1 どのようにサーバーレスアプリケーションのコストを最適化しますか? Logの保持期間を見直し, Lambdaメモリ
Serverless Meetup Japan Virtual #18 OPS1の詳細 No. 詳細 1 面倒な設定なしで与えられるメトリクスを理解し、分析し、アラートを出す
2 分散トレースを使用し、コードにはコンテキストが追加されている 3 構造化および一元化されたログ記録 4 アプリケーション、ビジネス、オペレーションメトリクスの使用 サーバーレスアプリケーションの状態をどのように評価しますか?
Serverless Meetup Japan Virtual #18 OPS1の詳細 No. 詳細 1 面倒な設定なしで与えられるメトリクスを理解し、分析し、アラートを出す
2 分散トレースを使用し、コードにはコンテキストが追加されている 3 構造化および一元化されたログ記録 4 アプリケーション、ビジネス、オペレーションメトリクスの使用 サーバーレスアプリケーションの状態をどのように評価しますか?
Serverless Meetup Japan Virtual #18 AWS X-Ray Lambda Powertools Tracer
+
Serverless Meetup Japan Virtual #18 CDKでの設定 API Gateway Step Functions
Lambda
Serverless Meetup Japan Virtual #18 Lambda Functionでの使用
Serverless Meetup Japan Virtual #18 サービスマップ
Serverless Meetup Japan Virtual #18 トレースリスト
Serverless Meetup Japan Virtual #18 セグメント詳細
Serverless Meetup Japan Virtual #18 X-Rayを導入してみて AFTER トラブルシューティング レイテンシー分析 などに対して効果的
BEFORE APIGateway, AppSync, Lambda … etc それぞれのログを個別に確 認していたため、調査の効率 がわるかった
Serverless Meetup Japan Virtual #18 OPS1の詳細 No. 詳細 1 面倒な設定なしで与えられるメトリクスを理解し、分析し、アラートを出す
2 分散トレースを使用し、コードにはコンテキストが追加されている 3 構造化および一元化されたログ記録 4 アプリケーション、ビジネス、オペレーションメトリクスの使用 サーバーレスアプリケーションの状態をどのように評価しますか?
Serverless Meetup Japan Virtual #18 Lambda Powertools Logger
Serverless Meetup Japan Virtual #18 Lambda Functionでの設定 • lambda_powertoolsのimport •
デコレータを指定 • LOG_LEVELの設定 • POWERTOOLS_LOGGER_LOG _EVENT: trueを設定すること でeventを自動出力
Serverless Meetup Japan Virtual #18 構造化されたログ 非構造化ログ 構造化ログ
Serverless Meetup Japan Virtual #18 Lambda Powertools Loggerを使用 BEFORE •
Python標準のloggerを使用 • 出力する項目は実装者に よってまちまち • ログを利用するときは timestampを頼りにマネジメ ントコンソールを目視確認 AFTER • Lambda-Powertoolsの loggerを使用 • LogEventを有効化して自動 eventを出力 • Cloud Watch Insightsのクエ リを有効活用
Serverless Meetup Japan Virtual #18 9つの質問 No. 詳細 概要 OPS1
サーバーレスアプリケーションの状態をどのように評価しますか? X-Ray, lambda-power-tools OPS2 アプリケーションのライフサイクル管理について教えて下さい cdk pipelines, versioning, alias SEC1 サーバーレス API へのアクセスをどのようにコントロールしますか? Cognito, IAM, Lambda authorizer SEC2 サーバーレスアプリケーションのセキュリティ境界をどのように管理していますか? 単一用途の関数, 関数独自のロール作成 SEC3 ワークロードにどのようにアプリケーションセキュリティを実装しますか? 静的コード解析ツール(banditなど) REL1 インバウンドリクエスト率はどのように調整していますか? Lambdaの同時実行制御 + SQS REL2 サーバーレスアプリケーションには回復力をどのように組み込んでいますか? StepFunctionsの使用 PERF1 どのようにサーバーレスアプリケーションのパフォーマンスを最適化しますか? lambda power tuning, Cache COST1 どのようにサーバーレスアプリケーションのコストを最適化しますか? Logの保持期間を見直し, Lambdaメモリ
Serverless Meetup Japan Virtual #18 OPS2の詳細 No. 詳細 1 別々の環境に分離されたコードおよびステージとしてインフラストラクチャを使用する
2 一時的な環境を使用し、新機能の原型を作る 3 ロールアウトデプロイメカニズムを使用する 4 構成管理を使用する 5 関数ランタイムの廃止ポリシーを確認する 6 個別アカウント全体の自動テストを含む CI/CD を使用する アプリケーションのライフサイクル管理について教えて下さい
Serverless Meetup Japan Virtual #18 ステージごとにマルチアカウント運用 Manage Dev Stg Prd
Serverless Meetup Japan Virtual #18 マルチアカウント・マルチリージョンのデプロイ • クロスアカウントなロールの設定 • アーティファクトの扱い
など考えることが多い
Serverless Meetup Japan Virtual #18 CDK Pipelines
Serverless Meetup Japan Virtual #18 CDK Pipelines • CDKで構築されたアプリケーションを継続的に配信するための コンストラクタライブラリ
• 2021/3/17時点でDeveloper Preview • クロスアカウントのデプロイが簡単に実現可能 • 承認アクションや通知の設定も可能
Serverless Meetup Japan Virtual #18 CDK Pipelines • CDKで構築されたアプリケーションを継続的に配信するための コンストラクタライブラリ
• 2021/3/17時点でDeveloper Preview • クロスアカウントのデプロイが簡単に実現可能 • 承認アクションや通知の設定も可能
Serverless Meetup Japan Virtual #18 CDK Pipelinesの例 PipelineStageクラスを作成
Serverless Meetup Japan Virtual #18 CDK Pipelinesの例 Pipelineを定義
Serverless Meetup Japan Virtual #18 CDK Pipelinesの例 PipelineStageクラスを作成 stageの追加 Approvalの追加
Serverless Meetup Japan Virtual #18 CDK Pipelinesの例 PipelineMasterStackを 初期化
Serverless Meetup Japan Virtual #18 CDK Pipelinesの例 $ cdk bootstrap
--profile <manageアカウントのprofile> --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess aws://<manageアカウントのID>/<deoloyするリージョン> $ cdk bootstrap --profile <devアカウントのprofile> --trust <manageアカウントのID> --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess aws://<devアカウントのID>/ <deoloyするリージョン> $ cdk bootstrap --profile <stgアカウントのprofile> --trust <manageアカウントのID> --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess aws://<stgアカウントのID>/ <deoloyするリージョン> $ cdk bootstrap --profile <prodアカウントのprofile> --trust <manageアカウントのID> --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess aws://<prodアカウントのID>/ <deoloyするリージョン> 信頼関係をCLIから登録(以下のコマンド例)
Serverless Meetup Japan Virtual #18 ステージごとにマルチアカウント運用 Manage Dev Stg Prd
CDK Pipelines
Serverless Meetup Japan Virtual #18 OPS2の詳細 No. 詳細 1 別々の環境に分離されたコードおよびステージとしてインフラストラクチャを使用する
2 一時的な環境を使用し、新機能の原型を作る 3 ロールアウトデプロイメカニズムを使用する 4 構成管理を使用する 5 関数ランタイムの廃止ポリシーを確認する 6 個別アカウント全体の自動テストを含む CI/CD を使用する アプリケーションのライフサイクル管理について教えて下さい
Serverless Meetup Japan Virtual #18 Lambda Canary Deploy
Serverless Meetup Japan Virtual #18 Lambdaのバージョン・エイリアスを追加
Serverless Meetup Japan Virtual #18 Canaryデプロイの設定 異常検知のための アラームを設定 CodeDeployで Deploymentタイプを
指定
Serverless Meetup Japan Virtual #18 Lambda Canary デプロイ BEFORE •
Lambdaは$LATESTをダイ レクト更新 • ロールバックはコミットを戻し て再デプロイ AFTER • 定期的なアクセスがある Lambdaについては更新の 安全性が増した
Serverless Meetup Japan Virtual #18 9つの質問 No. 詳細 概要 OPS1
サーバーレスアプリケーションの状態をどのように評価しますか? X-Ray, lambda-power-tools OPS2 アプリケーションのライフサイクル管理について教えて下さい cdk pipelines, versioning, alias SEC1 サーバーレス API へのアクセスをどのようにコントロールしますか? Cognito, IAM, Lambda authorizer SEC2 サーバーレスアプリケーションのセキュリティ境界をどのように管理していますか? 単一用途の関数, 関数独自のロール作成 SEC3 ワークロードにどのようにアプリケーションセキュリティを実装しますか? 静的コード解析ツール(banditなど) REL1 インバウンドリクエスト率はどのように調整していますか? Lambdaの同時実行制御 + SQS REL2 サーバーレスアプリケーションには回復力をどのように組み込んでいますか? StepFunctionsの使用 PERF1 どのようにサーバーレスアプリケーションのパフォーマンスを最適化しますか? lambda power tuning, Cache COST1 どのようにサーバーレスアプリケーションのコストを最適化しますか? Logの保持期間を見直し, Lambdaメモリ
Serverless Meetup Japan Virtual #18 REL1詳細 No. 詳細 1 スロットリングを使用してインバウンドリクエスト率を制御する
2 API クォータを使用、分析、適用する 3 スケーラブルではないリソースを保護するメカニズムを利用する インバウンドリクエスト率はどのように調整していますか?
Serverless Meetup Japan Virtual #18 サンプルアプリケーション
Serverless Meetup Japan Virtual #18 同時実行の制御: 課題
Serverless Meetup Japan Virtual #18 同時実行の制御: 課題 CreateJobは 秒間5回まで
Serverless Meetup Japan Virtual #18 同時実行の制御: 課題 CreateJobは 秒間5回まで 秒間5回を超えるリクエストが
発生する可能性がある
Serverless Meetup Japan Virtual #18 同時実行の制御: 対応 1200 単位: ms
600 800 1000 0 200 400 単位: ms 800 1000 1200 0 200 400 600 同時実行数 秒間最大リクエスト < 5 2 4 True 3 6 False 関数の平均実行時間: 600ms
Serverless Meetup Japan Virtual #18 同時実行の制御: 対応 同時実行数を2 に設定
Serverless Meetup Japan Virtual #18 同時実行の制御: 対応 同時実行数を2 に設定 SQSでイベントを
キューイングする
Serverless Meetup Japan Virtual #18 まとめ No. 詳細 概要 OPS1
サーバーレスアプリケーションの状態をどのように評価しますか? X-Ray lambda-powertools OPS2 アプリケーションのライフサイクル管理について教えて下さい cdk pipelines versioning, alias, canary deploy REL1 インバウンドリクエスト率はどのように調整していますか? Lambdaの同時実行制御 + SQS
Serverless Meetup Japan Virtual #18 最後に • 大切なことはすべてWell Architected Frameworkに書
いてある • とくにServerless Application Lensの内容は実践的なも のが多い
Serverless Meetup Japan Virtual #18 Zoom参加者の皆様へご質問 Well ArchitectedなApplicationにするためにどんなことし てますか?