Amazon Auroraは、AWSが提供する高性能でスケーラブルなマネージド型リレーショナルデータベースサービスです。
この記事では、Amazon Auroraの概要を紹介します。
Amazon Auroraの基本的な特徴
互換性
AuroraはMySQLおよびPostgreSQLと完全な互換性があります。
既存のMySQLやPostgreSQLのアプリケーションやツールをほぼそのまま使用できるため、移行が容易です。
高性能
標準的なMySQLと比べて最大5倍、PostgreSQLと比べて最大3倍のスループットを実現します。
これは、専用のSSDベースのストレージレイヤーとデータベースエンジンの最適化によるものです。
スケーラビリティ
ストレージは最大128TBまで自動的に拡張されます。
また、最大15個のリードレプリカを作成でき、読み取り処理の負荷分散が可能です。
高可用性と耐久性
Auroraは3つのアベイラビリティーゾーン(AZ)にまたがってデータを自動的にレプリケートします。
これにより、データの耐久性と可用性が大幅に向上します。
障害発生時には、自動的にフェイルオーバーが行われます。
マネージドサービス
Auroraは完全マネージド型のサービスです。
データベースの設定、パッチ適用、バックアップなどの管理タスクをAWSが自動的に行います。
これにより、運用負荷を大幅に軽減できます。
Amazon Auroraの構成要素
Amazon Auroraの基本的な構成要素は以下の通りです。
構成要素 | 説明 |
---|---|
Aurora DBクラスター | Auroraデータベースの中核。 |
DBインスタンス | データベース層。 クラスター内に配置される実際のデータベースサーバ。 プライマリインスタンスとリードレプリカインスタンスが存在する。 |
クラスターボリューム | ストレージ層。 Auroraのストレージレイヤーで、3つのアベイラビリティーゾーンにそれぞれ2コピー、計6コピーに分散されたSSDベースのストレージ。 データは10GBの「protection groups」に分割されて、管理されている。 最大128TBまで自動拡張される。 |
エンドポイント | Auroraクラスター内のDBインスタンスに接続するための中間ハンドラー。 |
DBインスタンス(プライマリインスタンスとリードレプリカインスタンスの役割)
Amazon AuroraのDBインスタンスには、プライマリインスタンスとリードレプリカインスタンス(Auroraレプリカ)があります。
それぞれ以下のような役割を持っています。
この構成により、Auroraは高可用性、高性能、スケーラビリティを実現し、様々なワークロードに対応できる柔軟性を提供しています。
プライマリインスタンス
- 読み書き操作: クラスター内で唯一、読み取りと書き込みの両方の操作を実行できます。
- データ変更: INSERT、UPDATE、DELETEなどのデータ変更操作を処理します。
- DDL文の実行: テーブル作成やインデックス作成などのDDL (Data Definition Language) 文を実行します。
- トランザクション管理: データの一貫性を保つためのトランザクション処理を行います。
- クラスターエンドポイントの対象: 書き込み操作のためのクラスターエンドポイントは、このインスタンスを指します。
リードレプリカインスタンス (Auroraレプリカ)
- 読み取り専用: 読み取り操作のみを実行し、書き込み操作は行いません。
- 負荷分散: 読み取りクエリの負荷を分散し、全体的なパフォーマンスを向上させます。
- スケーラビリティ: 最大15個まで作成可能で、読み取り処理のスケールアウトに貢献します。
- 高可用性: プライマリインスタンスに障害が発生した場合、リードレプリカの1つがプライマリに昇格できます。
- リーダーエンドポイントの対象: 読み取り操作のためのリーダーエンドポイントは、これらのインスタンス間で負荷を分散します。
- 分析やレポート生成: 重い読み取り処理を実行することで、プライマリインスタンスの負荷を軽減します。
エンドポイントの種類
Amazon Auroraのエンドポイントは、Auroraクラスター内のDBインスタンスに接続するための中間ハンドラーです。以下の4種類のエンドポイントがあり、それぞれ異なる役割を持っています。
概要は以下の通りです。
クラスターエンドポイント
- プライマリ(ライター)インスタンスに接続するためのエンドポイント
- 書き込み操作やDDL文の実行に使用
- フェイルオーバー時に新しいプライマリインスタンスに自動的に接続
リーダーエンドポイント
- 読み取り専用のAuroraレプリカに接続するためのエンドポイント
- 読み取りクエリの負荷を複数のレプリカに分散
- レプリカ間で自動的に接続をバランシング
カスタムエンドポイント
- 指定したDBインスタンスのグループに接続するためのエンドポイント
- 特定のワークロード(分析処理など)用にインスタンスを分離する場合に有用
- グループ内のいずれかのインスタンスに接続
インスタンスエンドポイント
- クラスター内の特定のDBインスタンスに直接接続するためのエンドポイント
- 診断やチューニングなど、特定のインスタンスにアクセスする必要がある場合に使用
- 負荷分散は行わない
これらのエンドポイントを適切に使い分けることで、Auroraクラスターの高可用性、スケーラビリティ、パフォーマンスを最大限に活用できます。
用途に応じて適切なエンドポイントを選択することが重要です。
Amazon Auroraの書き込み、読み込みの流れ
Amazon Auroraの書き込みと読み込みの基本的な流れは以下のようになります。
書き込み (Write) の流れ
- クライアントはクラスターエンドポイントに接続します。
- クラスターエンドポイントは常にプライマリ(ライター)インスタンスを指します。
- 書き込みリクエストがプライマリインスタンスに到達します。
- プライマリインスタンスがデータを処理し、ストレージ層に書き込みます。
- ストレージ層は6つのコピーを3つのアベイラビリティーゾーンに分散して保存します。(Quorumベースのレプリケーション)
- 4/6のコピーが成功すると、書き込み完了とみなされます。
- 変更内容はリードレプリカに非同期で反映されます。
読み込み (Read) の流れ
- クライアントはリーダーエンドポイントに接続します。
- リーダーエンドポイントは利用可能なリードレプリカに負荷分散します。
- 読み込みリクエストがリードレプリカに到達します。
- リードレプリカはストレージ層からデータを読み取ります。
- ストレージ層の6つのコピーのうち、3/6のコピーから読み取りが成功すれば完了とみなされます。(Quorumベースのレプリケーション)
- データがクライアントに返されます。
この構成により、Auroraは書き込みと読み込みを効率的に分離し、高いパフォーマンスと可用性を実現しています。
書き込みはプライマリインスタンスに集中させつつ、読み込みは複数のリードレプリカに分散させることで、全体的なスケーラビリティを向上させています。
Amazon Auroraのその他機能
その他のAmazon Auroraの機能として以下のような特徴を持っています。
ログストリーミング
redoログを直接ストレージ層にストリーミングし、高性能を実現しています。
バックグラウンドでデータページに適用されます。
キャッシュウォーミング
リードレプリカがプライマリのバッファキャッシュを共有します。
フェイルオーバー時の性能低下を防止することが可能です。
分散クエリ処理
ストレージノードのCPUを活用したパラレルクエリ機能です。
自動バックアップ
データベースの完全なスナップショットを定期的に取得します。
通常、1日1回など設定された間隔で実行されます。
Aurora Serverless
需要に応じて自動的にスケールアップ/ダウンするデータベースオプションです。
Global Database
複数のAWSリージョンにまたがるデータベースを構築できます。
Backtrack
データベースの状態を過去の特定の時点に巻き戻すことができる機能です。
Amazon Auroraのセキュリティ
Amazon Auroraは、以下のような多層的なセキュリティ機能を提供しています。
ネットワークセキュリティ
Amazon VPCを使用して、DBクラスターをネットワーク的に分離できます。
セキュリティグループを使用して、DBインスタンスへのアクセスを制御できます。
暗号化
保管時のデータ暗号化: AES-256暗号化アルゴリズムを使用して、DBクラスターとスナップショットを暗号化できます。
転送中のデータ暗号化: SSL/TLSを使用して、クライアントとDBインスタンス間の通信を暗号化できます。
アクセス管理
IAM (Identity and Access Management)を使用して、Auroraリソースへのアクセスを細かく制御できます。
データベースレベルのアクセス制御も可能です。
監査
データベースアクティビティストリームを使用して、データベースアクティビティをほぼリアルタイムでモニタリングできます。
認証
パスワード認証に加えて、IAM認証を使用してデータベースユーザーを認証できます。
コンプライアンス
様々な業界標準のコンプライアンス要件に対応しています。
自動パッチ適用
セキュリティパッチを自動的に適用し、常に最新の状態を維持します。
バックアップと復元
自動バックアップとポイントインタイムリカバリ(PITR)機能により、データ損失からの保護を提供します。
これらの機能を組み合わせることで、Auroraは包括的なセキュリティソリューションを提供し、データの機密性、完全性、可用性を確保しています。
Amazon Auroraの課金体系
Amazon Auroraの主な課金体系は以下の通りです。
インスタンス料金
- DBインスタンスの稼働時間に対して課金されます。
- プライマリインスタンスとリードレプリカの両方に適用されます。
- インスタンスタイプによって料金が異なります。
ストレージ料金
- 使用したストレージ容量に対して課金されます。
- 0.12 USD/GBで課金されます。
- 最大128TBまで自動的に拡張します。
I/Oリクエスト料金
- 実際に消費したI/Oに対して課金されます。
- RDS for PostgreSQLなどとは異なり、実際の使用量に基づいて課金されます。
バックアップストレージ料金
- バックアップ保持期間を超えるバックアップに対して追加料金がかかります。
データ転送料金
- リージョン外へのデータ転送に対して課金されます。
オプション機能の料金
- Aurora Global Database、Aurora Serverlessなどのオプション機能を使用する場合、追加料金がかかります。
また、以下のような料金オプションがあります:
- オンデマンドインスタンス: 長期契約なしで使用した分だけ支払います。
- リザーブドインスタンス: 1年または3年の契約で割引料金が適用されます。
Auroraは、使用したリソースに対してのみ課金される柔軟な料金体系を採用しており、ワークロードに応じて最適な選択が可能です。
まとめ
今回は、Amazon Auroraの概要を紹介しました。
Amazon Auroraは、高性能、高可用性、スケーラビリティ、セキュリティ、コスト効率を兼ね備えたデータベースサービスであり、多くの企業がデータベースワークロードをクラウドに移行する際の選択肢として注目されています。
サービス理解の参考になれば、幸いです。
以上になります。ありがとうございました。
参考
https://www.acrovision.jp/service/aws/?p=1705
https://aws.amazon.com/jp/rds/aurora/faqs/
https://cloud.google.com/looker/docs/db-config-amazon-aurora-mysql?hl=ja
https://zenn.dev/issy/articles/zenn-aurora-overview
https://www.sbbit.jp/article/cont1/95514
https://aws.amazon.com/jp/rds/aurora/features/
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html
https://www.ashisuto.co.jp/pr/west/article/column-202211.html
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html
https://サーバー構築と設定.com/?p=3404
https://qiita.com/pensuke628/items/5ca7f2d2a53a71528ad1
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.html
https://qiita.com/oudon722/items/db43a9e5a1a5bcc02f23
https://aws.amazon.com/jp/rds/aurora/pricing/
コメント