【AWS】Amazon Aurora（Serverless v2）の構築手順

# はじめに
こんにちは。株式会社ジールの[@yakisobapan](https://qiita.com/yakisobapan)です。
業務でAuroraの構築に少し触れましたので、自身の理解度チェック含めて構築手順を記します。

# 目次
 - Auroraとは
 - 構築するDB情報
 - 構築手順
 - DBの確認
 - 所感

# Auroraとは
Amazon Aurora は、MySQL と PostgreSQL の完全な互換性を持つ、クラウド用に構築されたリレーショナルデータベース管理システム (RDBMS) です。
by [Amazon Aurora](https://aws.amazon.com/jp/rds/aurora/)

一言で説明すると
マルチAZ配置による高可用性を実現した、クラウド運用に最適化されたDBです。


よく比較されるAmazon RDSとの比較を以下にまとめています。
（厳密にはRDSのDBエンジンの1つがAuroraですが・・・）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/4161a419-e51b-8e86-cb1d-ee3afcd0c112.jpeg" width=80%>

# 構築するDB情報

- エンジンタイプ
Amazon Aurora（PostgreSQL 互換エディション）
- DBインスタンスクラス
Serverless v2
- マルチ AZ 配置
行う

# 構築手順

**①RDSコンソールへアクセス**
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/87e69dc8-f519-e396-5730-d5ff70495798.png" width=100%>

**②「データベース」タブよりデータベースの作成を選択**
※①のメイン画面からも作成可能です
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/27c27c66-e6bb-06c3-b581-e5f0db46a27c.png" width=100%>

**③データベース作成方法を選択**
 - 標準作成
インスタンスサイズやAZ構成など、構築項目を全て自身で設定します。
 - 簡単に作成
各種設定をAWSが推奨する設定で自動構成してくれます。
自動設定された項目は作成後に変更できます（一部のみ）。

　今回は標準作成を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/7874bbeb-4c48-6af0-02c4-60f16b8e94cb.png" width=100%>

**④エンジンのオプション設定**
以下を選択します。
- エンジンのタイプ
Amazon Aurora
- エディション
PostgreSQL 互換エディション
- バージョン
Compatible with PostgreSQL 14.4

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/a880dea9-f3fa-766b-9eff-602ed778226c.png" width=100%>

**⑤テンプレート**
- 本番稼働用
マルチAZ構成オプション、DBの削除保護の有効化などの項目が自動でONになります。
- 開発/テスト
自動設定される項目は特にありません。

今回は開発/テストを選択します。

**⑥設定**
- DBクラスター識別子
DBクラスター名を入力
- マスターユーザー名
DBに接続する際のユーザーID
- マスターパスワード/パスワードを確認
DBに接続する際のパスワード

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/b7fd92ab-ac2e-35f0-cb91-d88fe1a363dd.png" width=100%>

**⑦インスタンスの設定**
それぞれ以下を設定します。

- DBインスタンスクラス
サーバーレス
- 容量の範囲
最小ACU 0.5（1GiB）~  最大ACU 1（2GiB）

Auroraの自動スケール範囲を指定しています。
ACU(Aurora Capacity Unit)・・・インスタンスのメモリ容量

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/8a6f5564-1355-a87e-ddd7-98e0a843c6c4.png" width=100%>

**⑧可用性と耐久性**
- マルチ AZ 配置
別の AZ で Aurora レプリカ/リーダーノードを作成するを選択

上記を選択することによりDB作成時に自動的にレプリカが作成され、マルチAZ構成を行えます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/d38d2989-4ece-2e5a-299c-e1614240600d.png" width=100%>

**⑨接続**
それぞれ以下を設定します。

- コンピューティングリソース
EC2 コンピューティングリソースに接続しない
- ネットワークタイプ
IPv4
- Virtual Private Cloud (VPC)
Default VPC
- DB サブネットグループ
Default VPCに対応しているサブネットを選択
- パブリックアクセス
あり
- VPC セキュリティグループ (ファイアウォール)
既存の選択
- 既存の VPC セキュリティグループ
default
- データベースポート
5432

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/3a800ae3-add2-f90e-55e9-8967d2775b8e.png" width=100%>

**⑩Babelfish の設定**

今回は使用しませんが、Babelfish機能を使うことで
SQL Server用に書かれたSQL（T-SQL）を実行することができます。

ユースケースとしては以下があります。
・疑似的にSQL Serverとして使用する
・SQL Serverから移行を行う際の利用

**⑪データベース認証**
パスワード認証を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/23f4ae34-507c-37ab-191d-977f369ce3d2.png" width=100%>

**⑫モニタリング**
今回使用しませんが、概要は以下となります。

- Performance Insights
DBに発生している負荷などの問題をダッシュボードで視覚化する機能

- 拡張モニタリング
CloudWatchを用いて見ることのできるログが増えます。
※RDSでは無料だがCloudWatch側で課金

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/2c8b5ea1-dc0e-d4f6-b1ad-1ce59de593f3.png" width=100%>

**⑬追加設定**

- 最初のデータベース名
作成するDB名を入力
※入力しないとDBは自動作成されません

- DB クラスターのパラメータグループ
デフォルト
- DB パラメータグループ
デフォルト
- フェイルオーバー優先順位
フェイルオーバーをコントロールしたい場合に有効化します。（今回は指定なし）
- バックアップ保持期間
7日間
- スナップショットにタグをコピー
スナップショットを作成した際にDBに付加されているタグをコピーします。
- 暗号を有効化
無効
- ログのエクスポート
PostgresSQLに準拠したログが出力されます。（今回は無効）
- マイナーバージョン自動アップグレードの有効化
無効
- メンテナンスウィンドウ
メンテナンス期間をコントロールしたい場合に使用します。（今回は無効）
- 削除保護の有効化
本番環境など削除したくないDBに対して利用します。（今回は無効）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/c3b9c196-38bb-da38-ec84-d6d938dcda11.png" width=100%>

- 最後にデータベースの作成を選択します。

# DBの確認

 - DBクラスターが作成されます（数分~十数分程度）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/72573697-1edc-b1a9-9314-a32a5a919489.png" width=100%>

- クラスターが作成されると緑色でバナーが表示されます
右上の「接続の詳細を表示」には、接続時に使用する情報が記載されています。
・ユーザー名
・パスワード
・エンドポイントURL

※一度緑バナーを閉じると再度確認できないので注意が必要です

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/2ec20dbe-dfff-4dbd-7407-ed148d970130.png" width=100%>

- しばらくするとライターとリーダーのインスタンスも作成が完了します

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/6e3a85a5-e9c4-abc1-a9b5-144c4685b823.png" width=100%>

- 今回作成したDBの基本情報

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/06b5e43e-7fbf-0c50-455b-7582e1dde6ae.png" width=100%>

- 作成したDBに接続できるか確認
A5:SQL Mk-2を使用してPostgres SQLの直接接続で繋いでみます。
作成時に表示される接続情報を使用します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/aff9a0a2-80e6-4907-b3a1-e4619a4215a3.png" width=100%>

- テスト接続を行います。
問題なく繋げたら以下のようなメッセージが表示されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/99c1d03f-46a0-30e7-1236-9060977c442b.png" width=100%>

- SQL文が実行できることを確認

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2737731/4546c0ca-1f35-9630-0d34-9e19450bea87.png" width=100%>

# 所感

今回Aurora Serverless v2の構築手順に着目しましたが
まとめる中で改めて理解できた機能もありましたので
深堀しなかった機能（Babelfish、Performance Insights）についても
調査、動作確認をしてみたいと思います。

***
株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください：
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area