Aurora作成-接続/手動フェイルオーバーによる動作確認/レプリカオートスケーリング/クローン取得
code:sh
DS > サブネットグループ
3つのアベイラビリティゾーンのプライベートサブネットを選択して作成
DS > データベース
データベースの作成
IPv4 VPC CIDR ブロック: 10.0.0.0/24 を選択
p-northeast-1a のサブネット用:
- 10.0.0.0/26
p-northeast-1c のサブネット用:
- 10.0.0.64/26
ap-northeast-1d のサブネット用(3つ目を作成する場合):
- 10.0.0.128/26
code:sh
データベースの作成
フル設定
認証情報管理
- AWS Secrets Manager で管理 - 最も安全
クラスターストレージ設定
- Aurora スタンダード
インスタンスの設定
- バースト可能クラス (t クラスを含む)
- db.t3.medium
可用性と耐久性
- マルチ AZ 配置
- 別の AZ で Aurora レプリカ/リーダーノードを作成する (可用性のスケーリングに推奨)
接続
- EC2 コンピューティングリソースに接続
EC2 インスタンス
DB サブネットグループ
- 既存の DB サブネットグループ
パブリックアクセス
- なし
VPC セキュリティグループ (ファイアウォール)
- 既存の選択
- Aurora-sg
RDS Proxy
- なし
code:sh
$ sudo dnf install mariadb105
ec2からrdsにアクセス
code:sh
$ mysql -h <endpoint> -P 3306 -u admin -p
password入力
AWS Secrets Manager > シークレット
シークレットの値を取得
code:sql
MySQL (none)> create database db; // リードレプリカにアクセス
MySQL db> select * from db; EC2のインスタンス名からセキュリティ>IAMロールを変更
EC2にはまだロールがアタッチされていない。
IAM > ロール
ロールを作成
awsサービス
EC2が使う
rdsで検索
amazonRDSFullAccess
作成したロール名をアタッチ
EC2のインスタンス名からセキュリティ > IAMロールを変更
endpointからipを確認
code:sh
Server: 10.0.0.2
Address: 10.0.0.2#53
Non-authoritative answer:
Name: <endpoint>
クラスター(mydataase-1)を選択 > ログとイベントタブ
Auto Scalingポリシーの追加
code:sh
Aurora and RDS > データベース > mydatabase-1 > 自動スケーリングポリシーの追加
https://scrapbox.io/files/69553cac0c94d1b992f61623.png
https://scrapbox.io/files/69553ca91a79e9213fa0dfb0.png
意図的にフェイルオーバーさせる
$ aws rds failover-db-cluster --db-cluster-identifie mydatabase-1
確認
https://scrapbox.io/files/69553d1748048ee315e454ac.png
https://scrapbox.io/files/69553d1ab3cb1e896faf342a.png
$ lookup リードレプリカのendpoint を実行した場合、
実行を何度かするとipが変わる。
つまり何度も実行するとよしなにaws側が振り分けてくれる。
クローンの作成
Aurora and RDS > データベース > クローンの作成
開発環境にコピーをしてテストの場合に使う