今年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日間に変更しておきました
追って沙汰がありました
Google Cloud から AlloyDBの課金はGoogleが想定しているものではないとのこと
と連絡がありました
弊社はGoogle Cloud に対してワケアリではありますが、GCPUGのオーガナイザーなのが強いのかわかりませんが、こちらから問い合わせしていないのに、Google Cloud側から連絡があったのは衝撃でした
事実関係の確認meetが開催されることになり、操作ログなどを事前に提出しました
レプリケーション状態を確認するために色々触っていたので、何かやらかしたのか?とドキドキしてmeet参加しました
Google Cloud からの回答は、ログ出力量が増えたのは、alloyDBの不具合によるもの
でした
半泣き状態でしたが安心しました
折角の機会と言う事で、個人的な意見にはなりましたが、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なのでしょうか?