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
200
AWS CodePipeline と AWS SAM CLI で サーバレス開発を加速させる取り組み
yoheiigei
June 06, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
One Enishi After Another
snoozer05
PRO
0
140
Devoxx BE 2025 Loom lab
josepaumard
0
110
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
120
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
16
6.4k
CSC509 Lecture 08
javiergs
PRO
0
230
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
1
470
EMこそClaude Codeでコード調査しよう
shibayu36
0
290
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
190
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
390
What's new in Spring Modulith?
olivergierke
1
160
Google Opalで使える37のライブラリ
mickey_kubo
3
130
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
6.7k
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
610
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Building Applications with DynamoDB
mza
96
6.7k
Become a Pro
speakerdeck
PRO
29
5.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Into the Great Unknown - MozCon
thekraken
40
2.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
Code Reviewing Like a Champion
maltzj
526
40k
Why Our Code Smells
bkeepers
PRO
340
57k
Gamification - CAS2011
davidbonilla
81
5.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
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