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
運用しているアプリケーションのDBのリプレイスをやってみた
Search
KMiura
February 17, 2025
Technology
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
運用しているアプリケーションのDBのリプレイスをやってみた
2025/02/19「私の個人開発自慢LT Night」
KMiura
February 17, 2025
More Decks by KMiura
See All by KMiura
Amazon Rekognitionを使ったインターホンハック
miura55
0
140
Pythonでルンバをハックしてみた
miura55
0
270
あなたの知らないクラフトビールの世界
miura55
0
480
Storage Browser for Amazon S3を触ってみた + α
miura55
0
340
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
340
あのボタンでつながるSORACOM
miura55
0
200
Postman Flowsで作るAPI連携LINE Bot
miura55
0
460
Lambdaと共に歩んだAWS
miura55
3
1.1k
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
410
Other Decks in Technology
See All in Technology
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
540
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
290
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
210
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.3k
会社説明資料
persolserverworks
0
9.7k
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
130
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
690
SREでアラート疲れを 解決しよう!
kairim0
1
220
AI時代のPRレビューにどう向き合うか?
kairim0
1
170
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
150
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
150
freeeらしさをAIとともに作る / Creating the freee Experience with AI
ymrl
0
220
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
580
A designer walks into a library…
pauljervisheath
211
25k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The SEO Collaboration Effect
kristinabergwall1
1
590
The Pragmatic Product Professional
lauravandoore
37
7.5k
Designing for humans not robots
tammielis
254
26k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
430
Embracing the Ebb and Flow
colly
88
5.2k
Navigating Team Friction
lara
192
16k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
510
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
Transcript
運用しているアプリケーションのDBの リプレイスをやってみた KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • JAWS UG名古屋&神戸 運営
• 鯱.py 運営 @k_miura_io koki.miura05
今年もお守り当てました!
• 3年ぐらい前にDjangoの初学者向けに教材 を作成した • Techpitで公開中 (https://www.techpit.jp/courses/189) • 今回はこの教材用に公開しているサンプルア プリの話 今回の話のきっかけ&ちょっと宣伝
Jobpit • ジョブカン風の勤怠管理アプリ • 打刻以外にも、打刻修正申請、 申請承認(管理者向け)の機能 がある • 唯一個人開発で公開している アプリケーション
DEMO https://www.jobpit.kmiura.org/
システム構成 (初代)
特徴 • すべてLightsailで完結 • AWSでまともに触った ことがあるのが Lambdaしかなかった ので手軽に動かせる ように構成 •
途中でSSHで手動デ プロイするのが面倒に なってコンテナに移行
問題点 • DBで月15ドル払うのは微妙(Containerと合わせると23ドル程度) • 頻繁にアクセスされるわけでも無いので40GBもいらない
リニューア ル構成
特徴 • コンセプトは「脱・AWS 初心者」w • ECSは高すぎるので AppRunnerを採用 • DBはTiDBを採用
TiDBとは? • MySQL互換の分散型データベース • 柔軟でスケーラビリティを備えた分散アー キテクチャ • TiDB Serverlessならメールアドレス一つで 無料ではじめられる
https://docs.pingcap.com/ja/tidb/stable/tidb- architecture
TiDB Serverless無料枠 クラスタ数 5つまで 行ストレージ 25GB 列ストレージ 25GB リクエストユニット 250MB
https://pingcap.co.jp/tidb-serverless-pricing-details/
インポート • mysqldumpを使用したDB移行に対応 • データはローカルやS3にあるCSVをインポート してテーブル作成することもできる • Djangoだと複数のテーブルを使用するため、 今回はSQLクライアントを使用してdumpを 行った
• 念の為、DB移行作業中はメンテナンスモード にしておいた
詰まったところ • Djangoで使っていたMySQLクライアントの バージョンにズレがあったことで移行元のDB で使ってた文字コードが使えずエラーになった • mysqlclientのバージョンを調整したら問題な く接続できた
使用量
TiDB Serverlessに移行して良かったこと その1 • DBに一度でもアクセスがあった週には Weeklyレポートがメールで送られてその週に 実行されたSQLを確認できる • レポートが送られる=誰かに使ってもらってい ることがわかって一人ニッコリ(^^)
• 最近は大体一人でデバッグでアクセスしてい るだけのことが多いw
TiDB Serverlessに移行して良かったこと その2 • 定期的なバックアップをサポート • 無料版は1日1回決まった時間の定期バックアップに対応しているが、従量課金プランに するとバックアップの設定もカスタムできる
TiDB Serverlessに移行して良かったこと その3 • ブラウザ上でSQLを叩けるエディタを提供している • Chat2QueryでAIが目的に沿ったSQLを生成してくれる • エラーが出たSQLの修正もAIがやってくれる
おまけ • LightSailの時と比べてランニングコストが上 がったw • App Runnerのスペックを上げたのと、Route 53 やSecrets Mangerを導入したのが原因
• AWS Community Builderのクレジットを使って いるので実質無料(今のところは)
まとめ • TiDBにリプレイスしてランニングコストを下げて安定稼働を実現できた • MySQL互換でMySQLのアダプターが問題なく機能した • Weekly ReportなどDBの運用にあると便利な機能が充実している
END