全2890文字

 米Amazon Web Services(アマゾン・ウェブ・サービス、AWS)が2022年7月12日(米国時間)、データウエアハウス(DWH)をサーバーレス化した「Amazon Redshift Serverless」の一般提供を開始した。ユーザー企業は容量設計が一切不要でDWHを利用できる。

 サーバーレスと言っても、本当にサーバーがなくなったわけではない。これまでのAmazon Redshiftは使い始める際に、ユーザー企業はDWHクラスターで使用する仮想マシンのサイズなどを決める必要があった。仮想マシンの使用料金は1時間単位の従量課金で、クエリーを実行していない場合であっても料金が発生していた。

 それに対してAmazon Redshift Serverlessの場合は、ユーザー企業は仮想マシンのサイズなどを決める必要はない。クエリーの実行時に自動的にノードが起動して処理が始まり、処理が終わればノードは自動的にシャットダウンされる。クエリーを実行する時間の分だけ料金が発生する。

仮想マシン台数の考慮などが不要に

 これまでユーザー企業はDWHで管理するデータの容量や、使用するクエリーの複雑さ、同時に実行されるクエリーの数や種類などを勘案して、Amazon Redshiftで使用する仮想マシンのプロセッサー数やメモリー容量などを決める必要があった。Amazon Redshift Serverlessによってユーザー企業は、こうした面倒な設計が一切不要でDWHを利用できるようになった。

 Amazon RedshiftはAWSが2013年に始めたDWHのクラウドサービスだ。その歴史の中でもAmazon Redshift Serverlessは集大成に位置付けられるサービスのようで、AWSは2022年6月に開催された国際的なデータベース学会の「SIGMOD 2022」で、Amazon Redshiftの10年の歴史を振り返る講演を行っている。その講演や付随して発表された論文からは、Amazon Redshiftの内部構造がこの10年で一変していることが分かった。

 Amazon Redshiftはもともと、オープンソースソフトウエア(OSS)のデータベース管理システム(DBMS)であるPostgreSQLを使ってMPP(Massively Parallel Processing、超並列処理)型のDWHを開発していたスタートアップの米ParAccel(パーアクセル、当時)からライセンスを受けて作られたものだ。

 Amazon Redshiftが2013年に始まった当初の内部構造はまさにMPP型で、複数台のノードによってDWHクラスターを構成していた。ノードの種類はクエリーを処理するコンピュートノードだけで、DWHのデータは各ノードのローカルディスクに分散保存されており、同じノード上でデータ保存とクエリー処理が行われていた。クエリーの処理性能やDWHの容量はノードの台数に応じて増減する仕組みだった。

コンピュートとストレージを分離

 Amazon Redshiftの内部構造が大きく変わったのは2019年のことだ。この時、クエリーを処理するコンピュートノードと、データを保存するストレージレイヤーが分離された。ストレージレイヤーは「Redshift マネージドストレージ」と呼ばれる別のクラスターとなった。

 Redshift マネージドストレージは、高速なSSDを搭載したサーバーのクラスターである。実はAmazon Redshiftにおけるデータの最終的な保存先(永続化ストレージ)はAmazon S3で、Redshift マネージドストレージはAmazon S3からデータをコピーし、分析しやすい形式で保管する。コンピュートノードはデータをAmazon S3から直接読み込むのではなく、より高速なRedshift マネージドストレージから読み込む。コンピュートノードにも内蔵SSDがあるが、こちらは一時的なキャッシュとして使用する。