Amazon Aurora Serverless の構築手順

Aurora Serverlessは一定時間利用されなくなると自動的にインタンスを落とすことで、
ランニングコストを抑えられるというメリットがあります。このメリットは、一時的に利用するシステムの一端を担うDBとしては最適でした。

先日、期間限定のキャンペーンシステムを構築するにあたり、Auroraを活用する機会がありましたので、構築手順メモとして残しておきます。

リージョン：東京
データベース：Aurora(PostgreSQL互換)
※VPCやサブネットグループ、セキュリティグループに関しては詳しく書きません。

## Amazon Aurora Serverless の構築手順
Aurora公式
https://aws.amazon.com/jp/rds/aurora/serverless/

Amazon RDSの画面からデータベースの作成をクリック。
https://ap-northeast-1.console.aws.amazon.com/rds/home?region=ap-northeast-1#databases:
![a1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/ef96ee6e-1490-3950-cb0d-2918a7dee5df.png)

### データベース作成方法を選択
🔘標準作成 を選択
![a2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/f25b564e-5bbd-1493-853f-a2b6f1e33b9e.png)

### エンジンのオプション
エンジンのタイプ ： 🔘Amazon Aurora
エディション： 🔘PostgreSQL との互換性を持つ Amazon Aurora 
キャパシティータイプ ： 🔘サーバーレス 
バージョン ： [Aurora PostgreSQL (compatible with PostgreSQL 10.12)]

![a3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/8705117b-02a2-f6de-a857-c45c0b46ec8e.png)


### 設定
・DB クラスター識別子 は、任意の名前を小文字で入力。
・マスターユーザー名 は、ログインに使う任意のIDを入力。
・マスターパスワード と パスワードを確認 に、同一のものを入力。
![a4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/96cc3698-d9fc-0994-a1fe-6dfaef1d72f5.png)

### キャパシティの設定
最小 Aurora キャパシティーユニット と最大 Aurora キャパシティーユニット 任意で選択。
※キャパシティーユニットはメモリに相当する項目です。

☐ タイムアウトに達すると、容量を指定された値に強制的にスケーリングします。
　
こちらを有効にすると、実行中のクエリやトランザクションがある場合や、テーブルがロックをされている場合に強制的にクエリを落としてくれます。実行中のクエリがキャンセルされる恐れがあるとのことで、チェックしていませんがAuroraのメリットでもあるので本来は有効にしたい項目です。

☑ 数分間アイドル状態のままの場合はコンピューティング性能を一時停止する。
　
こちらを有効にすると、指定した時間アクセスが無いとインスタンスを自動で停止してくれます。再びリクエストが発生すると、インスタンスを自動で起動します。一瞬でインスタンスが立ち上げるわけではないので、即時レスポンスが必要なシステムで有効にすることはオススメ出来ません。

![a5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/c1ac6411-dbd4-2008-587c-34ce7d065d6a.png)

### 接続
VPC、サブネットグループ、VPCセキュリティグループは、全て既存の設定を利用します。
ここで新規に作成することも出来ますが、適当な名前で自動生成されるのでオススメしません。
![a6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/c95b41d3-5f06-1cfc-8e68-0e489316bbbb.png)

追加の接続設定から、Data APIを有効にしておきます。
![スクリーンショット 2021-01-13 12.25.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/6cc07255-bb99-c5bb-3e09-bf49b49d2e2d.png)


### データベース認証
🔘パスワード認証 を選択。
※この項目は変更不可です。
![a7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/39c384ae-a4a9-907f-3674-413d22153af2.png)

### 追加設定
データベース名を任意で入力します。その他の項目は変更しません。
![スクリーンショット 2021-01-13 12.47.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/319dd378-32af-89c6-3bc9-4c825a6ebbe6.png)


最後に画面最下部の[データベースの生成]ボタンをクリックします。
データベース一覧画面に飛ばされ、データベースの作成が始まるので完了するまで待ちます。
![スクリーンショット 2021-01-13 12.20.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/38fe74c8-dbee-6e8c-3884-3e1543978742.png)

作成したデータベースのステータスが[作成中]→[利用可能]に変われば、作成完了です。
※計測したところ、約3分後に作成されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/bae584dd-1ec9-639f-0eda-249718f47764.png)

## クエリエディターでの接続テスト
クエリエディターで新規作成したDBにアクセスしてみましょう。クエリエディターを使うことで画面上からデータベースに接続し、クエリを発行することが出来ます。構築手順内でDataAPIを有効にしていれば利用可能です。
https://ap-northeast-1.console.aws.amazon.com/rds/home?region=ap-northeast-1#query-editor:

クエリエディターへは、画面左のメニューから遷移出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/4462b9a0-6c47-f11f-4f4f-30b889223cc8.png)

画面遷移するとダイアログが開かれるので、構築時に設定した値を入力し[データベースに接続します]をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/95cf1049-94f8-3516-a46c-c07f163a242d.png)

Data APIが無効になっている場合は、以下のダイアログが表示されるのでData APIを有効化してから再チャレンジしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/ca22fa5e-7aeb-f143-d12e-cc6d51583a50.png)

正常に接続出来ると以下のような画面になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/738154/2aca7898-1f64-3a7b-35cb-21437b54a0f0.png)

エディタにクエリを入力し実行することで、Create文はもちろん自由にクエリを発行出来ます。クエリエディターは機能自体豊富では無いためを普段使いするのには微妙ですが、初回の接続確認や初期構築でのテーブル作成等をさくっとやりたいときに有効かなと思います。

## さいごに
Aurora環境を構築するにあたって作っては壊しを数回繰り返しましたが、
作成から削除まで画面上から全て出来るのでそこまで時間を要しませんでした。

Auroraの新規作成は手順さえ把握していれば1つのDBを構築するために10分もかからないので、
一度も構築したことの無い方は、自身のアカウントを作って一度試して見るのもアリかなと思います。