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
130
AWS CodePipeline と AWS SAM CLI で サーバレス開発を加速させる取り組み
yoheiigei
June 06, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
220
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
3k
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
160
最近のVS Codeで気になるニュース 2025/01
74th
1
220
Оптимизируем производительность блока Казначейство
lamodatech
0
970
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
400
HTML/CSS超絶浅い説明
yuki0329
0
200
Rubyでつくるパケットキャプチャツール
ydah
0
250
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
2.2k
Terraform で作る Amazon ECS の CI/CD パイプライン
hiyanger
0
110
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
29
4.6k
Scaling your build logic
antalmonori
1
120
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
174
51k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
GraphQLとの向き合い方2022年版
quramy
44
13k
Designing Experiences People Love
moore
139
23k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
BBQ
matthewcrist
85
9.4k
Why Our Code Smells
bkeepers
PRO
335
57k
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