Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
フル・サーバーレスでサービスを作る話 / Make the full-stack-server...
Search
Takanori Suzuki
December 16, 2020
Technology
340
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
フル・サーバーレスでサービスを作る話 / Make the full-stack-serverless service
Serverless Meetup Japan Virtual #16
#serverlessjp
フル・サーバーレスでサービスを作る話
Takanori Suzuki
December 16, 2020
More Decks by Takanori Suzuki
See All by Takanori Suzuki
Amazon Bedrock で生成AI活用サービスをセキュアに構築する方法
takanorig
2
300
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
6
4.1k
ChatGPTとKarateで実現するシン・BDD / Realizing New BDD through ChatGPT and Karate
takanorig
2
3.8k
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.4k
IoTサービスのエッジからクラウドまでServerlessFrameworkで構築する / Deploying-IoT-Service-from-Edge-to-Cloud-with-ServerlessFramework
takanorig
0
370
[SORACOMUG]S+Cameraを利用して在庫チェックをやってみた / InventoryManagement-with-SORACOM-SCAMERA
takanorig
0
120
Karateによる UI Test Automation 革命 / UITests-Automation-with-Karate
takanorig
0
420
スマート工場に向けたIoTデータ分析の実際のところ / SmartFactory-IoT-Data-Analytics
takanorig
0
220
Other Decks in Technology
See All in Technology
Claude Code本って、 読む必要あるの?
oikon48
2
480
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.3k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.3k
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
16k
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
220
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
550
絵ではじめるKubernetesセキュリティ
aoi1
4
680
`t*(42&t>>10)`だけで音楽が鳴る、Swiftで実装するBytebeat / iOSDC Japan 2026
yutailang0119
0
110
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
29
16k
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.2k
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
170
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Balancing Empowerment & Direction
lara
6
1.3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Visualization
eitanlees
152
17k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Building Flexible Design Systems
yeseniaperezcruz
330
41k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1k
エンジニアに許された特別な時間の終わり
watany
109
250k
The Limits of Empathy - UXLibs8
cassininazir
1
680
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