GCP Cloud SQL for PostgreSQL v13 をお触りしてみた

本エントリーは[PostgreSQL Advent Calendar 2020](https://qiita.com/advent-calendar/2020/postgresql)の17日目です
# 本記事のテーマ
[前年](https://qiita.com/elhalti/items/389b49d0bee9f31cc1ff) のアップデートと、2020/11/06 にリリースされた v13 でインスタンスを**お触り**してみました。
※2020/12/13時点の記事です
# アジェンダ
1. 昨年からのアップデート
2. インスタンス起動してみた
3. かる～くv13の更新を確認してみた
4. まとめ

# 昨年からのアップデート
- 昨年記事を書いた時点ではv11.1でした。
 - 今年の記事を書いている時点では、v12.4を含め、v13.0まで利用可能でした
 - CloudSQLのリリース情報は[こちら](https://cloud.google.com/blog/ja/products/databases)から確認できます
 - リリース情報の[2020/11/06の記事](https://cloud.google.com/blog/ja/products/databases/cloud-sql-database-service-adds-postgresql-13)で、v13のリリースがアナウンスされました。
 - なので、今回はv13でインスタンスを起動してみました。
- 昨年までは、CloudSQLはPostgreSQLのリリースの追従が遅めだなぁと感じていました。
 - [本家のv13リリースのアナウンス](https://www.postgresql.org/about/news/postgresql-13-released-2077/)から、約1.5ヶ月で追従しています。
 - 新しいバージョンの検証など、クラウドサービスで行えるようになると、かなり楽になるだろうなぁとは思いますが、その点ではまだまだ期間がかかっていると思います。


昨年は、個人アカウントの無料枠で検証しましたが、無料枠は１年間なので、切れちゃってました:sob:
会社から自己啓発用ということで、個人プロジェクトを貸与いただけることになり、本記事では思いっきり使い倒そうと！
> がっつりGoogle Cloudを使い倒す（必要がある:zipper_mouth:）会社なので

しかしながら、deepな検証を行うことも出来ず（私のスキルでは思いつくヨシもなく）、**お触り**程度に利用しました。

# インスタンス起動してみた
インスタンスを起動するまでの操作は、昨年と差はございません。

Cloud SQL での各データベースエンジンで選択できるバージョンです
　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/b53293cb-82cf-8b11-649f-b0276239f99d.jpeg" width=67%>
PostgreSQLで選択できる各バージョンです
　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/0e58e8d7-c9a8-5c04-38a0-60be86c7e89e.jpeg" width=67%>
[PostgreSQLアンカンファレンス](https://pgunconf.connpass.com/event/180912/)で、初心者も登壇できる！的なグダグダでお話したときに、お声が出ていましたDBパラメータですが、Cloud SQLでは`データベース フラグ`と記されています。
　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/8abccfdc-cdb0-8239-04b8-7371c3b0fbcc.jpeg" width=50%>

マネージドサービスですから一部設定できないものもあります。ドキュメントは[こちら](https://cloud.google.com/sql/docs/postgres/flags?hl=ja&_ga=2.80181783.-1410703069.1574057663#list-flags-postgres)
SUPERUSER権限を必要とする操作やEXTENSIONに関することなどが使用できません。
GCP CloudSQL と 標準PostgreSQL の差は[こちら](https://cloud.google.com/sql/docs/features?hl=ja#differences-pg)に纏められてます。

> AWS 4core/16GByte/SSD100GB
CloudSQL 4core/24GByte/SSD100GB
これが最近の標準なの？大きい（古スタックエンジニア/oldType）
aws/RDSの↑を確認してたら、ちょっとびっくり:scream:
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/3c489ff5-5893-e8f1-7b9b-1f8b06883cd1.jpeg" width=50%>
個人利用じゃ無理じゃね？:sob:


<BR>
会社貸与のプロジェクトだけど、ちょこっと**お触り**するだけなので、小さめのインスタンスに変更して作成しました
　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/dbcd7f12-3cc5-e328-6148-5c0eded8f37e.jpeg">


# ゆる～くv13の更新を確認してみた (Cloud Shell)
今回は、ゆる～く更新内容を確認してみます。
ゆる～くなので、`Cloud Shell`から`psql`で確認してみます。
Google Cloud で提供されるCLI `gcloud`コマンドのsqlオプションにより、psqlを起動できます。
コンソールの`→ Cloud Shell `を選択すると画面下部にコンソールが開きます。
　![adv2020-006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/0c686ac8-6ab1-a7a3-aa88-57d11789662d.jpeg)
新しいウィンドウを開くで別タブにコンソール画面が開きます。
　![adv2020-007.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/0117c6a6-1004-73a8-10ba-09ff1c284d0d.jpeg)

## 確認の仕方について
いつも迅速な対応を行われて、すごく参考にさせていただいている[こちら](https://www.sraoss.co.jp/tech-blog/pgsql/13-0/)を参考にさせていただきました。
更新情報から、確認が簡単に行なえ、v13固有の情報を選択しました。

## 確認した内容
- ストリーミングベースのバックアップの進捗状況を報告するpg_stat_progress_basebackup システムビューが追加されました。

> いつだったかの、postgreSQL アンカンファレンスでお話がありました件ですね。

```SQL:
postgres=> select * from pg_stat_progress_basebackup;
 pid | phase | backup_total | backup_streamed | tablespaces_total | tablespaces_streamed
-----+-------+--------------+-----------------+-------------------+----------------------
(0 rows)
postgres=>
```
- ANALYZE の進捗状況を報告する pg_stat_progress_analyze システムビューが追加されました

> こちらも、postgreSQL アンカンファレンスでお話がありました。

```SQL:
postgres=> \dv+ pg_stat_progress_analyze
                                         List of relations
   Schema   |           Name           | Type |     Owner     | Persistence |  Size   | Description
------------+--------------------------+------+---------------+-------------+---------+-------------
 pg_catalog | pg_stat_progress_analyze | view | cloudsqladmin | permanent   | 0 bytes |
(1 row)
postgres=>
```
- 無効なページが WAL によって参照されている場合でもリカバリが継続できるようになりました

```SQL:
postgres=> show ignore_invalid_pages;
 ignore_invalid_pages
----------------------
 off
(1 row)
postgres=>
```

## 確認結果のまとめ（v12.4 と比較してみました）
前述の通り、v13を確かに確認できました。
![adv2020-008.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/e37a0c63-a4fb-c28f-0aca-d1db702d25f0.jpeg)

v12.4の確認結果がこちら。もちろん、v13からの更新なので、すべてエラーになりました。
![adv2020-009.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/9cf9009b-1708-12dd-d7a7-61830b2e1768.jpeg)

# まとめ
- AWS/RDS は 2020/12/13 現在、v13に対応してませんでした。 Google Cloud 推しとしては:relaxed:でした  
- ほんとにv13になってるの？ってかる～く疑問を持ちました。単にバージョン表示で確認するのではなく、更新情報から選択して確認するのもまた、更新されてる感を体験でき、更新差分を読んで見る機会にもなりました。  
- コロナ渦で大変な状況ではあります。地方在住だと、今までカンファレンス聴講は、都市圏へ一泊することになっていましたが、今年はオンラインカンファレンスが沢山開催され、地方と都市の差がなくなったと感じた一年でした。   

 明日は `猫拉麺神`の  @nuko_yokohama さんの投稿です。　　

# 最後に
課金が気になる:sunglasses:
v13とv12.4の２インスタンス分です
> 給料天引きになっていないことを祈ります

![adv2020-010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321061/5b073575-327d-6ebf-fa90-f0c1ee138dc9.jpeg)