概要
- 2022/12/13 に GCP より AlloyDB for PostgreSQL が GA したというニュースが発表された。
- 以前より気になってはいたのだが、今回はこの AlloyDB for PostgreSQL についてをざっくりまとめながら検証をしていこうと思います。
- そして T村さん GCP アカウント手配ありがとうございます。w
AlloyDB for PostgreSQL
- AlloyDB for PostgreSQL とは、要求の激しいエンタープライズレベルのデータベースワークロードに向いている PostgreSQL 互換のデータベースサービスです。
特徴1
- 標準の PostgreSQL と比較した時のパフォーマンステストで AlloyDB は トランザクションで4倍以上、分析クエリで最大100倍以上早かったと公式ブログで伝えています。
- また、Amazon の PostgreSQL 互換サービスと比較して 2 倍の速度でトランザクションを処理できるとも伝えています。驚きですね。
特徴2
- AlloyDB は、メンテナンスを含めて99.99% のSLAを提供しています。
- データベースのサイズや負荷に関係なく、ほとんどのデータベース障害を数秒以内に自動的に検出して復旧すると明言しています。
- また、インスタンスのサイズ変更やメンテナンスにおいてデータベースが中断されない構造になっているとも言われていますね。
特徴3
- 冒頭でもお話ししたように、標準的な PostgreSQL と比較すると最大100倍以上の速度で分析クエリを実現するようです。
- これは、スキャンと集計を高速化するためにカラム型でメモリにデータを格納しているからのようですね。
特徴4
- 不要なコストを抑えることができます。
- 価格の算出方法がドキュメントにあるように予測可能で、独自のライセンスや不透明な I/O 料金みたいなものはありません。
特徴5
- マネージドなDBサービスなら当たり前だとは思いますが、AlloyDB はデータベースのパッチ適用、バックアップ、スケーリング、レプリケーションを自動的に処理してくれます。
- ただ、他と違うことが一点。
- それは、従来の PostgreSQL におけるバキューム管理、ストレージとメモリの管理、分析の高速化を行うためにワークロードを機械学習にかけストレージ全体でデータを整理してくれるようです。
使用できるリージョン
- asia-northeast1 (東京)
- asia-southeast1 (シンガポール)
- europe-west1 (ベルギー)
- europe-west3 (フランクフルト)
- us-central1 (アイオワ)
- us-west4 (ラスベガス)
料金
- 2022/12/13 になったものの、2022/12/31 までは 一定の利用であれば無料で使えるようです。
- 「Fair usage limits」が定められているので、そちらの条件は下記のドキュメントをご参照ください。
- じゃあ、2022/12/31 以降はどうなるかというと、AlloyDB for PostgreSQL の構成要素に依存し使用した分で課金されます。主にCPU、メモリ、ストレージ、ネットワークなどが料金に関係してくる要素です。
- 詳しくは上記のドキュメントをご参照ください。
検証してみた
- AlloyDB のアーキテクチャ的な解説記事は別途書かせていただきます。
- ということで、早速試してみましょう!
はじめに
- まずはGCPにログインし、AlloyDB、Compute Engine、Resource Manager、Service Networking API を有効にする必要があります。
クラスターとインスタンスの作成
- GCP のコンソール画面からクラスターページに移動します。
- いくつかクラスタタイプの選択を求められていますね。
- ここでは、高可用性としましょう。
- 「続行」を押すと次はクラスターの構成情報の入力を求められます。
- 諸々入力を求められるので、入力していきます。
- 1つ特徴的なのが、データベースのバージョンですね。PostgreSQL 14 互換がデフォルトで選択されており、変更できなさそうでした。
- ネットワーキングの設定が完了すると、「プライベートサービスアクセス接続は必須です」というラベルの付いたダイアログが表示されます。
- 「接続の設定」をクリックすると下記のようなモーダルが表示されます。
- 今回は、[自動的に割り当てられた IP 範囲を使用する] を選択します。
- 次にプライマリインスタンスのマシンスペックとID名を求められるので、入力していきます。
- マシンの値には、8 vCPU、 64 GB を使っちゃいましょう。w
VPC 内に VM インスタンス を作成する
- そしたら次は、Compute Engine よりVMインスタンスを作成していきます。
- 「インスタンスを作成」をクリックします。
- 踏み台のインスタンスになるので、まあいい感じに作っていきましょう。w
VM インスタンスに psql をインストールする
- VM インスタンスが作成されると下記のように表示されます。
- なので、SSH でインスタンスに入っていきます。
- ちなみにインスタンス にある「SSH」をクリックいただければブラウザからアクセスできます。
- インスタンス内でpsqlクライアントをインストールしていきます。
sudo apt-get update
sudo apt-get install --yes postgresql-client
新しいインスタンスの プライベート IP アドレスを確認する
- AlloyDB の画面に戻り、先ほど作成したリソース名(インスタンス)を選択し、プライベート IP アドレスを確認します。
- 今回だと、「10.100.0.2」となっていますね。
インスタンスに接続してデータベースを作成する
- ここまできたらあとは、作成した VM インスタンスから AlloyDB のインスタンスに接続するだけです。
psql -h [IP_ADDRESS: 10.100.0.2] -U postgres
CREATE DATABASE guestbook;
\c guestbook
- 作成したデータベースにテーブルを作成し、データを INSERT していきます。
CREATE TABLE entries (guestName VARCHAR(255), content VARCHAR(255),
entryID SERIAL PRIMARY KEY);
INSERT INTO entries (guestName, content) values ('first guest', 'I got here!');
INSERT INTO entries (guestName, content) values ('second guest', 'Me too!');
- 最後に、INSERT したデータを確認してみましょう。
- いい感じですね!
SELECT * FROM entries;
参考文献