0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS 認定 データベース – 専門知識(AWS Certified Database - Specialty)の試験対策

Last updated at Posted at 2022-06-27

はじめに

試験対策に備忘録として、
 分かりにくい
 間違えやすい
箇所をメモを記載していく

目次

  • RDSをIAMデータベース認証
  • RDS作成時にバックアップ保持期間
  • RDSのリードレプリカ作成
  • RDS(MySQL、PostgreSQL)をAuroraへ移行
  • RDS(MySQL)のスキーマ変更
  • RDSのバックアップ
  • RDSのモニタリング(拡張モニタリング)
  • RDSのメンテナンス
  • RDSリソースの削除防止
  • RDSでTrustAdvisor
  • Auroraの暗号化
  • Auroraのクローン
  • Auroraのバックトラック
  • Auroraの一時停止
  • Auroraのリードレプリカが遅い原因
  • DynamoDBのキャパシティユニット
  • DynamoDBとQLDBはVPC 内にない
  • DynamoDBグローバルテーブル
  • Redshiftへデータ移行
  • ElastiCacheの用途
  • ElastiCache for Redisの不正アクセス保護
  • QLDBのリアルタイム検索
  • CloudFormationの複数リージョンでデプロイ

RDSをIAMデータベース認証

  • IAM データベース認証
     MySQL  :可能
     PostgreSQL:可能
     それ以外(oraclesqlServer):不可

  • IAM データベース認証の制限
     DBインスタンスごとに1秒当たりの最大接続数あり
      MySQL、推奨1 秒あたり 200 未満

  • 認証トークンには 15 分の有効期間

  • 複数のIAMユーザーまたはロールを同じデータベースユーザーアカウントにマップ可能

その他

  • EC2上のアプリケーションからは、EC2 インスタンスプロファイル認証情報を使用してデータベースにアクセス可能

RDS作成時にバックアップ保持期間

コンソールを使用してDBインスタンスを作成
 → デフォルトのバックアップ保持期間は7日

Amazon RDS APIを使用してDBインスタンスを作成
 → デフォルトのバックアップ保持期間は1日

※Auroraのデフォルトのバックアップ保持期間は1日

RDSのリードレプリカ作成

  • 作成方法
    RDSはプライマリのDBインスタンスからスナップショットを作成して、リードレプリカを作成
    ※スナップショット作成時に、プライマリDBインスタンスのI/Oが一定時間停止

RDSのマルチAZ配置の場合
 スタンバイDBインスタンスからスナップショットを作成するため、I/Oの停止を回避できる

  • 自動バックアップを有効(保持期間を0以外の値に設定)
  • 既存の第1層からリードレプリカ作成
    RDS(MYSQL)   → 既存リードレプリカのリードレプリカを作成可能
    RDS(MYSQL)以外 → 既存リードレプリカのリードレプリカを作成不可

RDS(MySQL、PostgreSQL)をAuroraへ移行

Aurora Readレプリカを使用して、MySQL用のAmazonRDSDBインスタンスからAmazonAuroraに移行
①RDS(MySQL)でAuroraリードレプリカ作成
②Auroraリードレプリカを昇格

RDS(MySQL)のスキーマ変更

RDS(MySQL)のリードレプリカのスキーマ変更等ができるため、下記の手順でDDLを反映する

①リードレプリカ作成
②リードレプリカのDBパラメーターグループでread_onlyパラメーターを「0」に設定
①リードレプリカにDDL操作を実行
②リードレプリカをDBインスタンスに昇格
 ※昇格時、プライマリDBの書き込みを停止し、リードレプリカの更新を待つ

RDSのDR対策

  • 目標復旧時間(RTO)
     災害後に作業状態に戻るのにかかる時間
  • 目標復旧時点(RPO)
     RPOは時間単位でも表され、災害が発生したときに失われる可能性のあるデータの量
     (例)RPOが1時間の場合、災害が発生したときに最大1時間分のデータが失われる可能性

自動バックアップ

  • DBインスタンスの最初のスナップショットには、完全なDBインスタンス
     ※その後、増分スナップショット
  • 特定の時間指定ができない(8時間単位にランダム)
  • マルチAZ構成の場合、プライマリへの影響を減らすために、スタンバイでバックアップが実行
  • バックアップ保持期間は、PITR(ポイントタイムリストア)が可能
  • DBインスタンス削除時、同時に削除される(※削除しない方法もあり)
  • クロスリージョン自動バックアップをサポート

手動バックアップ

  • リージョンごとに最大100スナップショット
  • 自動的に削除されない
  • 複数のリージョンでサポート
  • 最大20のAWSアカウントと共有可能

RDSのモニタリング

  • Amazon RDS Performance Insights
    パフォーマンスの問題を分析し、解決するのに役立つ、データベースのパフォーマンス情報

  • Trusted Advisor
    RDSアイドルDBインスタンス、RDSセキュリティグループアクセスリスク、RDSバックアップ、RDSマルチAZをチェック

  • Amazon RDS EnhancedMonitoring(拡張モニタリング)
    DB インスタンスのオペレーティングシステムをリアルタイムでモニタリング

RDSのメンテナンス

  • ハードウェアのメンテナンス
    シングル AZ 配置の場合、ダウンタイムあり。
    マルチ AZ 配置の場合、メンテナンスのAZによって影響が変わる。セカンダリのAZメンテナンスであれば、影響なし。

  • OS のメンテナンス
    延期可能
    マルチ AZ 配置で対応し、セカンダリインスタンス適用後、フェールーバーし、プライマリインスタンス更新

  • DB エンジンレベルのアップグレード
    プライマリ DB インスタンスとスタンバイ DB インスタンスの両方が同時にアップグレード
    ダンタイム必要

RDSリソースの削除防止

CloudFormationの下記を設定し、リソースの削除を防止

  • RDSのインスタンス削除保護
     DeleteProtectionが「true」設定

  • スタック削除時、RDSのインスタンス削除保護
     DeletionPolicy属性に「Retain」設定

  • 万が一削除された場合を考慮して、自動バックアップは削除しない  
     DeleteAutomatedBackups属性に「False」設定

  • スタックそのもの削除保護
     ・コンソールでスタックの「termination protection」を有効化

  • スタックが意図せずに更新または削除されるのを防止
     ・スタックポリシーを設定

RDSでTrustAdvisor

5カテゴリで問題を検知する 
※メール通設機能設定、CloudWatchEvent(trustAdvisorEvent)→SNS通知

コストの最適化

  • 長期間使用されていないDBインスタンスの検出
      提案アクション:スナップショット作成後、インスタンス削除
  • RDS の利用状況をチェック
      提案アクション:リザーブドインスタンスの購入提案

セキュリティ

  • RDSのセキュリティグループをチェック
  • RDSのスナップショットが公開に設定されているチェック

耐障害性

  • 自動バックアップのチェック
  • 単一AZのRDSをチェック

Auroraの暗号化

  Aurora → スナップショット → Aurora(暗号化)※リストア時にKMSキー指定可能
  RDS → スナップショット → 暗号化スナップショット → RDS(暗号化)

Auroraのクローン

  • クローンはコピーではない。
  • 同一リージョン内の同一AZでのみ作成可能(※VPCは異なってもOK)
  • Aurora Serverless v1 DBでクローン可能
  • 最大15個まで
  • クロスアカウントのクローン作成可能

Auroraのバックトラック

  • クラスター作成時、リストア時のみ設定可能
  • 最大72時間
  • 既存のDBクラスターに反映
  • 単一テーブルのみ選択し、戻すことは不可

Auroraの一時停止

すべてのリードレプリカを削除後、プライマリRDSDBインスタンスを停止する
※DB インスタンスは最大 7 日間停止。その後、自動起動

Auroraのリードレプリカが遅い原因

レプリケーションでタイムラグがあり、遅延する原因

  • クラスターで書き込みアクティビティの突然の急増
  • リードレプリカのクラスター内のインスタンスが小さい
  • リードレプリカに複数のセッションが同時アクセス
  • ネットワークの通信障害

調査

  • AuroraReplicaLag メトリクスでタイムラグを測定可能
  • 拡張モニタリングでCPU使用率、DBコネクションの監視

DynamoDBのキャパシティユニット

  • パーティションのサポートされる最大サイズ:10GB
  • 単一項目のプライマリキーに対して、下記のスループットを提供
     最大RCU:3,000
     最大WCU:1,000

(例)16KB/秒 強力整合性 で 読み取り10回を行いたい
 強力整合性 1RCU = 4 KB/秒

 1回 :16KB/秒 / 4KB/秒 = 4RCU
 10回:4RCU × 10 = 40RCU

(例)10WCU 10WCU
 Read
   強力整合性 1RCU = 4 KB/秒
   強力整合性 4 KB/秒 × 10RCU = 40KB/秒
   結果整合性 40KB/秒 × 2倍 = 80KB/秒
   トランザクション 40KB/秒 × 1/2倍 = 20KB/秒
 Write
   強力整合性 1WCU = 1 KB/秒
   強力整合性 1 KB/秒 × 10RCU = 10KB/秒
   トランザクション 10KB/ × 1/2倍 = 5KB/秒

(例)5,000RCU 500WCU テーブル:50GB
 (500/1000)+(5000/3000)= 2.1〜3 ≒ 3パーティション
 50GB / 10GB = 5パーティション
 MAX(3,5) = 5パーティション

DynamoDBとQLDBはVPC 内にない

DynamoDB や Amazon QLDB などのデータベースサービスは VPC 内で実行されない

  • QLDB はインターフェイスエンドポイント使用(ENI)
  • DynamoDB はゲートウェイエンドポイント使用

DynamoDBグローバルテーブル

  • テーブル名、LSI、GSIがリージョン間で一貫
  • TTL設定がリージョン間で一貫
  • 暗号化設定がリージョン間で一貫
  • DynamoStreamが有効
  • DynamoDB Auto Scaling有効またはオンデマンドキャパシティ有効

Redshiftへデータ移行

  • DMSでデータ移行
     ダウンタイム最小限、ペタバイト規模のデータウェアハウスに統合可能
     移行方法:データ元 → DMS → S3 → DMS → RedShift ※S3を使用

  • KinesisDataStreamsでデータ移行
     1秒に数ギガバイトのデータをキャプチャし、移行可能
     ただし、Redshift側で予想されるデータ処理のためにシャドーを手動でプロビジョニングが必要

  • EMRでデータ移行
     大量のデータを処理可能。Redshiftにコピーするためのカスタム移行ジョブの開発が必要

ElastiCacheの用途

  • 複雑な計算が必要となるデータをキャッシュ
  • Pub/Sub
  • ランキングボード
  • 位置情報
  • セッションストア
  • リーダーボード

ElastiCache for Redisの不正アクセス保護

  • auth-tokenを使用する
  • 転送中と保存中のデータの暗号化
  • セキュリティグループのインバウンド設定(指定のポート許可)

QLDBのリアルタイム検索

Amazon Kinesis Data Streamsにリアルタイム配信可能

  • リアルタイム分析
  • 履歴分析
  • ワード検索(ElasticSearchに登録)

CloudFormationの複数リージョンでデプロイ

スタックセットを介してテンプレートを複数のリージョンにデプロイ

セキュリティ

保管中のデータの暗号化

  • RDS  :任意
  • Aurora:任意
  • ElastiCache:任意
  • DocumentDB:任意
  • Neptune:任意
  • Redshift:任意
  • DynamoDB:デフォルトで暗号化
  • QLDB:デフォルトで暗号化(※CMKのサポートなし)

転送中のデータの暗号化

  • RDS  :任意(証明書の設定が必要)
  • Aurora:任意(証明書の設定が必要)
  • ElastiCache:任意(パフォーマンス影響有)
  • DynamoDB:TLS
  • DocumentDB:任意(TLS)
  • DocumentDB:TLS
  • Redshift

最後に

なかなかデータベースの勉強大変ですね。
ユースケース等を調べたり、違いを理解したり。。
実際にコンソール触って、RDSやAuroraのイメージを理解する必要があると感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?