11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PostgreSQLAdvent Calendar 2022

Day 16

今年1年、alloyDBに魅せられた話

Last updated at Posted at 2022-12-15

今年1年、alloyDBに魅せられた話

これは、PostgreSQL Advent Calendar 2022の16日目の記事です。

今年はGoogle Cloud AlloyDBが一番興味深く、ちょこっとだけ触ってみたのでまとめてみました

はじめに

2022/05/12 Google Cloud Blog に衝撃的な記事が掲載されました
Google I/O での発表でした

今は日本語訳もありますね

 社内のSlackチャネルでも色々盛り上がってるしPreviewで無料ということもあり、触ってみようと決意したのでした
 Blogは英語でしたので、DeepLで翻訳しつつ読んでいたのですが何が特徴なのかがよくわかりませんでした

 2022/12/15に、GAリリースとなったようです

AlloyDBの特徴(Blogより)

  • PostgreSQLとの完全な互換性により、ワークロードに柔軟性と真のポータビリティを提供
  • 優れたパフォーマンス、トランザクション ワークロードでは標準のPostgreSQL の 4 倍高速
  • 高速のリアルタイム分析情報、標準の PostgreSQL に比べて最大 100 倍高速な分析クエリ
  • 高価なライセンスも不透明な I/O 料金も発生しない、透明で予測可能な料金設定
  • 機械学習対応の自動パイロット システムによる簡素化された管理

ゴールデンウィーク前だったら、触って見る時間も確保しやすかったのに
AI/MLをどんな感じで使ってるんだろ?

2022/05/31 第33回 PostgreSQLアンカンファレンス@オンライン

 さっそく alloyDB を触ってみたということで登壇がありました
 先を越された感(ていうか、その方の熱量(ポスグレ愛)の違いで当たり前ですが)があり、私が行う検証作業も尻を叩かれまくった感じでした
 発表後2週間で、要点を得た検証結果の発表はすごいな~と感銘しました

 そして、次回のPostgreSQLアンカンファレンス@オンラインで発表することを決意したのでした

2022/07/29 第34回 PostgreSQLアンカンファレンス@オンラインで登壇しました

検証内容

大したことはやってないです

  • 環境構築までの手順や気になるところ
  • クラスター構成の実態
  • 一般的なPostgreSQLとの違い
  • 無料枠とは言いながらの料金感覚
  • 運用面(取り回し)

AlloyDBって

  • クラスター構成が基本形でリードレプリカが作れます
  • 分散ストレージシステムを使うことで、WAL出力の高速化
  • PostgreSQL v14 完全互換

環境構築(deploy)してみた

 読み取りプールありの高可用性 を選択しdeployしました
 コンソール上で、基本設定やクラスタ構成やネットワーク設定をポチポチ
 必要であれば、DBパラメータ(Google cloud の表記だとDBフラグ)も設定できます
 プライマリインスタンス1つと、読み取りプール4つを指定して、クラスタを作成

 クラスタ作成完了まで、15分程度 かかりました

クラウドの環境構築にしては、体感長めです
5台のインスタンスを起動していると思えば、そんなもんかも

接続検証

psql接続

 GCE(Compute Engine)を1台立ち上げて、psqlをインストールして接続しました
  psql -h [IPaddress] -U postgres
 普通に繋がりました(当たり前ですが)

pgAdmin4

 psqlのSQL結果でもよかったのですが、pgAdmin4を使ったほうがビジュアル的にわかりやすいかな?とpgAdmin4で接続してみました
 psql用にGCEを立てたので、サーバモードのpgAdmin4をインストールして接続しました
 IAPやSQL-Proxyを真面目に立ち上げればよかったのですが、GCE に外部IP付け、http,https の通信許可しpgAdmin4を起動することにしました

インターネット上にむき出しになるのであまりよろしくないです
作業が終わる都度、インスタンスを停止してました

 pgAdmin4でAlloyDBに接続するのは特別な操作は不要で、一般的なPostgreSQLへ接続する手順で、さくっと接続できました

AlloyDB の固有情報

 g_alloydb というテーブルが作成されていました管理情報などを登録しているのだろうと推測します
 それ以外は、initDBしたときに作成されるテーブルなどでした

レプリケーションモードの確認

 SELECT * FROM pg_stat_replication
 SQLを実行すると、普通に、結果を返しました

レプリケーションモードを確認するのに必要なパラメータの抜粋です

DB パラメータ
max_wal_senders 50
wal_level replica
max_logical_replication_workers 4
synchronous_standby_names (設定無し)

 設定から確認すると非同期型のストリーミングレプリケーションであることがわかりました

非同期型なのか?は自身が無かったです
アンカンファレンスでは、問いで発表すると、どなたかがお答えいただける安心感があります

そして利用料(2022/06/09 - 2022/07/10)

 検証後にAlloyDBのインスタンスは起動状態で放置しました

SKU Cost
AlloyDB Cluster Database Storage in Iowa AlloyDB ¥1
AlloyDB Instance RAM Usage in Iowa ¥214,528
AlloyDB Instance vCPU Cores in Iowa ¥158,214

 検証目的で個人で払える金額では無いですね~~~(法人でも無理ゲー)

GCEを5インスタンスほど1ヶ月間立ち上げっぱなしと考えればそこまで高額では無い気もします

ここまでのまとめ

  • 普通のpostgreSQL
  • Read Onlyだが、Horizontal scaling が、1click で実現できる【🐇🐇🐇🐇】
    • ⇒ Read Replica を手作業で作成すると結構手間がかかる
  • Primay は、CloudSQLと同様に、Large Machine が必要そう
  • Managed Service ではあるが、運用保守は手がかかりそう(環境構築は簡単)
    • ⇒ 自動でプールは増えないみたい
  • ACIDが必須なら、インフラエンジニア不要でクラスター環境を利用できそう
  • バックエンド処理で、GET は Read-Replicaへ、PUT/POST/DELETE は Primary へアクセスすれば、超高速になれる?
  • GCE / CloudSQL / pg-k8s で運用開始して(DB移行は発生するが)alloyDBへ移行するpathは、簡単に作れそう
  • データ移行にbasebackup は使えなさそう

ほぼ同じ内容で 2022/08/20 GCPUG Hiroshima ~夏の陣~でLT登壇しました

そして気づいたこと

 LTとはいえ、発表前に復習しておこうと、クラウド管理画面を開くと月額利用予定額が3万円以上と表示されていました!
 いつの間に、GAになったの?(内々には2022/H2以降って聞いてたのに!?)とびっくり・ドキドキしながら確認を進めました

 何かやらかしたのか?と確認しましたが、DBパラメータなどは触っておらず、ネットワーク設定がもにょもにょだからハックされたか?と思いログを確認しましたが、アクセスは無かったので、一安心しました
 InfoメッセージでWALの同期メッセージと、レプリカのkeepalive に関するメッセージが怒涛のごとく出ていました
 2022/08/03 以降から SKULog Volumeに 1日あたり50GByte以上のログ書き込みが発生していました

ログストレージの課金は比較的安価ですが、忘れがちですね
利用する上でこんなにログ課金されるのはちょっと考えものだな?と思いました

 GCPUG Hiroshima に Googleの方にも登壇いただいたので、LTの最後で 使用料はログの部分も考慮が必要ですよね? と問いかけておきました

 取り急ぎ、ログの保存期間を5日間に変更しておきました

追って沙汰がありました :scream:

 Google Cloud から AlloyDBの課金はGoogleが想定しているものではないとのこと と連絡がありました

 弊社はGoogle Cloud に対してワケアリではありますが、GCPUGのオーガナイザーなのが強いのかわかりませんが、こちらから問い合わせしていないのに、Google Cloud側から連絡があったのは衝撃でした

 事実関係の確認meetが開催されることになり、操作ログなどを事前に提出しました
 レプリケーション状態を確認するために色々触っていたので、何かやらかしたのか?とドキドキしてmeet参加しました
 Google Cloud からの回答は、ログ出力量が増えたのは、alloyDBの不具合によるもの でした

 半泣き状態:sob:でしたが安心しました

 折角の機会と言う事で、個人的な意見にはなりましたが、AlloyDBに対する期待などをお話させていただきました

2022/11/11 PostgreSQL Conference Japan 2022

プラチナスポンサーが Google Cloud という事で、AlloyDBのお話が聞けるかも?と参加しました

基調講演 Evolving PostgreSQL for the cloud

 PostgreSQLに対するGoogle Cloudの考え方がメインのお話でした
 やはり Hot なので AlloyDBに関する発表が一番時間を取られていました

 分散ストレージの利用に関する発表で、検証したときに理解できなかったことが、理解できるか?と思いましたが、やはりよくわかんなかったです

あまりにも説明が専門的すぎて、随時通訳の方も通訳しきれない部分があったみたいでした

 PostgreSQLの互換性について、バージョンアップには追従していく方針であるとの説明がありました
 開発当初はv13だったが、Previewリリースにはv14へアップデートを行ったとのことでした
 最新リリースから半年は遅れず追従したいと言われていたと思います

 先日の事実関係確認のmeetにいらしてた方をお見かけしたのでお声がけしたところ、発表者にご紹介いただけました
 AlloyDBのProduct Managerとお話できる折角の機会だったのに、英語出来ない問題(舞い上がって日本語もおぼつかない状況)で悔しい思いをしました

最後に

AlloyDBは、PostgreSQL完全互換のマネージメントサービスとして、Enterprise領域でも十分利用できるものと思います

 従来であれば、クラスター環境を作るには高度な技術者が必要でした
 また、運用するにも高度な技術者を保持し続ける必要がありました
 環境構築する技術はサービスへ置き換えられて行きますが、運用中に何が起きているのか?を理解するには、やはり知識と経験が必要と考えます

 AlloyDBは投稿日時点で、無料お試しは終わっているみたいです

個人的な所感

 今年1年もPostgreSQLやAlloyDBを通じて色んな人との繋がりが増えました
 技術者としては、新しい技術やサービスに、そろそろ追いつけなくなってきていると感じています
 AlloyDB発表以降、各社が検証結果やサービス内容の記事を発表されていました
 推しの天使さまにはかないませんでしたが、いち早く情報を発表できたことを今年の成果として自負したいと思います

そして、こちらのリポジトリは、Google Cloud の AlloyDBなのでしょうか?

11
1
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
11
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?