Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS研修 Amazon RDS

Recruit
PRO
August 18, 2021

AWS研修 Amazon RDS

2021年度リクルート エンジニアコース新人研修の講義資料です

Recruit
PRO

August 18, 2021
Tweet

More Decks by Recruit

Other Decks in Technology

Transcript

  1. Amazon RDS 株式会社リクルート クラウドアーキテクトグループ

  2. Amazon RDSとはなにか • AWSが提供するリレーショナルデータベースのマネージドサービスです • トランザクションが必要とされるサービスで主に利⽤します。 2 Region VPC Private

    subnet Public subnet この部分を提供
  3. Amazon RDSのメリット • 構築・運⽤・拡張が容易なリレーショナルデータベース(RDB)の提供 1. 構築 • GUIやAPI(APIに基づくCLIやSDK)から容易にデータベースを構築可能 2. 運⽤

    • ⾃動バックアップなど様々な運⽤⽀援機能の提供 • AWSマネージドなレイヤの提供による各種作業の削減 3. 拡張 • インスタンスサイズの変更や、リードレプリカの提供の容易化などによる性能⾯での拡張の容易化 3 GUIを使ったデータベースの構築     AWSマネージドなレイヤの提供による各種作業の削減 C C ( 2 C / ) (     ! B E D E D      C C ( 2 C / ) (     ! B E D E D      C C ( 2 C / ) (     ! B E D E D     
  4. Amazon RDS利⽤上の注意点 マネージドサービスなので必ずしも全ての要件に対応できるわけではない。 要件によってはon EC2を検討する必要がある (基本的にはシステムを作る際にはDB on EC2を避けられるようアーキテクチャを設計したい) • 提供しているソフトウェアバージョンに制限が存在

    • 新しいバージョン、古いバージョンのものは提供されていない事がある • OSへのログインやファイルシステムへのアクセスはできない • その他、DBのソフトウェア毎に細々とした制限が存在 • e.g. DBのrootユーザアクセスができないなど 5
  5. Amazon RDSで提供している主要なデータベース・ソフトウェア • OSSリレーショナルデータベース • 商⽤リレーショナルデータベース • AWS独⾃のリレーショナルデータベース 6 Aurora

    with MySQL Compatibility Aurora with PostgreSQL Compatibility
  6. Amazon RDSで提供している主要なデータベース・ソフトウェア • OSSリレーショナルデータベース • 商⽤リレーショナルデータベース • AWS独⾃のリレーショナルデータベース 7 Aurora

    with MySQL Compatibility Aurora with PostgreSQL Compatibility 個別のデータベースソフトウェアの機能については説明せず、 RDSの中で提供されている各種機能について解説します
  7. RDSで提供されている各種機能について RDSで提供されている各種機能は基本的にアプリケーションの機能を提供するもの ではなく、システム全体としての⾮機能を向上させるための機能が⼤多数です 以降は、下記内容について解説します。 1. ⾼可⽤性を実現するための仕組み 2. ⾼性能を実現するための仕組み 3. ⾼い運⽤性を実現するための仕組み

    4. ⾼いセキュリティを実現するための仕組み 8
  8. ⾼可⽤性を実現するための仕組み • マルチAZ配置 • 複数のAZにインスタンスを配置し、 AZ障害やインスタンス障害時に即座に切り替えができるようになる 9

  9. マルチAZ配置の仕組み 10 Region Availability Zone1 Availability Zone2 Availability Zone3 プライマリ

    インスタンス スタンバイ インスタンス スタンバイ インスタンス 同期レプリケーション RDSではプライマリインスタンスから各AZに準備されたスタンバイインスタンス*1にレプリケーションを⾏います。 インスタンスやAZ障害時はスタンバイインスタンスがプライマリインスタンスに昇格して処理を継続します。 *1 AWS利⽤者からは不可視なインスタンスです。 Region Availability Zone1 Availability Zone2 Availability Zone3 プライマリインスタンス リードレプリカ リードレプリカ RDS Auroraではプライマリインスタンス障害やAZ障害時には、リードレプリカがプライマリインスタンスに昇格して 処理を継続します。(通常のRDSとAuroraではデータのレプリケーションが異なることに起因) どちらかが昇格 どちらかが昇格
  10. ⾼性能を実現するための仕組み • スケールアップ • インスタンスのCPU・メモリ・IO性能を向上させることで性能をスケールさせる • リードレプリカの提供・リードレプリカのオートスケール • 読み込み処理をプライマリインスタンス以外にも分散することで性能をスケールさせる*1 *1ただし、⾮同期レプリケーションな点に注意。

    11 Region Availability Zone1 Availability Zone2 Availability Zone3 プライマリ インスタンス リード レプリカ リード レプリカ ⾮同期レプリケーション 書込処理 /同期読込が必要な処理 読込処理 特定の条件をトリガーに してリードレプリカの数 を増減させることも可能
  11. ⾼い運⽤性を実現するための仕組み • ⾃動バックアップと容易なリカバリ • 毎⽇指定した時間にバックアップとしてのスナップショットを取得 • GUIベースのバックアップからのリカバリ(ポイントインタイムリカバリも可能) • バックトラックを使った⾼速な巻き戻し •

    オペレーションミスなどに伴うデータ破損を瞬時に復旧 • メンテナンスウィンドウを使った⾃動メンテナンス • DBソフトウェアのパッチ適⽤やバージョンアップの⾃動実⾏ (任意のタイミングで⼿動でトリガーすることも可能) • CloudWatch連携 • CloudWatchへのメトリクス・ログの連携によるモニタリング環境構築の容易化 12
  12. ⾼いセキュリティを実現するための仕組み • VPC対応 • VPCの仕組みをもちいたネットワークアクセス制御を実現できる • インスタンス暗号化 • インスタンス内のデータやバックアップの透過的暗号化の容易な実現 他にも多くの仕組みあり

    13
  13. RDSのまとめ • マネージドサービスなので⼀部の作業はAWSにアウトソースすることができま す。ただしマネージドになった分、制限は多少存在します。 • 構築や運⽤を容易化するための様々な⽀援機能が提供されています。 • それ以外は通常のリレーショナルデータベースと同じくDDL, DMLを使った操作 が可能です。

    14
  14. [補⾜] Auroraについて よく知られている商⽤・OSSのデータベースとは別にAWSではAuroraと呼ばれる リレーショナルデータベースが提供されています。 Auroraは 1. MySQLまたはPostgreSQLとの互換性をもつ 2. クラウド環境に即したアーキテクチャ を持つリレーショナルデータベースです。

    リクルート内でもAWSでシステム構築時に利⽤する機会が多いので、 通常のRDSとの違いを中⼼に解説します。 15 アーキテクチャなどについては、過去のAWS re:Inventの動画などを参照してください。 https://www.youtube.com/watch?v=GwEtiRZR4g4 や https://www.youtube.com/watch?v=Ul-j5fKfv2k
  15. AuroraとRDSの注意すべき違い Auroraにおける • パラメータが2種類存在します • DBクラスタパラメータグループ • 単⼀のAuroraクラスタ全体に適⽤されるパラメータ • DBパラメータグループ

    • Auroraクラスタを構成する個々のインスタンスに適⽤されるパラメータ • 動的なストレージ確保 • 通常のRDSではストレージのサイズを指定する形になっているが、Auroraの場合はストレージのサイズ は実際の使⽤量に応じて動的に変更*1されます *1 MySQL互換かPostgreSQL互換かによってストレージのリサイズの条件(特にストレージボリューム縮⼩)は異なるので注意が必要です RDSでストレージを縮⼩したい場合は https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-db-storage-size/ を参照 • DBアクセスのためのエンドポイントの取扱 • 読み書き両⽅が可能なクラスターエンドポイントと、リードレプリカへのアクセスのための 読み取りエンドポイントの2種類がデフォルトで存在 参考)https://dev.classmethod.jp/articles/readreplica-ha-route53/ 16