22
9

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 3 years have passed since last update.

本記事は PostgreSQL Advent Calender 2019の3日目です。

本記事のテーマ

Amazon Web Service RDS for PostgreSQL に比べて圧倒的に記事が少ないことと、Google Cloud Platform を触れる機会に恵まれていることもあり、Google Cloud Platform Cloud SQL for PostgreSQLお触りしましたので書きます。
※2019/12/03現在の記事です。

前置き

Old Type の ITエンジニアなので、本題以外の記述がやたらめったら多いです。適宜読み飛ばしてください

  • 投稿の経緯(思い立ったが吉日)

 2016年12月 アジアで初めてのpostgreSQLカンファレンス pgconf.Asia 2016 が開催されました。
 私はその当時、お客さまと一緒にOSS活用を推進し、PostgreSQL を使用したシステム構築に携わっておりました。DBエンジニアの自負心がはみ出し、調子にのって、ライトニングトークに申し込み、投票の結果、皆様のおかげで登壇することができました。
 登壇を期にいろんな方とつながりを持ち、また、セミナーや勉強会などでお話をお伺いする機会も増えました。
 OSSのコミュニティやその思想には大変感謝しており、日本のPostgreSQL界隈のイケメン神さまCUDA神さま猫拉麺神さまなど、多くの神さまとお話させていただける機会に恵まれたと思っております。
 この度、(LTでしたけど)登壇した12月3日と言う記念日に、advent Calendar を、勢いあまってポチりました。

  • 投稿の経緯(真面目な経緯)
    Amazon Web Service RDSに関する情報は、いっときの赤いMSDBMS を凌駕するくらい豊富にありますが、GCP/CloudSQLに関する情報は少ないです。
    現職は Google Cloud Platform(GCP) をガッツリ使ったサービス開発をしております。
    GCPに触れる機会に恵まれていることからも、些細なことでも書くことで誰かのお役に立てることになれば。と思い立った次第です。
    ちなみに、現職のサービスはNoSQLで実装されており、RDBMSを全くと言っていいほど使ってません。
    DBMSに賭けた人生、忘れ去ってなるものか! と、自分を奮い立たせるためにもポチりました。
    稚拙ではございますが、少しでも活動の端に居続けさせていただければと思います。

本題

  1. Cloud SQL for PostgreSQL について(2019/12/03現在)
  2. インスタンス登録してみた
  3. 追加でpgAdmin4で接続してみた
  4. まとめ

1. Cloud SQL for PostgreSQL について

サービス概要ではなく、PostgreSQL に関する部分について記載します。

無料枠

  • AWS/RDS
    • Aurora, MySQL, MariaDB, Oracle, MS-SQLServer が選択できます
    • 無料枠は db.t2.micro+SSD20GB+DBSnap20GB で 750時間/月を12か月利用できます
  • GCP/CloudSQL
    • DBMS は、MySQL, PostgreSQL が選択できます。アルファですけど、MS-SQLServerもお試し出来ます
    • $300 までか12か月間が無料
    • core数は8coreが上限で、それ以外は課金上限まで制限はないです
    • 冗長化やレプリケーションなどもお試しできます
    • Always Free プログラムがありますが、CloudSQLは対象外みたいです

選択できるPostgreSQLのバージョン

  • AWS/RDS
    原則、コミュニティでサポートされているバージョン・リビジョンは全て選択可能です
  • GCP/CloudSQL
    9.6のみです:sob:。11.1はベータ扱いです(2019\12\11訂正)
    11.1 と 9.6 が選択できます。
    選択肢は少ないですが、迷いはなくなります!

その他

  • 入門ガイドが分かりやすい
    最初にやらなくちゃいけないことなど、作業の順序を意識しやすい構成になっています

2. インスタンス登録してみた

最初にしておくこと

  • Googleアカウントの登録
    GmailやAndroid端末をお使いの場合のGooglePlayのアカウントで大丈夫です
  • 本人確認用のクレジットカード
  • Google Cloud Platform へアカウント登録
    トップページから無料トライアルボタンをポチって登録してください

プロダクションで利用するときは、プロジェクトの設定やユーザIDや権限管理を登録したり、仮想プライベートネットワークを設計実装したりといろいろあります。
お試し程度で利用する場合、なんとなくいい感じに設定してくれます。

Google Cloud Platform CloudSQL インスタンスの登録

パブリッククラウドサービスのインスタンス作成なんて、書くほどのことじゃないですけど

  • いきなりクラウドコンソールから作成してもいいのですが、入門ガイドから進むと、操作の前後で何が起きるのか。など凄く分かりやすいです
    AdvCal-Fig3.png

  • インスタンス登録は、3つの操作方法で登録することができます

    • CONSOLE --> WebのGUI操作
    • GCLOUD --> ローカルにCloud SDKを導入し、CLIで操作
    • CURL --> curlコマンドなどを利用した、WebAPIで操作

今回はCONSOLEで作成しました

  • インスタンスID,postgresユーザのパスワード、リージョンとゾーン、データベースバージョンなど設定して登録

  • 約1分でインスタンスが起動します
    AdvCal-Fig4.png

  • インスタンスにラベルを付けておくと、請求書にも内訳として記載されたり、後々いろいろ活用できます
    AdvCal-Fig5.png

  • 起動出来たら、クラウドコンソールでインスタンスの詳細を確認します

    • AWSコンソールもそうですが、見慣れるまでどこに何があるのか?把握しづらいものですね

AdvCal-Fig6.png

その他

  • パブリッククラウドでサービスを起動すると、Old Typeな元インフラエンジニアとしては、職を失った気持になります
  • OSカーネルパラメータまで触ってゴリゴリチューニングしなくても済むのはビジネスとして良いですが、基本のきを知っているとパブリッククラウドであっても色々役に立つことがあります
  • OS上のファイルシステムバッファーとDBMSのバッファーをキャッシュヒット率を見ながら、絶妙なメモリ配分をするとかは、ロストテクノロジーになっていくと思うと寂しさあります

3.追加でpgAdmin4で接続してみた

クラウドコンソールは良く出来ていて一般的にPostgreSQLを運用するには十分だと思います
ただ、テーブルの統計情報だったり、DDLの確認だったり、使い慣れたコンソールが必要なこともあります
そして、 Old Typeな元インフラ園児エンジニアには、自分のPCで管理したくなる衝動に駆られるものです
WindowsPCでなくても利用できるようになったpgAdmin4をubuntuに導入し、接続してみました

ubuntuへの導入手順はググればたくさん出ますが、また別途記事にできたらと思います

パブリッククラウド側の設定

Google AppEngine(GAE)や Google Compute Engine(GCE)などのサービスで利用するのは簡単です(今回は省略)
GCP/CloudSQL for PostgreSQLでは、外部アプリケーションとの接続にいくつかの方法があります。

  • パブリックIP(グローバルIP)を直接アクセス(平文通信とSSL通信が選択出来る)
  • Cloud Shell を利用したpsql実行
  • Cloud SQL Proxy を利用した接続
    個別にファイアーウォールを設定しなくてもパブリッククラウド間接続やオンプレミスアプリケーションとの接続を簡単かつ安全に行えるサービスです
  • JDBCソケットライブラリによる接続

今回はパブリックIPを直接アクセスする方法で行いました

  • ネットワーク(ファイアーウォール)の設定。5432ポートを誰に見せるのかのルールを追加します
    • とりあえず、0.0.0.0/0 で、来るもの拒まずで設定しました
  • クラウドコンソールのインスタンスの詳細にある接続設定でパブリックIPを選択し、自分のプロバイダから払いだされたグローバルIPアドレスをえいやー!と24bitマスクで設定しました。PPPoEが再起動すると使えなくなりますけどね

pgAdmin4の起動

  • pgAdmin4では、serverの追加で、クラウドコンソールのインスタンスの詳細に表示されるパブリックIPアドレスを直設定します
  • 設定したserverを選択すると、postgres ユーザのパスワードが聞かれます
  • それ以降はオンプレミス環境と同じ設定操作でいとも簡単に接続できました:relaxed:
  • CloudSQL固有のオブジェクトも見ることができたり、色々ムフフ:yum:な感じです
  • オンプレミス環境にpgAdmin4 を起動しておけば、ハイブリッドなクラウド環境も統合的に管理できそうです
  • Import/Export もそのままできそうなので、リフトアップも従来のサーバ移行と同じ感覚で出来そうです
    AdvCal-Fig7.png

4.まとめ

  • 入門ガイドのまとめ方がとても分かりやすく、作業手順としても十分活用でき、新たな人への指導書・引継書として十分活用できる
  • Google Cloud Platform では、postgreSQLのバージョンの選択肢は少ないがゆえに、迷いは少なくて済む
  • クラウドサービスであっても、pgAdmin4がすんなりつながるところから、postgreSQL には変わりない(当たり前)
  • 環境構築はパブリッククラウドなのでとても簡単。~~Old Type のインフラエンジニアは不要になってくるが、~~簡単がゆえに接続設定やインスタンスの配置、ユーザIDや権限管理(IAM)を丁寧に設計しないと、すぐ乗っ取られそう
  • 今回は書いてないですが、contribには一般的なツールはそろっており、派手な拡張はできそうにないですが、一般的なpostgreSQLとしては十分活用できる
    • ここでMe tooすると、拡張モジュールを追加してもらえるかもしれません(追加されると信じてます)
  • 今回は書いてないですが、ほとんどのDBパラメータは設定可能で、ある程度のチューニングはできそう

5.裏まとめ - ネタだけ考えて、やってみたら余りにも簡単すぎて何も書くことが無くなってしまった - もう少し、postgreSQLの機能的なところを書きたかったですが、時間切れでした - 今回の投稿に際し、少し高めな目標を自分で設定し、自分を追い込んで作業すると効率は最大限になりますね - お金を貰うプロとしてエンジニア歴30年を超えました。年寄の部類ですが、日々精進、日々研鑽で活躍されている皆々さまについていけるところまで必死についていこうと思います - 余りにも実のない投稿になってしまったことを反省しお詫び申し上げます
22
9
2

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
22
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?