Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS研修 Amazon RDS
Search
Recruit
PRO
August 18, 2021
Technology
2
8.4k
AWS研修 Amazon RDS
2021年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 18, 2021
Tweet
Share
More Decks by Recruit
See All by Recruit
Browser
recruitengineers
PRO
8
2.2k
JavaScript 研修
recruitengineers
PRO
6
1.4k
TypeScript入門
recruitengineers
PRO
35
11k
モダンフロントエンド 開発研修
recruitengineers
PRO
9
6.1k
Webアクセシビリティ入門
recruitengineers
PRO
3
1.5k
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
3
1.8k
モバイルアプリ研修
recruitengineers
PRO
5
1.7k
事業価値と Engineering
recruitengineers
PRO
8
5.4k
制約理論(ToC)入門
recruitengineers
PRO
9
3.7k
Other Decks in Technology
See All in Technology
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
250
【 LLMエンジニアがヒューマノイド開発に挑んでみた 】 - 第104回 Machine Learning 15minutes! Hybrid
soneo1127
0
240
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
240
DeNA での思い出 / Memories at DeNA
orgachem
PRO
6
1.9k
実践AIガバナンス
asei
3
290
カミナシ社の『ID管理基盤』製品内製 - その意思決定背景と2年間の進化 #AWSUnicornDay / Kaminashi ID - The Big Whys
kaminashi
3
720
生成AI時代のデータ基盤
shibuiwilliam
4
2k
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
110
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
130
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
920
Flutterでキャッチしないエラーはどこに行く
taiju59
0
210
Jaws-ug名古屋_LT資料_20250829
azoo2024
3
210
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Writing Fast Ruby
sferik
628
62k
A Tale of Four Properties
chriscoyier
160
23k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Into the Great Unknown - MozCon
thekraken
40
2k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Site-Speed That Sticks
csswizardry
10
800
Gamification - CAS2011
davidbonilla
81
5.4k
Building Adaptive Systems
keathley
43
2.7k
How to Ace a Technical Interview
jacobian
279
23k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
570
Transcript
Amazon RDS 株式会社リクルート クラウドアーキテクトグループ
Amazon RDSとはなにか • AWSが提供するリレーショナルデータベースのマネージドサービスです • トランザクションが必要とされるサービスで主に利⽤します。 2 Region VPC Private
subnet Public subnet この部分を提供
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
Amazon RDS利⽤上の注意点 マネージドサービスなので必ずしも全ての要件に対応できるわけではない。 要件によってはon EC2を検討する必要がある (基本的にはシステムを作る際にはDB on EC2を避けられるようアーキテクチャを設計したい) • 提供しているソフトウェアバージョンに制限が存在
• 新しいバージョン、古いバージョンのものは提供されていない事がある • OSへのログインやファイルシステムへのアクセスはできない • その他、DBのソフトウェア毎に細々とした制限が存在 • e.g. DBのrootユーザアクセスができないなど 5
Amazon RDSで提供している主要なデータベース・ソフトウェア • OSSリレーショナルデータベース • 商⽤リレーショナルデータベース • AWS独⾃のリレーショナルデータベース 6 Aurora
with MySQL Compatibility Aurora with PostgreSQL Compatibility
Amazon RDSで提供している主要なデータベース・ソフトウェア • OSSリレーショナルデータベース • 商⽤リレーショナルデータベース • AWS独⾃のリレーショナルデータベース 7 Aurora
with MySQL Compatibility Aurora with PostgreSQL Compatibility 個別のデータベースソフトウェアの機能については説明せず、 RDSの中で提供されている各種機能について解説します
RDSで提供されている各種機能について RDSで提供されている各種機能は基本的にアプリケーションの機能を提供するもの ではなく、システム全体としての⾮機能を向上させるための機能が⼤多数です 以降は、下記内容について解説します。 1. ⾼可⽤性を実現するための仕組み 2. ⾼性能を実現するための仕組み 3. ⾼い運⽤性を実現するための仕組み
4. ⾼いセキュリティを実現するための仕組み 8
⾼可⽤性を実現するための仕組み • マルチAZ配置 • 複数のAZにインスタンスを配置し、 AZ障害やインスタンス障害時に即座に切り替えができるようになる 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ではデータのレプリケーションが異なることに起因) どちらかが昇格 どちらかが昇格
⾼性能を実現するための仕組み • スケールアップ • インスタンスのCPU・メモリ・IO性能を向上させることで性能をスケールさせる • リードレプリカの提供・リードレプリカのオートスケール • 読み込み処理をプライマリインスタンス以外にも分散することで性能をスケールさせる*1 *1ただし、⾮同期レプリケーションな点に注意。
11 Region Availability Zone1 Availability Zone2 Availability Zone3 プライマリ インスタンス リード レプリカ リード レプリカ ⾮同期レプリケーション 書込処理 /同期読込が必要な処理 読込処理 特定の条件をトリガーに してリードレプリカの数 を増減させることも可能
⾼い運⽤性を実現するための仕組み • ⾃動バックアップと容易なリカバリ • 毎⽇指定した時間にバックアップとしてのスナップショットを取得 • GUIベースのバックアップからのリカバリ(ポイントインタイムリカバリも可能) • バックトラックを使った⾼速な巻き戻し •
オペレーションミスなどに伴うデータ破損を瞬時に復旧 • メンテナンスウィンドウを使った⾃動メンテナンス • DBソフトウェアのパッチ適⽤やバージョンアップの⾃動実⾏ (任意のタイミングで⼿動でトリガーすることも可能) • CloudWatch連携 • CloudWatchへのメトリクス・ログの連携によるモニタリング環境構築の容易化 12
⾼いセキュリティを実現するための仕組み • VPC対応 • VPCの仕組みをもちいたネットワークアクセス制御を実現できる • インスタンス暗号化 • インスタンス内のデータやバックアップの透過的暗号化の容易な実現 他にも多くの仕組みあり
13
RDSのまとめ • マネージドサービスなので⼀部の作業はAWSにアウトソースすることができま す。ただしマネージドになった分、制限は多少存在します。 • 構築や運⽤を容易化するための様々な⽀援機能が提供されています。 • それ以外は通常のリレーショナルデータベースと同じくDDL, DMLを使った操作 が可能です。
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
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