🐡

1. Amazon Aurora + Amazon RDS

2023/07/18に公開

Amazon Aurora

クラメソブログ

https://dev.classmethod.jp/tags/amazon-aurora/

概要

https://d1.awsstatic.com/webinars/jp/pdf/services/20190424_AWS-BlackBelt_AuroraMySQL.pdf

https://d1.awsstatic.com/webinars/jp/pdf/services/20200929_BlackBelt_HowToScale_Aurora_MySQL_pub.pdf

https://dev.classmethod.jp/articles/re-introduction-2020-amazon-aurora/

アーキテクチャ

ポイント

https://dev.classmethod.jp/articles/how-to-scale-amazon-aurora/

リードレプリカ

最大15個の読み取り専用インスタンス
※追加/削除にダウンタイムは発生しない

AutoScaling

平均CPU使用率または平均接続数でオートスケーリング可能

スケールアップ、ダウン

インスタンスタイプの変更
→フェイルオーバーに影響するので注意
https://dev.classmethod.jp/articles/amazon-aurora-failover-order/

スケールアウト

リードレプリカを増やしていく

グローバルデータベース

https://dev.classmethod.jp/articles/amazon-aurora-global-database-failover-between-region/

スタンバイの別リージョンに対してリードレプリカを作成する
※ストレージのみレプリケーションを行うコールドスタンバイを行うこともできる

制限

  • サポートされるエンジンやバージョンが限定的
  • Serverless/バックトラックの未サポート
  • セカンダリDBクラスタのAuto Scalingの未サポート

その他
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html

スナップショット

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html

Aurora Serverless

Auroraのサーバレスバージョン
https://dev.classmethod.jp/articles/aurora-serverless-summary/

RDS/オンプレからのマイグレーション

RDS → Aurora

  1. RDSインスタンスからAuroraリードレプリカを作成しリードレプリカを昇格させる
  2. RDSのスナップショットからスナップショットの移行でDBエンジンをAuroraに移行する

https://qiita.com/hirai-11/items/93cb87d185e7f7ffd895

オンプレ → Aurora

  • AWS DMS
  • ネイティブ MySQL ツール:mysqldbcopy / mysqldump

https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/migrate-an-on-premises-mysql-database-to-aurora-mysql.html

インスタンスタイプの変更

  • Modify
  • Failover
  • 複製パターン
  • Replication
  • Cross-region Read Replica

https://blog.serverworks.co.jp/tech/2019/07/31/how-to-change-aurora-db-instance-class/

アクティビティストリーム

https://dev.classmethod.jp/articles/aurora-postgresql-audit-with-data-activity-stream/

Aurora PostgreSQLで監査ログを取得する場合以下が選択肢

  • PostgreSQL ネイティブのツールを利用 : pgAudit
  • AWS の仕組み活用 : Database Activity Stream

フォ―ルトトレランス試験

Amazon AuroraインスタンスまたはAurora Replicaを強制的にクラッシュさせることができる
※RDS DB クラスターでは利用できない

Amazon Auroraインスタンスに対するSQLコマンドとして発行され、以下のイベントのいずれかの発生をシミュレートしてスケジューリングすることができる

  • ライターまたはリーダーDBインスタンスのクラッシュ
  • Aurora Replicaの障害
  • ディスク障害
  • ディスクの混雑

alter system simulate disk failure

※ディスク障害のシミュレーションでは、Aurora DBクラスターはランダムにディスクセグメントを障害としてマークします。シミュレーション期間中、そのセグメントへのリクエストはブロックされます。

show volume status

DisksとNodesという2つのサーバー・ステータス変数を返します。これらの変数は、DBクラスタ・ボリュームのデータとストレージ・ノードの論理ブロックの合計数をそれぞれ表しています。

alter system simulate read replica failure

フォールト・インジェクションクエリを使って、Aurora Replicaの障害をシミュレートすることができます。

Backtrack

DBクラスタを過去の状態に戻す機能
※PiTRとは異なり既存クラスタに対して特定時点の状態に戻すことが出来る(72時間以内)
https://dev.classmethod.jp/articles/amazon-aurora-backtrack/
クラスタ一括なのでテーブル個別にはできない

メモ

「スナップショットの復元」は、定期的に自動で取得したスナップショットや手動で取得したスナップショットの時点のサーバーを起動する
「ポイントインタイムリカバリ」は、最も遅い復元可能な時刻と復元可能な最新時刻の間から任意の時点のサーバーを起動する

注意

Aurora MySQLの場合、以下の両方の条件が揃うと、DBクラスタ内のDBインスタンスを削除することができません。

・DBクラスターが他のAurora DBクラスターのリードレプリカである
・DBインスタンスがDBクラスター内の唯一のインスタンスであること

Amazon RDS

クラメソブログ

https://dev.classmethod.jp/tags/amazon-rds/

概要

https://d1.awsstatic.com/webinars/jp/pdf/services/20180425_AWS-BlackBelt_RDS.pdf

アーキテクチャ

ポイント

https://dev.classmethod.jp/articles/relay_looking_back_amazon_rds_2019/

フェイルオーバー

マルチAZでスタンバイインスタンスに同期され自動でフェイルオーバーされる
※フェイルオーバー時にエンドポイントは変わらない。スタンバイへのアクセスはできない

リードレプリカ

読み取り専用のスケールアウトが可能
※MAX5台
マルチAZ,クロースリージョンに対応していて、インスタンスタイプなどはマスターのインスタンスと異なるものにも設定可能
※スタンドアロンのインスタンスに昇格可能
非同期のレプリケーション

スケールアップ/ダウン

インスタンスの再起動が必要

バックアップ

自動スナップショット:一日一回取得、保存期間は0~35日間
手動スナップショット:任意のタイミング
※RDS標準機能の自動的なバックアップとして自動スナップショット+トランザクションログをS3に保存

リストア:スナップショットからDBインスタンスの作成
PiTR:最新のもの又は任意のタイミングのものを指定可能

別アカウントへのスナップショットの共有

  1. ターゲットアカウントのカスタム (デフォルト以外の) KMS キーを追加します
  2. このCMKを使用してスナップショットをコピーし、そのスナップショットをターゲットアカウントと共有します。
  3. ターゲットアカウントから共有 DB スナップショットをコピーします。
    https://aws.amazon.com/jp/premiumsupport/knowledge-center/share-encrypted-rds-snapshot-kms-key/

Amazon Aurora vs Amazon RDS

https://dev.classmethod.jp/articles/developers-io-2019-in-osaka-aurora-or-rds/

https://dev.classmethod.jp/articles/aurora-or-rds-by-table/
※最新版なので注意

https://zenn.dev/issy/articles/zenn-rds-aurora-overview

キーワード整理

モニタリング

https://dev.classmethod.jp/articles/rds-performance-insights/
https://dev.classmethod.jp/articles/rds-monitoring-summary/

パフォーマンスチューニングや負荷テスト

Performance Insights

DBパフォーマンスのデータ収集を行う
→平均アクティブセッション(AAS)から負荷状況を測定できる

  • 待機
  • SQL
  • ホスト
  • ユーザー別のAAS

トラブルシューティング

CloudWatch

  • CPU使用率
  • DB接続数
  • メモリ領域
  • ストレージ領域
  • IOPS

RDS拡張モニタリング

  • CPU使用状況
  • メモリ使用状況
  • ディスクI/O状況
  • OSプロセス

Discussion