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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Daisuke Garaike
August 04, 2026
Programming
800
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
https://tamadev.connpass.com/event/395127/
Daisuke Garaike
August 04, 2026
More Decks by Daisuke Garaike
See All by Daisuke Garaike
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
710
立川で超かぐや姫!について話したい / Talking Cosmic Princess Kaguya! in Tachikawa
contour_gara
1
450
AR グラス + ミニ PC で実現する新しいモバイル環境
contour_gara
0
390
TDD 実践ミニトーク
contour_gara
1
440
Spring Boot と AWS S3 を使ったアプリケーションのテスト
contour_gara
0
170
ノート PC に Linux 入れてみたけど結構良かった
contour_gara
0
3.7k
JUnit5 から Kotest へ
contour_gara
0
220
社外での学びを社内に還元したい
contour_gara
1
600
Other Decks in Programming
See All in Programming
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
220
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
410
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
270
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
120
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
アクセシビリティから考える情報設計
high_g_engineer
0
330
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
180
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
36k
What We Talk About When We Talk About XP
m_seki
2
430
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
100
Featured
See All Featured
Paper Plane
katiecoart
PRO
2
53k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
Writing Fast Ruby
sferik
630
63k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
Typedesign – Prime Four
hannesfritz
42
3.2k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
BBQ
matthewcrist
89
10k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
210
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Odyssey Design
rkendrick25
PRO
2
800
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Transcript
S3 を使うアプリケーションを ローカル完結で動かすことに 全力を注いでみた 2026-08-07 多摩.dev #4 Daisuke Garaike
課題 1 AWS が外部サービス
終 制作・著作 gara
LocalStack を使う • Docker • compose.yaml services: app: environment: AWS_S3_ENDPOINT:
http://localstack:4566/ localstack: image: localstack/localstack-pro:latest environment: LOCALSTACK_AUTH_TOKEN: ${TOKEN} 4
課題 2 ブラウザから 署名付き URL が叩けない
署名付き URL • バックエンドを経由せずに S3 のファイルを使える • ブラウザからアクセスする 6
なぜブラウザから署名付き URL が叩けないのか services: app: environment: AWS_S3_ENDPOINT: http://localstack:4566/ • アプリが発行する署名付き
URL は、 http://[BUCKET].localstack:4566/ • もちろん名前解決できない 7
*.localhost.localstack.cloud • localhost に名前解決される ◦ *.localhost.localstack.cloud -> localhost.localstack.cloud -> localhost
8
アプリで localstack に向ける必要がある services: app: environment: AWS_S3_ENDPOINT: http://s3.localhost.localstack.cloud:4566/ localstack: image:
localstack/localstack-pro:latest networks: default: aliases: - s3.localhost.localstack.cloud environment: 9 LOCALSTACK_AUTH_TOKEN: ${TOKEN}
無事にブラウザから署名付き URL が叩ける • [BUCKET].s3.localhost.localstack.cloud:4566 -> localhost.localstack.cloud:4566 -> localhost:4566 ◦
LocalStack のコンテナが 4566 を ローカルにマッピングする必要あり 10
終 制作・著作 gara
課題 3 え? オフラインで動かない?
LocalStack はオフラインでは動かない services: localstack: image: localstack/localstack-pro:latest environment: LOCALSTACK_AUTH_TOKEN: ${TOKEN} •
トークン認証 • 公開 DNS による *.localhost.localstack.cloud 解決 13
LocalStack やめよう • MinIO を使おう ◦ 追記: MinIO は登壇時点でメンテナンスを 終了しているようです。
使用する際は自己責任でお願いいたします。 MinIO の他にも S3 フェイクを実現する サービスはあるので、それらを使うことを 推奨いたします。 14
トークン認証は解決するが、公開 DNS 問題は? • *.localhost は、localhost になる ◦ RFC 6761
“Special-Use Domain Names” (2013) ◦ 外部の DNS に問い合わせずにループバック • MinIO に自分は s3.localhost だと 思わせれば勝ち ◦ [BUCKET].s3.localhost -> localhost ◦ MINIO_DOMAIN で指定可能 15
オフラインでも動くローカル完結アプリの完成 services: app: environment: AWS_S3_ENDPOINT: http://s3.localhost:9000/ minio: image: minio/minio:latest networks:
default: aliases: - s3.localhost environment: MINIO_DOMAIN: s3.localhost 16
S3 は ローカルでかつ オフラインで 動かせる 終 制作・著作 gara