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.2k
AWS研修 Amazon RDS
2021年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
August 18, 2021
Tweet
Share
More Decks by Recruit
See All by Recruit
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
880
リクルート流データ基盤塾~鶴谷と学ぶ~
recruitengineers
PRO
4
110
『SUUMO』 スマホサイト デザインリニューアルへの挑戦
recruitengineers
PRO
5
270
『リクルートダイレクトスカウト』 のリニューアルから振り返る: ビジョンドリブンの可能性
recruitengineers
PRO
3
260
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
9
380
あなたの知らないiOS開発の世界
recruitengineers
PRO
4
310
大規模プロダクトにおける組織作りと技術ポートフォリオマネジメント
recruitengineers
PRO
4
440
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
5
660
リクルート新人研修2024 テキスト生成AI活用
recruitengineers
PRO
12
970
Other Decks in Technology
See All in Technology
dbt-coreで実現するCore DataMartsのデータモデリング〜dbt編〜 / Core DataMarts Modeling with dbt-core
i125
3
1.2k
失敗しないOpenJDKの非互換調査
tabatad
0
230
都市伝説バスターズ「WebアプリのボトルネックはDBだから言語の性能は関係ない」 - Kaigi on Rails 2024
osyoyu
13
4.8k
分布で見る効果検証入門 / ai-distributional-effect
cyberagentdevelopers
PRO
2
550
CI/CDやテスト自動化の開発プロジェクトへの適用
megascus
3
650
Why and Why not of enabling swap in Kubernetes
hwchiu
0
470
Creating Intuitive Developer Tool in Swift
giginet
PRO
0
570
AI Builder について
miyakemito
1
130
【LT】ソフトウェア産業は進化しているのか? -Javaの想い出とともに- #jjug_ccc
takabow
0
150
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
2
300
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
49k
サーバーサイドのデータプレーンプログラミング 〜 NVIDIA Blue Field / DOCA 〜
ebiken
PRO
1
230
Featured
See All Featured
Become a Pro
speakerdeck
PRO
24
4.9k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
41
2.1k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.1k
What's new in Ruby 2.0
geeforr
342
31k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
5
140
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