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
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running ...
Search
Daisuke Garaike
August 04, 2026
Programming
860
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
430
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
730
立川で超かぐや姫!について話したい / Talking Cosmic Princess Kaguya! in Tachikawa
contour_gara
1
460
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
iOSDC2026登壇資料.pdf
riofujimon
0
160
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
170
What We Talk About When We Talk About XP
m_seki
2
630
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
170
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
350
Building an Out-of-Order CPU
latte72
1
780
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.9k
速習iPhone Duo対応
yuukiw00w
1
510
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
290
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.3k
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
710
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
The Pragmatic Product Professional
lauravandoore
37
7.4k
For a Future-Friendly Web
brad_frost
183
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Game over? The fight for quality and originality in the time of robots
wayneb77
1
280
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
720
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
810
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
A designer walks into a library…
pauljervisheath
211
25k
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