運用しているアプリケーションのDBのリプレイスをやってみた
by
KMiura
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
運用しているアプリケーションのDBの リプレイスをやってみた KMiura(@k_miura_io)
Slide 2
Slide 2 text
自己紹介 • 三浦 耕生(こうき) • Acallのバックエンドエンジニア • JAWS UG名古屋&神戸 運営 • 鯱.py 運営 @k_miura_io koki.miura05
Slide 3
Slide 3 text
今年もお守り当てました!
Slide 4
Slide 4 text
• 3年ぐらい前にDjangoの初学者向けに教材 を作成した • Techpitで公開中 (https://www.techpit.jp/courses/189) • 今回はこの教材用に公開しているサンプルア プリの話 今回の話のきっかけ&ちょっと宣伝
Slide 5
Slide 5 text
Jobpit • ジョブカン風の勤怠管理アプリ • 打刻以外にも、打刻修正申請、 申請承認(管理者向け)の機能 がある • 唯一個人開発で公開している アプリケーション
Slide 6
Slide 6 text
DEMO https://www.jobpit.kmiura.org/
Slide 7
Slide 7 text
システム構成 (初代)
Slide 8
Slide 8 text
特徴 • すべてLightsailで完結 • AWSでまともに触った ことがあるのが Lambdaしかなかった ので手軽に動かせる ように構成 • 途中でSSHで手動デ プロイするのが面倒に なってコンテナに移行
Slide 9
Slide 9 text
問題点 • DBで月15ドル払うのは微妙(Containerと合わせると23ドル程度) • 頻繁にアクセスされるわけでも無いので40GBもいらない
Slide 10
Slide 10 text
リニューア ル構成
Slide 11
Slide 11 text
特徴 • コンセプトは「脱・AWS 初心者」w • ECSは高すぎるので AppRunnerを採用 • DBはTiDBを採用
Slide 12
Slide 12 text
TiDBとは? • MySQL互換の分散型データベース • 柔軟でスケーラビリティを備えた分散アー キテクチャ • TiDB Serverlessならメールアドレス一つで 無料ではじめられる https://docs.pingcap.com/ja/tidb/stable/tidb- architecture
Slide 13
Slide 13 text
TiDB Serverless無料枠 クラスタ数 5つまで 行ストレージ 25GB 列ストレージ 25GB リクエストユニット 250MB https://pingcap.co.jp/tidb-serverless-pricing-details/
Slide 14
Slide 14 text
インポート • mysqldumpを使用したDB移行に対応 • データはローカルやS3にあるCSVをインポート してテーブル作成することもできる • Djangoだと複数のテーブルを使用するため、 今回はSQLクライアントを使用してdumpを 行った • 念の為、DB移行作業中はメンテナンスモード にしておいた
Slide 15
Slide 15 text
詰まったところ • Djangoで使っていたMySQLクライアントの バージョンにズレがあったことで移行元のDB で使ってた文字コードが使えずエラーになった • mysqlclientのバージョンを調整したら問題な く接続できた
Slide 16
Slide 16 text
使用量
Slide 17
Slide 17 text
TiDB Serverlessに移行して良かったこと その1 • DBに一度でもアクセスがあった週には Weeklyレポートがメールで送られてその週に 実行されたSQLを確認できる • レポートが送られる=誰かに使ってもらってい ることがわかって一人ニッコリ(^^) • 最近は大体一人でデバッグでアクセスしてい るだけのことが多いw
Slide 18
Slide 18 text
TiDB Serverlessに移行して良かったこと その2 • 定期的なバックアップをサポート • 無料版は1日1回決まった時間の定期バックアップに対応しているが、従量課金プランに するとバックアップの設定もカスタムできる
Slide 19
Slide 19 text
TiDB Serverlessに移行して良かったこと その3 • ブラウザ上でSQLを叩けるエディタを提供している • Chat2QueryでAIが目的に沿ったSQLを生成してくれる • エラーが出たSQLの修正もAIがやってくれる
Slide 20
Slide 20 text
おまけ • LightSailの時と比べてランニングコストが上 がったw • App Runnerのスペックを上げたのと、Route 53 やSecrets Mangerを導入したのが原因 • AWS Community Builderのクレジットを使って いるので実質無料(今のところは)
Slide 21
Slide 21 text
まとめ • TiDBにリプレイスしてランニングコストを下げて安定稼働を実現できた • MySQL互換でMySQLのアダプターが問題なく機能した • Weekly ReportなどDBの運用にあると便利な機能が充実している
Slide 22
Slide 22 text
END