#reco_tech oracleからauroraへ feat. 開発しかやってこなかったエンジニア
TRANSCRIPT
© RecoChoku Co.,Ltd. Proprietary and Confidential
株式会社レコチョク酒井 修平
05/03/2023
Oracle から Aurora へfeat. 開発しかやってこなかったエンジニア
© RecoChoku Co.,Ltd. Proprietary and Confidential
Agenda
205/03/2023
クラブレコチョクという会員サービスをOracle から Aurora へ移行したお話
1. クラブレコチョクとは
2. Oracle から Aurora へ
3. 運用を始めました
4. Aurora の使いどころ
5. Aurora に期待するところ
6. まとめ
© RecoChoku Co.,Ltd. Proprietary and Confidential
クラブレコチョクとは
305/03/2023
• どんなサービスか?
– レコチョクが展開するサービスへ会員機能を提供する
• 自社サービス
• 協業サービス
– 主な機能
• 会員登録・ログイン• 会員の属性情報管理 (My アーティスト登録 )• セッション管理• 端末管理
© RecoChoku Co.,Ltd. Proprietary and Confidential
クラブレコチョクとは
• 有効会員数:約 1000 万ユーザー
• レコード数:約 2 億レコード
405/03/2023
今年で創業15 周年クマ~
© RecoChoku Co.,Ltd. Proprietary and Confidential
クラブレコチョクとは
505/03/2023
概要
会員システム
WEB
API
他システム
DWH
ここの話
© RecoChoku Co.,Ltd. Proprietary and Confidential
Oracle から Aurora へ
• そもそもなんで Aurora に?
– 高い可用性を担保する必要がある
• 様々なサービスから参照
• 元々 Oracle RAC で運用
– 運用工数を抑えたい
• DB の運用を開発チームに移管 ( 元々は DB を管理するチームがいました )
Aurora は他の RDS と比べて可用性、運用面で優れていた ・ フェールオーバーが短い、ディスクの自動拡張・自動障害検知と復旧 etc..
605/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
Oracle から Aurora へ
※ OracleRAC も検討しました
– EC2 上に OracleRAC をデプロイできるけど、運用コストがかかりそう
– サービス調整がしやすかった
705/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
Oracle から Aurora へ
• どんな対応をした?
– Oracle と MySQL のエンジンの違いを埋めていく
• Oracle で使えていた関数や構文が MySQL では使えない– MERGE 構文、 DECODE 関数、 TO_CHAR 関数 etc..
• パフォーマンスチューニング– Index の追加、 SQL のチューニング
» 性能試験やスロークエリを見ながら性能が出ていない SQL を監視
– 検索用のテーブルを追加» CS で使うユーザ検索で後方一致検索が 10 分以上かかってしまった。。
805/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
Oracle から Aurora へ
• どのように移行した?
– 1 ヶ月ぐらい前からデータ移行を実施。更新データも日時で連携
905/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
Oracle から Aurora へ
– 意外と見落としてしまうかも?
• デフォルトのトランザクション分離レベルが Oracle と違う– Oracle
» Read Commited– MySQL
» Repeatable Read
• 生年月日が未来日の人が。。。– MySQL は 1 から 69 と 70 から 99 の範囲の値を、 2001 から 2069
と 1970 から 1999 の範囲の YEAR 値に変換
1005/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
運用をはじめました
• 見るべきメトリックがわからない
– 元々インフラを管理していた人とかに相談
• 標準的に見るべき項目や閾値を策定してもらう– CPU 、メモリ、クエリ数、スロークエリ、スループット
• ダッシュボードの作成
1105/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
運用をはじめました
• Aurora に合わせた監視内容に
– CPU 使用率が比較的高め• インスタンスリソースをフルに活用する
– CPU 使用率が 95% を超えたことがありました– が、正常に動き続けてました。。
– インスタンスリソースによる alarm をやめる• スループットやレイテンシーの監視のみ
1205/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
運用をはじめました
• Aurora は開発が活発
– 機能追加 (Lambda ・ S3 連携 )
– アップデートによるメンテナンスあり• 8 ヶ月間で 2 回• 監視していたメトリックが突如消える。。
1305/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
運用をはじめました
• 結果的にどうだったか?
– Aurora による障害はこれまで 0
– 性能は問題なし ( チューニングは必要 )
– DB サーバ運用に工数をほとんど割かなくてよい
– メンテナンスがたまにある ( 数秒~数十秒の停止。 8 ヶ月で 2回。 )
1405/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
Aurora の使いどころ
• 稼働中で割と負荷がある DB の移行
– インスタンスタイプが大きいものしかない
– DB エンジンの違いは工数をさいて対応すれば可能
• 運用コストを抑えたい
– 対応コストとの天秤
1505/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
Aurora に期待するところ
• 小さいインスタンスタイプも選択できるようにしてほしい– アクセスの少ないテスト用の環境にも db.r3.large を適用
• PostgreSQL互換がほしい– レコチョクでは PostreSQL を使っているシステムも多い
• 移行がもう少し楽になっていた?
1605/03/2023
© RecoChoku Co.,Ltd. Proprietary and Confidential
まとめ
• オンプレ時代と同等の高可用性を実現
• 対応は必要だが、性能は全く問題なし
• 運用経験がなくても Aurora に任せられる部分がほとんどなので、本来の開発業務に集中できる
1705/03/2023