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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
KMiura
February 17, 2025
Technology
1.2k
1
Share
運用しているアプリケーションのDBのリプレイスをやってみた
2025/02/19「私の個人開発自慢LT Night」
KMiura
February 17, 2025
More Decks by KMiura
See All by KMiura
Amazon Rekognitionを使ったインターホンハック
miura55
0
120
Pythonでルンバをハックしてみた
miura55
0
220
あなたの知らないクラフトビールの世界
miura55
0
410
Storage Browser for Amazon S3を触ってみた + α
miura55
0
270
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
270
あのボタンでつながるSORACOM
miura55
0
170
Postman Flowsで作るAPI連携LINE Bot
miura55
0
430
Lambdaと共に歩んだAWS
miura55
3
950
Bedrock Knowledge baseを使って今年の上半期のニュースを聞いてみた(リベンジ編)
miura55
0
330
Other Decks in Technology
See All in Technology
終盤で崩壊させないAI駆動開発
j5ik2o
0
300
チームで育てるAI自走環境_20260409
fuktig
0
980
バックオフィスPJのPjMをコーポレートITが担うとうまくいく3つの理由
yueda256
1
300
Bluesky Meetup in Tokyo vol.4 - 2023to2026
shinoharata
0
130
New CBs New Challenges
ysuzuki
1
170
本番環境でPHPコードに触れずに「使われていないコード」を調べるにはどうしたらよいか?
egmc
1
260
ふりかえりがなかった職能横断チームにふりかえりを導入してみて学んだこと 〜チームのふりかえりを「みんなで未来を考える場」にするプロローグ設計〜
masahiro1214shimokawa
0
320
「決め方」の渡し方 / How to hand over the "decision-making process"
pauli
8
1.3k
CC Workflow Studio
seiyakobayashi
0
230
サイバーフィジカル社会とは何か / What Is a Cyber-Physical Society?
ks91
PRO
0
160
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
170
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
2
280
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Six Lessons from altMBA
skipperchong
29
4.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Between Models and Reality
mayunak
3
260
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
760
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Producing Creativity
orderedlist
PRO
348
40k
Ethics towards AI in product and experience design
skipperchong
2
250
Design in an AI World
tapps
0
190
Chasing Engaging Ingredients in Design
codingconduct
0
160
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
290
Technical Leadership for Architectural Decision Making
baasie
3
310
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