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
CSV登録をAWSサーバーレスで実装
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
miura
November 21, 2025
Programming
22
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CSV登録をAWSサーバーレスで実装
JAWS-UG青森2024登壇資料
miura
November 21, 2025
More Decks by miura
See All by miura
Amazon Nova Sonic 入門
miuratoya
0
170
Other Decks in Programming
See All in Programming
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
510
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.9k
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
180
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
190
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
How to make the Groovebox
asonas
2
2.5k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
4 Signs Your Business is Dying
shpigford
187
23k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
The browser strikes back
jonoalderson
0
1.8k
How to build a perfect <img>
jonoalderson
1
6.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Transcript
CSVデータ登録機能をサーバーレスで実装 アイレット株式会社 三浦 登哉
・年齢 26歳 ・出身 青森県弘前市出身 ・所属 アイレット株式会社 第一開発事業部 ・業務 開発エンジニア(フロント、バックエンド) 三浦
登哉 自己紹介
System Integrator(SIer) クラウドの設計、構築からシステム開発、デザイン設計 運用保守までトータルサポート 弊社のサービス
ユーザーがCSVファイルでデータ登録する (最大20万件のデータ登録) 要件
まずは登場するサービスについてご紹介
AWS Lambda ・サーバーの準備・管理は不要で、コードを与える だけで実行してくれる ・実行時間単位で料金が発生する ・ユースケース例 ・アプリバックエンド ・ファイル処理 ・IoTバックエンド
Amazon API Gateway ・API の作成、公開、保守、モニタリング、保 護を簡単に行える ・フルマネージドなので開発者はAPIの管理に 集中できる ・APIコール数と送出したデータ量に料金が発 生する
Amazon S3 ・AWS最初期(2006年3月〜)からある伝統的なオブジェ クトストレージサービス ・大量データの保存・取得が簡単にできる ・データの耐久性は99.999999999% ・ユースケース例 ・ウェブサイトホスティング ・バックアップ ・データレイク
実装方針の検討
・CSVデータ登録処理用のAPIを1本追加することをまず初めに考えた ・流れとしては、クライアントアプリケーションからAPIにCSVを投 げて、Lambdaでデータ抽出&DBに登録 実装方針の検討
・CSVデータ登録処理用のAPIを1本追加することをまず初めに考えた ・流れとしては、クライアントアプリケーションからAPIにCSVを投 げて、Lambdaでデータ抽出&DBに登録 実装方針の検討
・リクエスト/レスポンスのペイロードサイズの制約 API Gateway (REST API):最大10MB Lambda :最大6MB →ペイロードサイズの制約は引き上げ不可 →登録データが最大件数(20万)の場合、CSVファイルのサイズは15MBな のでファイル送れない、、
→よってこの設計では達成できない API Gateway×Lambdaの課題
・フロントエンドから直接S3にファイルをアップロードし、S3の 作成イベントでLambda実行 →S3はオブジェクトの作成や削除に対してイベントを発行できる →イベントの通知先としてLambda、SNS、SQS、 Amazon EventBridgeを指定できる、今回はLambdaを指定 解決方法
・ペイロード上限の壁は気にしなくて良くなった →S3は1ファイルアップロードにつき最大5GBまで可能 →よってCSVの容量が増えた場合にも5GBまでは対応できる(柔軟性UP) Amazon Web Services ブログでも、大容量ファイルのアップロードに は今回の構成がオススメされている https://aws.amazon.com/jp/blogs/news/large-size-files- transferring-by-serverless-s3presignedurl-and-clientside-
javascript/ 立ちはだかるペイロード上限の制約クリア
プライベートS3バケットへのアクセス方法
・インターネットから直接アクセスできないように設定されたS3バケッ ト ・用途 機密データなどユーザーに公開したくないデータの保管 プライベートS3バケット
・プライベートなバケットに対してセキュアにアクセスできるよう、 S3へのアクセス権を一時的に他のユーザーに付与する仕組み ・有効期限があるURLなので、万が一漏洩しても被害は最小限 →今回はクライアントアプリに署名付きURLを一度渡して、その URLにPOSTすることでセキュアなアップロードを実現 S3署名付きURL
最終的なアーキテクチャ
まとめ ・ S3を経由させることでAPI GatewayとLambdaの制約回避 ・イベント駆動(非同期)にすること柔軟性が生まれる ・CSVに限らずファイルアップロードのさまざまなの処理に流用でき る設計 ・今後もいろんなユースケースでサーバーレスサービスを活用してい きたい
ナレッジ共有+AWSサーバーレスに入門した話に お付き合いいただき、ありがとうございました! これからサーバーレスに挑戦する方々へのヒントや 励みになれば幸いです。