Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
運用しているアプリケーションのDBのリプレイスをやってみた
Search
KMiura
February 17, 2025
Technology
1
1.1k
運用しているアプリケーションのDBのリプレイスをやってみた
2025/02/19「私の個人開発自慢LT Night」
KMiura
February 17, 2025
Tweet
Share
More Decks by KMiura
See All by KMiura
Amazon Rekognitionを使ったインターホンハック
miura55
0
98
Pythonでルンバをハックしてみた
miura55
0
200
あなたの知らないクラフトビールの世界
miura55
0
380
Storage Browser for Amazon S3を触ってみた + α
miura55
0
240
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
240
あのボタンでつながるSORACOM
miura55
0
150
Postman Flowsで作るAPI連携LINE Bot
miura55
0
400
Lambdaと共に歩んだAWS
miura55
3
890
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
300
Other Decks in Technology
See All in Technology
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
300
次世代AIコーディング:OpenAI Codex の最新動向 進行スライド/nikkei-tech-talk-40
nikkei_engineer_recruiting
0
140
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
1.8k
Databricks Free Edition講座 データエンジニアリング編
taka_aki
0
2.6k
「違う現場で格闘する二人」——社内コミュニティがつないだトヨタ流アジャイルの実践とその先
shinichitakeuchi
0
330
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
240
Data Hubグループ 紹介資料
sansan33
PRO
0
2.6k
Digitization部 紹介資料
sansan33
PRO
1
6.5k
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
470
ソフトとハード両方いけるデータ人材の育て方
waiwai2111
0
150
コールドスタンバイ構成でCDは可能か
hiramax
0
130
【Agentforce Hackathon Tokyo 2025 発表資料】みらいシフト:あなた働き方を、みらいへシフト。
kuratani
0
120
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
410
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
180
GraphQLとの向き合い方2022年版
quramy
50
14k
Exploring anti-patterns in Rails
aemeredith
2
220
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
78
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
1
350
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.5k
KATA
mclloyd
PRO
33
15k
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