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
AWS CodePipeline と AWS SAM CLI で サーバレス開発を加速させる取り組み
Search
yoheiigei
June 06, 2024
Programming
0
170
AWS CodePipeline と AWS SAM CLI で サーバレス開発を加速させる取り組み
yoheiigei
June 06, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
WindowInsetsだってテストしたい
ryunen344
1
200
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
550
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
0
240
Team operations that are not burdened by SRE
kazatohiei
1
280
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
530
エラーって何種類あるの?
kajitack
5
320
Is Xcode slowly dying out in 2025?
uetyo
1
240
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
430
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
710
Deep Dive into ~/.claude/projects
hiragram
10
2.1k
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
580
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
270
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Gamification - CAS2011
davidbonilla
81
5.3k
Agile that works and the tools we love
rasmusluckow
329
21k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Designing for humans not robots
tammielis
253
25k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Transcript
1 プロダクト開発部 SREチーム 伊藝 洋平 2024/04/22
AWS CodePipeline と AWS SAM CLI で サーバレス開発を加速させる取り組み 発表内容 2
会社紹介 3
自己紹介 • 伊藝 洋平 • @沖縄 リモートワーク歴7年 • エンジニア歴 12年
• jinjer株式会社で SREエンジニアのお仕事をしています • 主に、AWSを利用したインフラ環境を構築するお仕事をしています • python勉強中です 4
Contents 1. サーバーレス構成を採用する際の課題 2. AWS CodePipeline と AWS SAM CLI
について a. AWS CodePipeline / AWS SAM CLI ? b. メリット、デメリットについて 3. 開発プロジェクトでの採用例 a. 採用事例、イメージ画像 b. SREとバックエンドエンジニアの役割分担 4. まとめ 5
上記のよくあげられる課題のうち、赤字部分に対する取り組みです。 • サービス上限値(例 : Lambda の 15分 timeout) • 既存のアプリケーションで作り直しが必要
• エラーや障害発生時の切り分けが難しい • 誰が、どこまで、設定するのか? • 色々なサービスが連携して、テストやデバッグがしづらい。 • etc … サーバレス構成を採用する際の課題 よく挙げられる課題 6
誰が、どこまで、設定するのか? 例)Lambda function に関連する設定は、誰が設定するのか? コード書いて、パッケージング・デプロイして、他のサービスとの連携設定をして、 環境変数は?、ログの設定、監視の設定、ソースコードに依存するし、IAM の権限、etc … • 誰が、どこまで、設定するのか?
• 色々なサービスが連携して、テストやデバッグがしずらい サーバレス構成を採用する際の課題 よく挙げられる課題 7 テストやデバッグがしずらい 例)Lambda Function のテストやデバッグ? Lambda Function をローカルで実行する?時に渡すイベント用意しないと、responseを デバッグ確認するためapi gateway と連携したい、etc …
• AWS CodePipeline • AWS SAM CLI を活用しています!!! そんな課題に、対応するために、 8
AWS CodePipeline AWS CodePipeline と AWS SAM CLI について 9
• AWS Code 兄弟 (CodeCommit, CodeDeploy, CodePipeline, CodeBuild) • CI/CDをサポートするサービス。 • V2アップデートで、git tag によるトリ ガーなど、細かい制御ができる様に! • パイプラインタイプで実行モード (Queued / Parallel)が追加に! • 簡単な設定で、デプロイパイプラインが 組める!! • etc …
AWS SAM CLI AWS CodePipeline と AWS SAM CLI について
10 • Serverless Application Model (SAM) の CLI ツール • サーバレス な アプリケーションの開発 をサポートするツール • CloudFormation の拡張。より簡単な 記述で サーバーレス構成ができる!! • Lambda 以外にも、 APIGateway/DynamoDB など、 サーバーレスな構成をマルっと設定でき る! • etc …
AWS SAM CLI で構成した サーバレスアプリケーション を AWS CodePipeline を使って、サクッと、テストやデプロイができるようにする! •
誰が、どこまで、設定するのか? • 色々なサービスが連携して、テストやデバッグがしずらい AWS CodePipeline と AWS SAM CLI で課題を解決する! よく上げられる課題 11 メリット - 簡単な設定でデプロイや管理ができる。 - CodePipeline (CodeBuild)が設定作業を やってくれるので、設定者の権限などを 気にしなくて良い。 - AWS SAM CLI を利用すれば、 ローカルでサービス連携の テストもできる。 デメリット - CodePipeline や AWS SAM CLI に関する 学習が必要。
実際のサーバレスアプリケーション開発の流れ AWS CodePipeline と AWS SAM CLI で課題を解決する! 12 1.
git リポジトリを用意 2. CodePipelineを設定(terraform) 3. AWS SAM CLI で project を init する 4. lambda function を実装する 5. commit/push/review/approve/merge! 6. CodePipeline が実行される 7. サーバレスアプリケーションがデプロイ される
ジンジャー勤怠サービス 開発プロジェクトでの採用例 13 • 採用例:既存アプリケーションからの構成変更 • 対象:サブシステムAPI、バッチ処理、の一部 • 構成:APIGateway/Lambda、SQS/Lambda •
言語:Ruby から Node.js へ • テスト ◦ ユニットテストは、ローカルで実施。 ◦ インテグレーションテストは、開発環境。
外部連携サービス ジンジャーAPI 開発プロジェクトでの採用例 14 • 採用例:新規サービスのサーバレス構成採用 • 対象:外部連携用API • 構成:APIGateway/Lambda
• 言語:Node.js(Typescript) • テスト ◦ ユニットテストをCodePipelineで! ◦ インテグレーションテストは、開発環境。
ジンジャー人事労務 生成AIを活用した 新規サービス(PoC) 開発プロジェクトでの採用例 15 • 採用例:新規サービスのサーバレス構成採用 • 対象:人事情報の入力補助用API •
構成:APIGateway/Lambda • 言語:Python • テスト ◦ ユニットテストをローカルで! ◦ インテグレーションテストは、開発環境。
AWS CodePipeline と AWS SAM CLI を使用した、デプロイの仕組みでサーバレス開発を加速さ せる取り組みについて説明しました。 重要 どのような開発環境にあてはまるものではないです。更に良い構成はきっとある。
仕組みが簡単なので、まずは始めてみるという事が大事。 バックエンド、インフラなどの領域を明確に分ける事は、難しい。 それぞれの領域のエンジニアが、良い開発開発を展開するために歩み寄るが大事。 サーバレス構成の場合、テストは、ローカルで完璧に実行することよりも、 開発環境へデプロイした方がコストがかからない可能性がある。 AWS SAM CLIを活用すると、APIGateway/Lambda のローカルでのテストもで きる。 気楽に、少しづつ、Let’s サーバレス ! まとめ(サーバレス開発を加速させる取り組み) 16
ありがとうございました! jinjer株式会社 SREチームでは、プロダクト開発を支えながら、 チームメンバーで、楽しく働きやすい環境を整えて、 新しい技術の習得に取り組んでいます。 最後まで、発表内容を聞いていただきありがとうございました。 以上 17