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
Takanori Suzuki
December 16, 2020
Technology
1
300
フル・サーバーレスでサービスを作る話 / 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.1k
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
89
Karateによる UI Test Automation 革命 / UITests-Automation-with-Karate
takanorig
0
380
スマート工場に向けたIoTデータ分析の実際のところ / SmartFactory-IoT-Data-Analytics
takanorig
0
180
人生がときめくAPIテスト自動化 with Karate / SparkingJoy-for-API-Testing-Automation-with-Karate
takanorig
0
760
Other Decks in Technology
See All in Technology
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
Cosmos World Foundation Model Platform for Physical AI
takmin
0
650
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.6k
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
200
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
440
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
520
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
42k
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.2k
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
2.9k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
430
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
The browser strikes back
jonoalderson
0
360
Site-Speed That Sticks
csswizardry
13
1.1k
[SF Ruby Conf 2025] Rails X
palkan
1
740
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
49
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
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