LoginSignup
5
2

More than 1 year has passed since last update.

概要

  • 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 を有効にする必要があります。

スクリーンショット 2022-12-15 1.10.23.png

クラスターとインスタンスの作成

  • GCP のコンソール画面からクラスターページに移動します。

スクリーンショット 2022-12-15 1.15.09.png

  • いくつかクラスタタイプの選択を求められていますね。
  • ここでは、高可用性としましょう。
  • 「続行」を押すと次はクラスターの構成情報の入力を求められます。

スクリーンショット 2022-12-15 1.16.09.png

  • 諸々入力を求められるので、入力していきます。
  • 1つ特徴的なのが、データベースのバージョンですね。PostgreSQL 14 互換がデフォルトで選択されており、変更できなさそうでした。

スクリーンショット 2022-12-15 1.19.03.png

  • ネットワーキングの設定が完了すると、「プライベートサービスアクセス接続は必須です」というラベルの付いたダイアログが表示されます。
  • 「接続の設定」をクリックすると下記のようなモーダルが表示されます。
  • 今回は、[自動的に割り当てられた IP 範囲を使用する] を選択します。

スクリーンショット 2022-12-15 1.23.11.png

スクリーンショット 2022-12-15 1.25.14.png

  • 次にプライマリインスタンスのマシンスペックとID名を求められるので、入力していきます。
  • マシンの値には、8 vCPU、 64 GB を使っちゃいましょう。w

スクリーンショット 2022-12-15 1.25.34.png

  • すべての入力を終え、「継続」を選択すると作成が始まります。
    スクリーンショット 2022-12-15 1.27.33.png

VPC 内に VM インスタンス を作成する

  • そしたら次は、Compute Engine よりVMインスタンスを作成していきます。
  • 「インスタンスを作成」をクリックします。

スクリーンショット 2022-12-15 1.39.23.png

  • 踏み台のインスタンスになるので、まあいい感じに作っていきましょう。w

スクリーンショット 2022-12-15 1.41.50.png

VM インスタンスに psql をインストールする

  • VM インスタンスが作成されると下記のように表示されます。
  • なので、SSH でインスタンスに入っていきます。
  • ちなみにインスタンス にある「SSH」をクリックいただければブラウザからアクセスできます。

スクリーンショット 2022-12-15 1.43.52.png

スクリーンショット 2022-12-15 1.48.01.png

  • インスタンス内でpsqlクライアントをインストールしていきます。
sudo apt-get update
sudo apt-get install --yes postgresql-client

新しいインスタンスの プライベート IP アドレスを確認する

  • AlloyDB の画面に戻り、先ほど作成したリソース名(インスタンス)を選択し、プライベート IP アドレスを確認します。
  • 今回だと、「10.100.0.2」となっていますね。

スクリーンショット 2022-12-15 1.50.34.png

インスタンスに接続してデータベースを作成する

  • ここまできたらあとは、作成した VM インスタンスから AlloyDB のインスタンスに接続するだけです。
psql -h [IP_ADDRESS: 10.100.0.2] -U postgres
  • いけましたね!
    スクリーンショット 2022-12-15 1.53.18.png

  • データベースを作成してみましょう

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!');

スクリーンショット 2022-12-15 1.55.14.png

  • 最後に、INSERT したデータを確認してみましょう。
  • いい感じですね!
SELECT * FROM entries;

スクリーンショット 2022-12-15 1.55.35.png

参考文献

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2