クラウド工房 Powered by Amazon Web Services

  • 03-3342-9620
  • 受付時間 9:00~18:00 定休日:土日祝

クラウド工房 Powered by Amazon Web Services

menu
9:00~18:00(平日)

Database ロードバランサー「ScaleArc」

blog50_2_000

Database ロードバランサー「ScaleArc」

皆様、こんにちは。タイガー・ジェット・シンです。最近ブログの記事の投稿が出来ずに、私の記事のファンの皆さまには大変寂しい思いをさせております。大変申し訳ありません。(いるかどうか不明ですが。)

 さて、今回皆様に是非、ご紹介したい製品がありまして、久しぶりの記事の投稿となります。(記事の投稿を怠っており、会社の人の冷たい視線が気になると言う事もあります。)先日弊社のHPでもニュースリリースをさせて頂きましたが、弊社では今回新たにScaleArcと言う製品を販売させて頂く事になりました。今回はそのScaleArcと言う製品に関して是非皆様にご紹介をさせて頂ければと思います。

AWSでOracle Databaseをスケールアウトさせたいと言う悩み。

 弊社はもともとOracle DatabaseとAWSに強い、と言う触れ込みで活動をしております。

blog50_2_001

AWSをご利用中のお客様からよくこんな相談を頂きます。

「AWSではOracle RACは動かないのか?」
「AWSでOracleを含めたDBをスケールアウトするにはどうすればいいのか?」

 AWSではマルチキャスト通信やVIPはサポートされておらず、Oracle RACを作る為にはこれらの機能が必要であり、Oracle RACの構築をするのは非常に難しい状況です。
 また、AWSの記事で「Oracle RACが動かせます」との記事がありましたが(たしかトンネリングの機能を利用していた気がします。)これを本番のシステムで稼働させるためには、まだまだサポートの問題など越えなければならない壁が沢山ありそうです。

 そこで、弊社も色々検討しました。AWS稼働させることができるOracle RACの代わりになるような、スケールアウトの構成はできないものか。。。するとこんな事に気付きました。

① Oracle RACは動かないが、Oracle DataGuardは問題なく可能

Oracle DataGuardは、マスターのDB(プライマリDB)の他に、レプリカのDB(スタンバイDB)を起動させて、何か問題が起これば、レプリカDBをマスターDBとして利用する事が出来る(主にBCPの目的で利用される)機能です。AWSでEC2上にOracle Databaseを構築した場合、マルチAZでこの機能を利用します。

② Oracle DataGuardにはActive DataGuardがある

Oracle DataGuardの機能にはActive DataGuardと言う機能があります。これはレプリカDBを単純なレプリカとして利用させるだけでなく、読み取り専用のDatabaseとして利用できるよと言う機能です。
 このActive DataGuardを使って、上手くAWS上でDatabaseのスケールアウトを出来ないものか、と弊社は考えました。ただこの場合、こんな問題にたどり着きました。

・どうやってアプリケーションの改修なく、書込のSQL(write SQL)と読込のSQL(READ SQL)を振り分けよう
・レプリカDBを増えたときにもなるべくアプリケーションの改修をしたくない

Databaseロードバランサー「ScaleArc」

 Active DataGuardだったら、上手くAWS上でもOracleのスケールアウトに成功しそうだが、前述した悩みからアプリケーションに大きな改修がかかるのではないか?実はこんな悩みを簡単に解消してくれる製品があるのです。それが今回の記事のタイトルにもなっている「ScaleArc」。
blog50_2_002

ScaleArcはDBサーバとAPサーバの間で機能するロードバランサーのような働きを行ってくれます。ただ、これはただのロードバランサーではありません。様々な機能を有しており、先ほどの課題などを一挙に解決してくれるソフトウェアなのです。
blog50_2_003

ScaleArcを導入する事で、システムには大きく4つのメリットを享受できると言われています。

・ScaleArcの監視によるDatabaseの自動フェールオーバー機能
・DBメンテナンスにおけるDBダウンタイム時間を0にする「0ダウンタイムメンテナンス」
・Databaseのスケーラビリティーの向上
・アプリケーションのパフォーマンス改善

DatabaseがOracle Active DataGuard構成の場合、アプリケーションサーバーとDBサーバとの間にScaleArcを入れるのみで、アプリケーションは改修をすることなくこれらのメリットを享受する事が可能なのです。
※ScaleArc自体にOracle Active Dataguardの様なレプリケーションの機能はありません。

機能その①「READ/WRITE SPLIT」

 ではScaleArcではどのような機能が搭載されており、先ほどご説明したようなメリットをシステムに与えるのでしょうか?ここではScaleArcの代表的な機能をご紹介します。その1つめが「Read/Write SPLIT」です。
blog50_2_004

Oracle Active DataGuardではマスターDB(プライマリーDB)にしか、書込みSQL(WRITE SQL)は実行できず、レプリカDB(スタンバイDB)には読み取りSQL(READ SQL)のみしか実行できません。
このRead/Write SPLIT機能ではアプリケーションはSQLをScaleArcに対して実行するようにします。すると、ScaleArcではそれが、WRITE SQLかREAD SQLなのかを判断し、WRITE SQLの場合は必ず、マスターDB(プライマリDB)へ、READ SQLはレプリカDB(スタンバイDB)へ実行するようにバランシングしてくれます。

blog50_2_005

アプリケーション側はScaleArcに接続をして、とりあえずSQL実行を行うだけで良いので、SQLの実行するデータベースを気にする必要がありません。まさに、アプリケーションの改修なく、Databaseのスケールアウトを実現しています。また、この機能はレプリカDB(スタンバイDB)が増えた場合にも、ScaleArcに登録するだけなので、アプリケーション側に何か変更を行うなどの必要はありません。

弊社でもこの機能の検証を行いました。
結果は1nodeの場合、約8000TPS程度の処理だったものが、
「Active DataGuard+ScaleArc」の構成で3nodeにて実行した場合、23000TPS前後までTPSの上昇を確認できています。Databaseサーバーの数が3倍になった為、約3倍の処理を捌けるようになったと言えます。

機能その②「Auto Failover」

blog50_2_006

ScaleArcでは自分の配下のDatabaseを常に監視しています。ScaleArcでデータベースの異常を検知するとScaleArcは自動でマスターDB(プライマリDB)を切り離し、レプリカDB(スタンバイDB)をマスターDBへと昇格させます(FailOver)。一般的にFailOverの最中、アプリケーションはDBにアクセスできず処理が異常終了すると言う動きになりますが、ScaleArcでは、この時にもアプリケーションクエリは受け付けています。レプリカDB(スタンバイDB)がマスターDB(プライマリDB)へと昇格するまで、ScaleArc上にクエリをキューイングし、昇格が完了し、実行可能な状態になったら、ScaleArc上でキューされているSQLを順次実行していきます。

弊社でもこの機能の検証を行いましたが、
① DBの異常を検知
② マスターDB(プライマリDB)の切り離し
③ レプリカDB(スタンバイDB)をマスターDB(プライマリDB)へ昇格
④ 処理の再開
これら4Stepの処理が完了するまで、およそ7秒でした。もちろんアプリケーション側では処理が一時的に無応答な状態となりましたが、エラーにはならず、7秒後には再び処理を開始しています。

最後に

 本当はScaleArcの機能はもっとたくさんあるのですが、あまりに長くなりそうなので、今回はこの代表的な2つの機能を紹介いたします。
 もちろんScaleArcはAWSだけではなく、オンプレミスでも稼働可能です。ご興味、ご質問などありましたらお気軽にお問合せ下さい!
それではまた。

  • このエントリーをはてなブックマークに追加
山口正寛(1984年生まれ おうし座/2013年入社)

山口正寛(1984年生まれ おうし座/2013年入社)

株式会社システムサポート 東京支社 クラウドコンサルティング事業部所属。
AWSソリューションアーキテクト。
社内では主に、データベース(特にOracle、Redshift)を担当。DBA、コンサルタントなどを経験。最近減量中。

株式会社システムサポート 東京支社 クラウドコンサルティング事業部所属。
AWSソリューションアーキテクト。
社内では主に、データベース(特にOracle、Redshift)を担当。DBA、コンサルタントなどを経験。最近減量中。


ニュース&ブログ

トピックス

∧