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
Django with AWS native services.
Search
Kosei Kitahara
January 12, 2018
Technology
77
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Django with AWS native services.
Django AWS native なサービスとして開発する
Kosei Kitahara
January 12, 2018
More Decks by Kosei Kitahara
See All by Kosei Kitahara
Twelve-Factor Python (Django) Application with Docker
surgo
0
490
Other Decks in Technology
See All in Technology
Running Kotlin + Quarkus with Lambda
nealle
1
3.8k
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
310
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
120
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
640
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
980
継続的なAIコスト最適化
bgpat
1
350
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
270
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
120
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
790
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
930
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Tell your own story through comics
letsgokoyo
1
1.1k
Unsuck your backbone
ammeep
672
58k
So, you think you're a good person
axbom
PRO
2
2.2k
How to build a perfect <img>
jonoalderson
1
6.1k
Docker and Python
trallard
47
4.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Prompt Engineering for Job Search
mfonobong
0
520
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Transcript
Django with AWS native services Django を AWS native なサー
ビスとして開発する By Kosei Kitahara (@Surgo)
今日話すこと 前回のおさらい ‑ Twelve‑Factor App テクノロジー スタック With DynamoDB With
Kinesis Firehose With Redshift
前回のおさらい Twelve‑Factor App として作っている ロー カルで動作するサー ビスと同等のサー ビスがプロダクションで もそのまま動作する アプリケー
ション構成
アプリケー ション構成 主に以下の2 つの WebApp からなる Track: エンドユー ザー の環境、
行動情報を収集 (High latency) Report: 環境や行動情報の可視化 (Low latency) 主に以下の2 つの Worker キュー からなる Aggregate: Track の情報を Report で参照可能なデー タ形式へ 変換 (High Latency) Screenshot: スクリー ンショットの取得など (Low latency)
テクノロジー スタック ( 抜粋)
利用している AWS Native Service ( 抜粋) Application Load balancer ECS
(with Application Auto Scaling) Aurora (Auto Scaling for Replicas) ElastiCache DynamoDB (Auto Scaling) SQS (Auto scaling) Redshift with Kinesis Firehose (Auto scaling)
テクノロジー 選定基準 Auto Scaling!!1 Maintenance free (managed & auto upgrade)
Work locally Work with Django native (none customized) apps django‑rest‑framework django‑registration‑redux django‑storages etc...
Aurora/Redshift 最初からシャー ディングにより書き込みを分散 まだ Aurora Multi‑Master がプレビュー なので Redshift の同時クエリー
実行数制限 https://github.com/uncovertruth/django‑horizon/ Django のデー タベー スバックエンド Aurora: 標準の MySQL ( ちょっとカスタマイズ) Redshift: https://github.com/shimizukawa/django‑redshift‑ backend Redshift 用にクエリー をチュー ニング ( 主に DISTKEY) https://github.com/onysos/django‑composite‑foreignkey
ElastiCache しょうがないけど Auto Scaling がない Auto discovery 対応のバックエンドを利用 https://github.com/uncovertruth/django‑elastipymemcache Double
write & Double read Maintenance 時間をずらした2 クラスター で双方自動更新 カジュアルに再起動 ( しないけど) そのうち DAX に移行したい
DynamoDB Amazing! (Performance, cost, maintenace free) Object Mapper https://github.com/pynamodb/PynamoDB For
local dev & testing https://github.com/spulec/moto Factory‑boy なども _ b u i l d をカスタマイズしそのまま利用 そのうち DAX & Global region へ以降する
Kinesis Firehose django form や django‑rest‑framework serializer の validation ‑>
save 機構をカスタマイズするのみ local なら直接 sqlite へ、 本番なら firehose 経由で Redshift へ という用に切り分け https://github.com/spulec/moto を利用し、 想定する API へのリク エストと引数をテストしている 現在テスト稼働で 600Krecords/hour/shard を挿入
Lesson learned Auto scaling さまさま ( 常時監視対象が大幅に減る) APM が重要 Auto
scaling しないものは自前でなんとかする Django の枠をなるべくはみ出ない Aurora と DynamoDB は世界を救う
Future tasks boto の https リクエストのオー バー ヘッドが高い DynamoDB は
DAX を利用する SQS や DynamoDB のオー トスケー ルが追いつかない ( スパイク) スケジュー ルで頑張るのと母数を増やす ( みんな頑張って~)