DEA / ドメイン2 データストア管理

Amazon RDS と Aurora (データソースとして)

と は、業務アプリのデータを保管するです。データエンジニアにとっては、分析パイプラインの代表的なデータソースです。DEA-C01 では、本番の業務を止めずにデータを取り出す方法 (、のエクスポート、 統合)、 などからの接続を安定させる RDS Proxy、データストアとしての RDS/Aurora の選びどころが問われます。

Point
  • RDS = Relational Database Service です。MySQL、PostgreSQL、MariaDB、Oracle、SQL Server、Db2 をマネージドで動かします。
  • Aurora は、MySQL・PostgreSQL と互換の AWS 独自のデータベースです。ストレージが3つの AZ に6つのコピーを持ち、クラスター単位で扱います。
  • 和訳

概要

業務 DB () からデータを取り出すとき、最も避けたいのは本番の応答を遅くすることです。取り出し方は、鮮度と負荷の要件で選びます。

概要の図 非同期の複製 Glue / DMS で抽出 スナップショット S3 へエクスポートParquet zero-ETL 統合 DMS の CDC 業務アプリ ライター本番 DB リードレプリカ S3 データレイク スナップショット Redshift
取り出し方鮮度本番への負荷向くケース
から抽出 ( の 接続など)数秒〜の遅れ小さい (ライターに触れない)定期的なバッチ抽出
を へエクスポートスナップショットの時点なし日次・月次の全件の分析、
統合 ( へ)数秒程度小さいパイプラインを作らずに最新の運用データを分析
の全ロード + 継続的ログを読む分だけS3 や他の DB への継続的な複製 (「AWS DMS」の章)

主要技術

①リードレプリカからの抽出 ⚠️ 頻出

は、ライターの変更を非同期に複製する読み取り専用のコピーです。抽出ジョブや重い集計をレプリカへ向けると、本番のライターの負荷を増やさずに済みます。

観点 のリードレプリカ のレプリカ
複製の仕組みエンジンの (非同期)共有ストレージを読む (遅れが小さい)
レプリカごとリーダーエンドポイントで複数のレプリカに振り分ける
をまたぐクロスリージョンのリードレプリカAurora Global Database

のスタンバイは障害時の切り替え用で、読み取りには使えません (RDS の Multi-AZ DB インスタンス)。分析の読み取りを逃がす先はリードレプリカです。


②スナップショットの S3 へのエクスポート

と の (および Aurora の DB クラスター) を、 へ 形式でエクスポートできます。データベースに負荷をかけずに、全件を ・・・ で分析できる形にします。

観点内容
形式Apache Parquet (圧縮された列指向形式)
対象の絞り込みデータベース、スキーマ、テーブルを指定できる
権限S3 へ書く ロールと、暗号化用の キーが必要
鮮度スナップショットの時点のデータ (リアルタイムではない)

日次の全件スナップショットを分析に使う、古いデータを S3 にしてから DB から消す、といった用途に向きます。


③RDS Proxy と接続の管理

は数に応じて多数の実行環境が立ち上がり、それぞれが DB へ接続を作ります。接続数が DB の上限に達すると、新しい接続が拒否されます。

手段内容
Proxy接続をプールして再利用し、DB への接続数を抑える。時の切り替えも速くなる。認証情報は で管理し、 認証も使える
Lambda の予約同時実行数Lambda 側の同時実行の上限を決めて、DB への接続の急増を防ぐ
Data () で を実行し、接続を自分で持たない

DB への接続数の上限との対処は「スロットリングとレート制限」の章でも扱います。


④zero-ETL 統合と S3 との直接のやり取り

(MySQL・PostgreSQL) と (MySQL・PostgreSQL・Oracle) から への 統合を作ると、初回の全件ロードの後、変更が自動で Redshift へ複製されます。 のジョブを作らず、運用データを数秒程度の遅れで分析できます (「 (CDC) と zero-ETL」の章)。

Aurora と RDS は、 から と直接データをやり取りする機能も持ちます。

エンジンS3 から読み込むS3 へ書き出す
Aurora MySQLLOAD DATA FROM S3SELECT INTO OUTFILE S3
Aurora / RDS for PostgreSQLaws_s3 拡張機能の table_import_from_s3aws_s3 拡張機能の query_export_to_s3

小さな参照データの取り込みや、クエリ結果の S3 への出力を、別のサービスを使わずに行えます。DB には S3 へアクセスする ロールを関連付けます。


⑤データストアとして RDS / Aurora を選ぶとき

要件選ぶもの
結合、外部キー、トランザクションが必要な業務データ /
高い可用性と読み取りのスケール、ストレージの自動拡張Aurora (最大15のレプリカ、自動で伸びるストレージ)
負荷が変動し、容量の管理を減らしたい v2
既存の商用 DB (Oracle、 Server) をそのまま移すRDS for Oracle / SQL Server
を既存のリレーショナルデータと一緒に扱うAurora PostgreSQL / RDS for PostgreSQL の (「とベクトルインデックス」の章)
数十億行の集計RDS ではなく

で を取る場合は、ソースの DB でバイナリログ (MySQL) や論理 (PostgreSQL) を有効にし、ログの保持期間を十分にとります。


試験対策

①判断マトリクス

問題文のキーワード選ぶもの
本番 DB に負荷をかけずに定期抽出から抽出
DB に一切負荷をかけず全件を分析・を へ でエクスポート
なしで運用データをほぼリアルタイムに で分析 統合
から DB への接続数が上限に達する Proxy
から直接 S3 のファイルを読み込みたい MySQL の LOAD DATA FROM S3、PostgreSQL の aws_s3 拡張
継続的に変更を S3 や別の DB へ複製 の
読み取りを のスタンバイへ逃がしたいスタンバイは読めない。リードレプリカを使う

②よくある誤答

  • 本番のライターに直接重い抽出クエリを流すこと。かエクスポートを使います。
  • のエクスポートでリアルタイムの分析ができると考えること。スナップショットの時点のデータです。
  • のが増えたときの接続エラーに、DB のインスタンスを大きくするだけで対処すること。 Proxy で接続をプールします。
  • RDS を大規模な集計の DWH として使うこと。 へ複製して分析します。

参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください