Warehouseにおいて最も特徴的なアーキテクチャは「3層構造のアーキテクチャ」と述べました。今回はこの「3層構造のアーキテクチャ」がもたらす、さまざまなメリットを説明していきます。Warehouseでは、「1台のコントロールノード」「スケールアウト可能な複数台で構成するコンピュートノード」「60のストレージ」と3層構造のアーキテクチャで構成されています。Warehouseでは他のPaaS型データウェアハウス(DWH)サービスにはない特徴的な機能を実装しています。Warehouseの特徴的な機能を紹介しましょう。Warehouseではデータベースの停止ができます。当たり前のように思うかもしれませんが、実のところ、この機能はクラウド型のRDBMSサービスとしては珍しい機能です。世の中に存在するクラウド型DWH・サービスにはコンピュートノードとストレージが一体型(このようなサービスを2層構造のアーキテクチャという)のものがありますが、そういったサービスでは、データベースを停止したり、即座に起動したりすることはできません。この停止機能のメリットはどこにあるのでしょうか。筆者が担当していたDWHでは、多くの場合、土日の利用者はいません。要するに企業の休日である土日は、バッチなどの処理を除いては、DWHシステムはほぼ利用されることはありません。Warehouseでも同様です。Warehouseを停止させておくことが可能となります。Warehouseはコンピュートノードを停止させても、ストレージのデータが消えることはありません。Warehouseにおいてはコンピュートノードの料金は発生せず、ストレージのみ従量課金が発生します。この機能を使うことにより、コストコントロールを行い、高額になりがちなDWHの料金の最適化を行うことが可能です。Warehouseでは、コンピュートノードを増やして処理能力を増やす(スケールアウト)ことや、逆にコンピュートノードを減らして処理能力を減らす(スケールイン)ことを、瞬時に行えます。これも、データを事前に60のストレージに分割して格納しており、なおかつ、コンピュートノードがストレージと分離しているため可能となっている機能です。Warehouseで3台のコンピュートノードで稼働している場合、各コンピュートノードには20のストレージが割り当てられています。Warehouseを6台のコンピュートノードで稼働するようにコントロールノードを増やす(スケールアウト)場合、内部的には、各コンピュートノードにこれまで20のストレージが割り当てわれていたものを10のストレージへ割り当てられるように、コンピュートノードとストレージの割り当ての変更作業が行われます。コンピュートノードとストレージが一体型のサービスで同様のスケールアウトを行う場合は、現在起動中のサービスとは別にスケールアウト済みのサービスを起動させ、そのサービスに対して内部的にデータの移行を行うという動作となります。このスケールアウトの問題点は、スケールアウトに伴う「データ移行動作中」にサービスが読み取り専用になるなど、ある程度の利用制限を受けてしまう点です。データ量が多くなるにつれて、データの移動量が多くなって移動時間がかかってしまうため、利用制限の時間も長くなります。大規模なDWHでスケールアウトを行う場合は、かなり綿密に業務制限などを行う必要があるでしょう。Warehouseに話を戻すと、スケールアウトの動作は先ほど説明した通り、新しいコンピュートノードを起動させ、ストレージの割り当てを変更するのみです。したがって、スケールアウト自体は非常に高速に行うことができ、その逆のコンピュートノードを減らすスケールインに関しても同様に高速に行うことができます。バッチ処理などで大量の処理能力を必要とするタイミングでは多くのコンピュートノードを起動させ、逆に平常時には少ないコンピュートノードで稼働させるなど、時間帯に応じてコンピュートノードをスケールアウト/インさせれば、処理能力の変更を容易に行えます。この機能もまた、高額となりがちなDWH・サービスのコストコントロールに役立つとともに、「必要な分だけ、必要なリソースを調達する」というクラウドらしい機能です。Warehouseの高い拡張性を象徴する機能として、ストレージの自動拡張があります。コンピュートノードとストレージ一体型のサービスの場合、ストレージが足りなくなったら、コンピュートノードとストレージを合わせて追加しなければならず、スケールアウトの動作を必要とするなどの制約を受けます。Warehouseはストレージの拡張はコンピュートノードとは無関係に自動で実施されます。Warehouseでは、大量データを処理するアーキテクチャだけでなく、高額になりがちなDWH・サービスのコストの問題に対して、柔軟にコントロールできるような伸縮性、拡張性をもったサービスとなっています。Warehouseはいいことずくめに見えますが、一方で不得意な処理もあります。それは小さなクエリが大量に実行されるようなOLTP系のシステムには不向きであるということです。同時接続は1024まで可能ですが、クエリの同時実行は2017年5月時点で最大でも32となります。Databaseのほうが適しています。Warehouseは向いていると言えます。データベースエンジニア。Server、Oracle、MySQL、PostgreSQLなどのデータベースで、小規模から大規模な案件まで数多く経験。現在ではクラウドの流れに逆らうことなく、「データベース×クラウド」をキーワードに案件対応、セミナー活動、執筆活動など幅広く活動中。株式会社システムサポート所属。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。