10分で、PolarDB for MySQL のセットアップをしてみる

# この記事を読めば、わかること
10分で、PolarDB for MySQLを作成し接続できるようにします。
ステップ・バイ・ステップの図解で、PolarDB for MySQLをセットアップする手順が理解できます。

プリセールス界隈では、「ちょっと、このサービス仕様の動作について、この製品と組み合わせて調べておいて、明日までね」と言うのは、稀によくあって、しかもタイミングよく続く事も稀によくあるので、未来の自分に備忘録として残しておきます (稀によくある、と言いたいだけやん。。。)

# ステップの流れ
全体の流れは、以下の通りです。
1. クラスタ の作成
1. エンドポイント の作成
1. ホワイトリスト の設定
1. 管理アカウント の作成
1. データベース の作成
1. 標準アカウント の作成
1. 接続の確認
1. おまけ 利用後のクラスタ削除

Alibaba CloudのVPC設定やBillingの登録は済んでいる前提で記載します。
最小限の構成で、PolarDB for MySQLをセットアップし、自分のPCからアクセスできる所を目指します。

## 1. クラスタ の作成
PolarDBは、クラスタと呼ばれる単位で生成され、クラスタは「プライマリノード」、「読み取り専用ノード」で構成され、「読み取り専用ノード」は15台までスケールアウトすることができます。

今回は「クイック購入 (Quick Purchase)」でクラスタを作成するので、1ノード構成でセットアップします。
※全部入り環境を、1ノードで構成できるので、動作確認のユースケースではありがたいオプションです。2ノード以上で構成したい場合は、「カスタム購入 (Custom Purchase)」を選択して下さい。

a. PolarDBサービスを選択し、概要メニューから「クラスタの作成」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/d9a9c1b2-8e3a-c0f2-e586-27df9912d303.png)

b.  「クイック購入(Quick Purchase)」の選択、「課金方法」を任意選択(今回は「従量課金」を選択)、リージョンは任意選択(今回は「東京」を選択)、「ノードの仕様」を選択(今回は「2コア4GB(汎用)」を選択)、「従量課金サービスプロトコル」をチェックし、「今すぐ購入する」をクリック。
クラスタが作成されるまで待機 (1分もかからず完了すると思います)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/17ef8141-0d53-eb53-b446-fde817ffa092.png)


## 2. エンドポイント の作成
パブリックのエンドポイントを作成し、インターネットからアクセスできるようにします。

a. 該当クラスタを開き、「アドレス」エリアの「パブリック」にある、「申請」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/2c2d350c-9bc4-fa68-a1e6-19243bd1f6cd.png)

b. 任意のアドレスを指定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/c7fd37a0-220a-507c-e7f6-7146fffadfc4.png)

::: note warn
まれにパブリックアドレスの生成に失敗するので、少し待ってから再度、申請を実施すれば、大体成功します
エラーコードは、「Database.ConnectError」となっていますが、パブリックアドレスの生成に失敗した時にでます。
:::


## 3. ホワイトリスト の設定
今回は、まずは自分のPCからインターネット経由で接続を実施したいので、自分のネットワークのグローバルIPを登録します。
a. 「ホワイトリスト」メニュー の「IPホワイトリストの追加」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/21b2412c-ef50-ca65-3d24-d150679a3ec3.png)

b. 「IPホワイトリスト名」を任意の名前で入力し、「IPアドレス」にIPレンジを、xxx.xxx.xxx.xxx/32 等で設定しましょう。連続入力する場合は「カンマ区切り」で入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/0fe5f071-6765-63c7-38ab-7d6ab24c27c0.png)

:::note info
永続的に、Elastic Compute Service (ECS)等の内部ネットワークから接続する場合はセキュリティグループを利用するのが便利で一般的かと思いますので、用途に応じて、選択しましょう
:::

## 4. 管理アカウント の作成
「アカウントの作成」をクリックし、管理アカウント(Admin)を作成します。
なお「Admin」の名前のアカウントは、予約名なので使えませんのでその他のものにしましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/8ce0de1b-6649-6850-cd5c-2770bfde9235.png)



## 5. データベース の作成
「データベースの作成」をクリックし、任意のデータベース名、文字セットを選択しましょう。
権限付与アカウントは、空白でも問題有りません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/c445bac4-e88b-d667-008f-14ea58bd652b.png)


## 6. 標準アカウント の作成
再度、「アカウントの作成」をクリックし、標準アカウントを作成します。実運用目的のユーザーアカウントを作成すると言う感じですね。
この際に、データベースを選択し、かつ「読み書き」権限を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/be9f92ab-7660-1a13-02fc-dfbcfb1b432b.png)


::: note warn
デフォルトだとRead権限のみなので、必ず、「読み書き」権限を付与しましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/eed77c41-e6c8-a00b-754c-e905d82f2d8a.png)

:::

## 7. 接続の確認
概要画面から、「アドレス」エリアの「パブリック」にある、コピーボタンをクリックして、パブリックネットワークアドレスを取得して下さい。

任意のDBアクセスツール(DBeaver等)から、パブリックネットワークアドレス、ポート番号、データベース名、標準アカウント、パスワードを設定して、接続ができることを確認します。
接続できればOK！その後は、スキーマやテーブル、カラムを作成してデータを格納、取得したりしてみて下さい。

## 8. おまけ 利用後のクラスタ削除
ここからはクラスタが不要になった場合の削除方法です。

a. クラスター 一覧の右端の「操作」から、「さらに表示」をクリックして表示されるメニューから「リリース」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3637906/71fa5bb1-f400-d0f0-2365-649418631c50.png)

b. 「クラスターのリリース」画面から、後日に利用する必要がない場合、「すべてのバックアップをすぐに削除する」を選択します。確認画面が2回、出るので問題なければOKをクリックすると、すぐにクラスタが削除されます。リストからクラスタが削除されたのを確認すれば、削除成功です。

::: note info
用途や継続性に応じて、適切な「バックアップを保持」のオプションを選択して下さい。
:::