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
フル・サーバーレスでサービスを作る話 / Make the full-stack-server...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takanori Suzuki
December 16, 2020
Technology
1
310
フル・サーバーレスでサービスを作る話 / Make the full-stack-serverless service
Serverless Meetup Japan Virtual #16
#serverlessjp
フル・サーバーレスでサービスを作る話
Takanori Suzuki
December 16, 2020
Tweet
Share
More Decks by Takanori Suzuki
See All by Takanori Suzuki
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
6
3.4k
ChatGPTとKarateで実現するシン・BDD / Realizing New BDD through ChatGPT and Karate
takanorig
2
3.7k
KarateによるBDDベースのAPIテスト / BDD based API-Testing with Karate
takanorig
1
1.1k
AIカメラで社内販売の品切れを検知して残念な結果になるのを回避した話 / Detecting out of stock items with using AI Camera
takanorig
0
2.2k
IoTサービスのエッジからクラウドまでServerlessFrameworkで構築する / Deploying-IoT-Service-from-Edge-to-Cloud-with-ServerlessFramework
takanorig
0
340
[SORACOMUG]S+Cameraを利用して在庫チェックをやってみた / InventoryManagement-with-SORACOM-SCAMERA
takanorig
0
91
Karateによる UI Test Automation 革命 / UITests-Automation-with-Karate
takanorig
0
380
スマート工場に向けたIoTデータ分析の実際のところ / SmartFactory-IoT-Data-Analytics
takanorig
0
190
人生がときめくAPIテスト自動化 with Karate / SparkingJoy-for-API-Testing-Automation-with-Karate
takanorig
0
770
Other Decks in Technology
See All in Technology
JAWS FESTA 2025でリリースしたほぼリアルタイム文字起こし/翻訳機能の構成について
naoki8408
1
330
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
610
技術的負債の泥沼から組織を救う3つの転換点
nwiizo
8
3.6k
Claude Codeの進化と各機能の活かし方
oikon48
22
12k
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
Dr. Werner Vogelsの14年のキーノートから紐解くエンジニアリング組織への処方箋@JAWS DAYS 2026
p0n
1
130
開発組織の課題解決を加速するための権限委譲 -する側、される側としての向き合い方-
daitasu
5
590
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
560
複数クラスタ運用と検索の高度化:ビズリーチにおけるElastic活用事例 / ElasticON Tokyo2026
visional_engineering_and_design
0
130
情シスのための生成AI実践ガイド2026 / Generative AI Practical Guide for Business Technology 2026
glidenote
0
200
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
130
8万デプロイ
iwamot
PRO
2
230
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
The Curious Case for Waylosing
cassininazir
0
270
BBQ
matthewcrist
89
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
270
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
74
Unsuck your backbone
ammeep
672
58k
Why Our Code Smells
bkeepers
PRO
340
58k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Transcript
1 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
フル・サーバーレスで サービスを作る話 2020/12/16 Acroquest Technology Co., Ltd. 鈴木 貴典 Serverless Meetup Japan Virtual #13
本日の話のポイント Copyright © Acroquest Technology Co., Ltd. All rights reserved.
2 サーバーレスで サービス全体を設計・開発した際に 意識したポイントを紹介します
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 3
自己紹介 ◼ 所属 • Acroquest Technology Co., Ltd. ◼ 主な業務分野 • システムアーキテクト • IoTサービス開発 • ビッグデータ処理プラットフォーム • サーバーレス・アーキテクチャ ◼ バックグラウンド • エンタープライズ/ミッションクリティカル • SEPG/開発/マネジメント • Java/Python 鈴木 貴典 シニアテクニカルアーキテクト Acro = 先端を quest = 探究する 働きがいのある会社ランキング 1位
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 4
• Password付zipファイルを送ります • Passwordを送ります。 • 暗号化 • プロトコル クラウドストレージで共有? 顧客やユーザーとの ファイルのやり取りって どうしていますか? P P A P
ファイル転送/交換に求められる要件 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
5 ①大きなサイズのファイル送付をしたい ②ファイルの送信だけでなく、相手からの受取もしたい ③ファイルは暗号化する ④フリーのサービスの利用はNG ⑤ファイルがクラウド上に残り続けるのはNG • 利用頻度は少ない(1日数回) • 運用コストはおさえたい しかしながら…
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 6
そのニーズは満たせますよ そう、サーバーレスならね
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 7
フル・サーバーレスなサービスとして開発
ファイル転送サービスのアーキテクチャ概要 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
8 API Gateway Lambda DynamoDB S3 SES 社員 ユーザー メール送付 Cognito Active Directory SAML フェデレーション 認証は SSO API Gateway Lambda ゲスト ユーザー ファイル一時保存
画面イメージ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
9
検討したポイント Copyright © Acroquest Technology Co., Ltd. All rights reserved.
10 ①認証 ②データ蓄積/アクセス ③大きいサイズのファイルアップロード ④ファイルの自動削除 ⑤バッチ集計 ⑥モニタリング
①認証(シングルサインオン構成) Copyright © Acroquest Technology Co., Ltd. All rights reserved.
11 ⚫ Cognitoで、SAMLフェデレーションを適用 • 今回のサービスではAzure AD と連携 • Auth0などでも連携可能 ⚫ このおかげで、SSO構成が実現できるため ユーザー登録/管理等の機能開発は 不要になった ⚫ エンタープライズ向けには有用 ⚫ API Gateway の Authorizer も対応可能 画面 Cognito AzureAD ②認証 ①アクセス ③リダイレクト OAuth2 SAML
②データ蓄積/アクセス Copyright © Acroquest Technology Co., Ltd. All rights reserved.
12 ⚫ キャパシティ戦略をどうするか? • アクセスがおおよそ一定 → プロビジョンド ‒ Auto Scaling を適用するかどうか? • アクセスが不規則で少ない → オンデマンド ‒ デフォルトでは 最大4,000WCU or 12,000RCUになる ‒ 逆にアクセスが増えたらコストも増えるので注意 ⚫ 更新系テーブルと参照系テーブルを 分けることも検討 • CQRS(コマンドクエリ責任分離)の構成を 取るかどうか ⚫ ポイントインタイムリカバリ(PITR)は 特に問題がなければデフォルトONで! • 自動でバックアップされ、過去35日間の任意の 時点にデータを復元できる • 障害や操作ミスなどでデータを削除してしまった 場合などに有効 DynamoDB Stream Commands (更新) Query (参照) Write Read
③大きいサイズのファイルアップロード Copyright © Acroquest Technology Co., Ltd. All rights reserved.
13 ①Pre-Signed URLの取得 ②ファイルアップロード API Gateway Lambda S3 ⚫ API Gatewayで送信できるコンテンツのサイズは 10MBの制限あり(上限緩和なし) ⚫ S3の ”Pre-Signed URL”(署名付きURL)の 機能を利用して、画面側からS3へファイルを アップロードする ⚫ ファイルアップロードが完了したら S3トリガーで処理を組み込むこともできる ⚫ ダウンロードの場合も、ほぼ同様にして実現可能 ※今回は転送対象のファイルであるが サイズの大きい画像ファイルなどを 扱うような場合も同様の方法で実現できる Lambda トリガー
④ファイルの自動削除 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
14 ⚫ セキュリティ性向上のため、一定期間で S3のファイルは削除したい ⚫ S3のライフサイクルルールを使うと 一定期間経過後に自動で削除できる • ロジックの実装などが不要 • ただし、時間単位ではなく、日単位で指定
⑤バッチ集計 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
15 ⚫ Dailyで、利用状況の集計を行っている ⚫ Step Functions で大抵のことは満たせる 状況になっている • LambdaやBatchなどとも連携できる ⚫ 動的並列処理ができるようになったのが便利! • 過去も並列処理はあったが、機能が並列であり、 同じ処理を複数処理する内容ではなかった • Mapステートを利用することで、現在は解決 • 不特定多数/データ数が増加していくような 場合でもこれで解決 • ひと昔前のMap-Reduce的な処理は実現 (データ件数次第ではあるが) ・・・ CloudWatch Event Step Functions Batch Lambda
⑥モニタリング Copyright © Acroquest Technology Co., Ltd. All rights reserved.
16 ⚫ ひとまずX-Rayは適用しておくと良い • 性能ボトルネックを早めに特定 • 本番運用で障害が発生した際の手がかりになる • ただし、全リクエストをモニタリングしている わけではない点に注意 ⚫ 今やLambdaだけでなくStep Functionsにも対応
⑥モニタリング(+α) Copyright © Acroquest Technology Co., Ltd. All rights reserved.
17 ⚫ 2020/12/03に 「Lambda Insights」がGA! ⚫ 自前でダッシュボードなどを 作らなくてもすぐにLambdaの 性能評価やモニタリングが可能
その後の 運用を通して
その後の運用を通して Copyright © Acroquest Technology Co., Ltd. All rights reserved.
19 ①障害はゼロ • 1年半ぐらい運用継続中。 • 問い合わせはあったけど「ファイル自体添付されていない」など。 • エラーのモニタリングもしているが、エラー自体発生しない。 ②メンテナンス自体もほぼ無い • 認証をSAML連携したおかげで、ユーザーの追加/削除の 対応なども発生しない。 ③コストは? • 想定以上でした(!?)
構築してみた結果 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
20 想定以上に いろいろな機能を活用できたことで 開発メンバも良い経験ができた (開発してくれたメンバはほぼサーバーレス初心者だった) 社内の他のメンバからも 好評であった
まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
21 1. クラウド自体や関連SaaSの機能を活かして できるだけ自前で開発する部分を減らそう 2. 処理するデータのサイズやスループットを踏まえて アーキテクチャの検討をしよう 3. モニタリングやバックアップ等、運用の方針も 最初にちゃんと設計しよう
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 22
ご清聴ありがとうございました Evolve the Earth with Emotion of Technology