129 Views
February 25, 25
スライド概要
約2万社の広告を300万のサイトに24時間365日配信するアフィリエイト・ネットワークサービス「A8.net」を提供しています。
従来使用していたAWS環境で生じていたデータベースの課題解決として、OCIへの移行を実施。 基幹データベースとして Autonomous Database 分析基盤としてMySQL HeatWave Database Service を採用しました。
今回は、AWS Aurora から MySQL HeatWave へ移行した理由とその効果を中心にお話します。
【登壇者】
鈴木 誠司 氏
株式会社ファンコミュニケーションズ A8事業部 システム運用課 Tech Lead
HeatWavejpは、MySQL HeatWave の良さを知っていただき、参加者同士でノウハウやナレッジを共有できるユーザーコミュニティです。参加者同士のつながりを深めるため、以下の活動を行ってまいります。 COMMUNICATION *Slackやconnpassを活用したユーザー同士のコミュニケーションの場の提供 EVENT *オンライン/オフラインでのMeetupセミナーや勉強会の開催(隔月程度) SHARING *製品情報や最新アップデート、リリース情報の共有 INTERACT *参加者のコミュニティ・ネットワークやユーザー同士の交流を促進
AWSから 分析基盤を移行!その理由と効果 HeatWavejp 株式会社ファンコミュニケーションズ A8事業部 システム運用課 Tech Lead 鈴木 誠司
おことわり この資料で述べられている 内容・検証結果はあくまで、 2023年4月現在の情報で、 クラウドサービスは常に進化している ので、この限りではありません
自己紹介 • 鈴木 誠司 • 株式会社ファンコミュニケーションズ A8事業部 システム運用課 TechLead • 2011年入社 • A8->情シス->A8 @snicker_jp blog
今日話すこと • 担当するサービス「A8.net」について • サービスの紹介 • サービスの規模感 • システム構成 • 分析基盤にHeatWaveを採用したことについて
「A8.net」について エーハチドットネット
「A8.net」とは? • 株式会社ファンコミュニケーションズが提供する 成果報酬型広告サービス • 「アフィリエイト広告」のサービスプロバイダ • 2000年サービス提供開始
システム構成 他社SaaS (顧客管理等) AWS A8.net 基幹システム 自社データセンター アプリケーション郡 (管理系) アプリケーション群 分析基盤 RDS for Oracle Amazon Redshift データ連携 データ連携 Amazon Aurora 自社拠点 分析ツール プロジェクト HeatWaveに変更
今日話すこと • 担当するサービス「A8.net」について • サービスの紹介 • サービスの規模感 • システム構成 • 分析基盤の移行について
今回のシステム概要 • 広告成果のレポーティング • 現行とは別で新機能としてリリース • 現行のA8レポートにない機能を盛り込む • 多角化されたレポートの提供を目標としている • いろんな切り口での、フィルタや検索
開発者側の要件がかなり厳しく 実現に苦戦していた • 開発者側の要件 • 現行だと1年分のデータしか検索対象にできなかったが、もっと対象期間を長くした い • 数億あるレコードから、複数の条件で検索したい(応答要件1桁秒) • 数億あるレコードから、数百万件を検索し、集計したい(応答要件2桁秒前半) • また、これらを1つのテーブルで実現したい(テーブル分割・DB分割不可) • MySQLでやりたい • Aurora(MySQL)のみで、構築すると不具合が出てしまっていた • 当社が持つデータ設計・シャーディングなどでも、予算内での要件を満たすことが難 しかった • 複雑な構造になって、通常のMySQLコマンドまで数秒では返ってこなくなった • チューニングするのにも時間を要していた上に、効果が得られていなかった
開発者側の要件がかなり厳しく 実現に苦戦していた • 開発者側の要件 • 現行だと1年分のデータしか検索対象にできなかったが、もっと対象期間を長くした い • 数億あるレコードから、複数の条件で検索したい(応答要件1桁秒) • 数億あるレコードから、数百万件を検索し、集計したい(応答要件2桁秒前半) • また、これらを1つのテーブルで実現したい(テーブル分割・DB分割不可) OCIユーザ会で • MySQLでやりたい https://fullenergy-oci.connpass.com/ 「HeatWave」の存在を知る • Aurora(MySQL)のみで、構築すると不具合が出てしまっていた • 当社が持つデータ設計・シャーディングなどでも、予算内での要件を満たすことが難 しかった • 複雑な構造になって、通常のMySQLコマンドまで数秒では返ってこなくなった • チューニングするのにも時間を要していた上に、効果が得られていなかった
MySQL Database Service - HeatWave MySQLの後ろで インメモリデータ分析エンジンである 「HeatWave」が稼働 * 日本オラクル資料より
OCIjpで知って、社内で展開 • いろいろ見た 自分なりに 理解してから 社内展開した コロナ禍で イベント オンライン配信されてて 日本語最新情報手に入れるのに助かった https://www.youtube.com/watch?v=jXexICBzlLA https://www.youtube.com/watch?v=TIC7UvKLFDE https://speakerdeck.com/oracle4engineer/heatwaveru-men
スペック • Aurora(MySQL) • 構成(移行前) • db.r5.xlarge(vCPU4,Mem32GB) • Storage 4TB • MySQL Database Service - HeatWave • 構成 • MySQL.HeatWave.VM.Standard.E3 • CPU Core Count 16 • Memory 512GB • Storage 4TB
MySQLとの互換性がありがたかった • Embulkを使った 他DB(Oracle,Redshift)からのデータロード • embulk-output-mysqlがそのまま使えた • アプリケーションからの接続 • 接続先を変更するだけ
Auroraからの移行は、簡単だったが • Aurora(MySQL)から移行 • mysqldumpでダンプファイル作成 Amazon Aurora MySQL Database Service with HeatWave • ダンプファイルをインポート 以上
Redshiftからのデータ流し込みには苦戦した • Redshiftからのデータ流し込みに苦労した • Aurora(MySQL)時代は、パフォーマンスが出ていないため 全件ロードできていなかった Amazon Redshift MySQL Database Service with HeatWave • HeatWaveに移行後は、パフォーマンスが出てきたので Redshiftから全件ロードした • これが、めちゃくちゃ大変で数日間Redshiftを起動しっぱなしで 移行したため、普段コストの倍かかった。。。 (Redshiftはコスト高なので、普段は夜間停止している)
ようやく準備はできた 検証してみよう!
とにかく速くなった • Auroraでは • テーブル設計が甘い(当社の設計) • シャーディングしても辛い • DBインスタンスサイズを上げるしか無い サイズアップしても、要件を満たすのが大変 (性能・予算) 60秒以上もしく は実行できない クエリもあった • HeatWaveなら • このままの状態でも!予算の範囲内で実現 • 数秒で結果を返すことを実現するプロダクト 最大10倍の性能向上を 予算の範囲内で実現 どのクエリも 10秒以内で実行可能 Aurora HeatWave
費用は? 当社の環境では 約48%コスト削減 • Aurora(MySQL) • 構成(移行前) • db.r5.xlarge(vCPU4,Mem32GB) • Storage 4TB 218601.45円/月 • コスト:$1619.27x135円=218601.45円/月 • HeatWave • 構成 • • • • • 113908.23円/月 MySQL.HeatWave.VM.Standard.E3 Aurora HeatWave CPU Core Count 16 Memory 512GB Storage 4TB コスト:63,138.82(クラスターノード) + 31,569.41(MDS) + 19,200.00(ストレージ)= 113908.23円/月 AWSは1ドル135円は2023年3月の請求レート
新しいシステム構成 他社SaaS (顧客管理等) 他社SaaS (顧客管理等) AWS A8.net 基幹システム AWS A8.net 基幹システム 自社データセンター アプリケーション郡 (管理系) アプリケーション群 分析基盤 RDS for Oracle Amazon Redshift データ連携 アプリケーション群 Amazon Redshift 自社データセンター アプリケーション郡 (管理系) Amazon Aurora データ連携 OCI A8.net 基幹システム 自社拠点 分析ツール Autonomous Database データ連携 自社拠点 分析基盤 分析ツール MySQL Database Service with HeatWave
補足 • すでにMySQLを利用しているシステムでは 移行性も高く、選択肢として検討してみることをおすすめします • MySQL → MySQL Database Service – HeatWave • 今回の実績をもとに他システムも移行を検討しています • まずは、データベースに詳しくなくても使えます • チューニングの学習コストを払っている時間がない場合など、 急ぎのパフォーマンス向上が期待できると考えています
まとめ • 今回は、新しいサービスの厳しい要件を満たすために Oracle Cloud Infrastructureで提供されている 先進的なHeatWaveサービスを活用しました ・今はAWSにもHeatWaveあるらしい #1 • MySQLの利用感そのままで、とにかく速くなります • 体感できるほどです ※当社データの場合 • 当社の性能要件では、他社MySQLクラウドサービスよりも コストパフォーマンスが良かったです • HeatWaveは圧倒的です(on OCI) • MySQL開発元の安心感 • MySQLもHeatWaveもOracle社が開発している安心感 #1 https://www.oracle.com/jp/news/announcement/mysqlheatwave-on-aws-2022-09-12/
おまけ 事例化ページがあるので よろしければ参照いただければと 思います https://www.oracle.com/customers/fan comi/
ご静聴ありがとうございました 何かの参考になれば幸いです