Amazon Auroraは、AWSが開発したクラウドネイティブのリレーショナルデータベースエンジンで、MySQLおよびPostgreSQLと互換性があります。従来のデータベースの速度と可用性を、オープンソースデータベースのシンプルさとコスト効率の良さと組み合わせるように設計されています。Auroraは、標準のMySQLより最大5倍、標準のPostgreSQLより最大3倍のスループットを提供し、商用データベースの信頼性と可用性を1/10のコストで実現します。
Amazon Auroraは、従来のデータベースとは異なる独自のアーキテクチャを採用しています:
クライアント → Aurora DBインスタンス → 分散ストレージレイヤー ↓ AZ1、AZ2、AZ3にまたがる6つのストレージノード
Amazon Auroraは、以下の2つの主要なデータベースエンジンと互換性があります:
互換性 | 説明 | ユースケース |
---|---|---|
Aurora MySQL | MySQL 5.7および8.0と互換性があり、標準のMySQLより最大5倍の性能を提供 | MySQLを使用している既存のアプリケーション、高性能が必要なウェブアプリケーション |
Aurora PostgreSQL | PostgreSQL 11、12、13、14と互換性があり、標準のPostgreSQLより最大3倍の性能を提供 | PostgreSQLを使用している既存のアプリケーション、エンタープライズアプリケーション |
Aurora MySQLとAurora PostgreSQLは、それぞれのオープンソースエンジンと高い互換性を持っていますが、一部の機能や拡張機能には違いがあります。詳細はAWSのドキュメントを参照してください。
Amazon Auroraには、様々なユースケースに対応するための複数のデプロイオプションがあります:
固定サイズのインスタンスを使用する従来のデプロイモデルです。予測可能なワークロードに適しています。
aws rds create-db-cluster \
--db-cluster-identifier my-aurora-cluster \
--engine aurora-mysql \
--engine-version 5.7.mysql_aurora.2.10.2 \
--master-username admin \
--master-user-password secret99 \
--db-subnet-group-name my-db-subnet \
--vpc-security-group-ids sg-0123456789abcdef0
需要に応じて自動的にスケールするオンデマンドの自動スケーリングデプロイモデルです。変動するワークロードや予測が難しいワークロードに適しています。
aws rds create-db-cluster \
--db-cluster-identifier my-serverless-cluster \
--engine aurora-mysql \
--engine-mode serverless \
--master-username admin \
--master-user-password secret99 \
--scaling-configuration MinCapacity=1,MaxCapacity=16,AutoPause=true,SecondsUntilAutoPause=3600
複数のAWSリージョンにまたがるデータベースをデプロイするためのオプションです。プライマリリージョンでの書き込みと、最大5つのセカンダリリージョンでの低レイテンシー読み取りを提供します。
# プライマリリージョンでクラスターを作成
aws rds create-global-cluster \
--global-cluster-identifier my-global-cluster \
--source-db-cluster-identifier arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-cluster
# セカンダリリージョンにクラスターを追加
aws rds create-db-cluster \
--db-cluster-identifier my-secondary-cluster \
--engine aurora-mysql \
--global-cluster-identifier my-global-cluster \
--region us-west-2
複数のインスタンスが同時に書き込み操作を処理できるクラスター構成です。単一の書き込みインスタンスに障害が発生した場合でも、高可用性を確保します。
Aurora DBインスタンスには、様々なワークロードに対応するための複数のインスタンスタイプがあります:
インスタンスファミリー | 説明 | ユースケース |
---|---|---|
T(バーストパフォーマンス) | ベースラインパフォーマンスとバースト能力を提供する低コストインスタンス | 開発/テスト環境、小規模アプリケーション |
R(メモリ最適化) | メモリを多く使用するワークロード向けに最適化されたインスタンス | 高性能データベース、インメモリデータベース |
X(メモリ超最適化) | 大規模なインメモリアプリケーション向けの高メモリインスタンス | 大規模なインメモリデータベース、ビッグデータ処理 |
I(I/O最適化) | 高速ストレージとI/Oパフォーマンスを提供するインスタンス | I/O集約型のワークロード |
Auroraは、高可用性と耐障害性を実現するために以下の機能を提供しています:
Auroraのパフォーマンスを最適化するためのベストプラクティス:
Auroraは、データベースのセキュリティを確保するための多層防御アプローチを提供します:
aws rds create-db-cluster \
--db-cluster-identifier my-encrypted-cluster \
--engine aurora-mysql \
--master-username admin \
--master-user-password secret99 \
--storage-encrypted \
--kms-key-id arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmn1234pqrs
Auroraの料金は、以下の要素に基づいています:
Aurora Serverlessは、使用したACU(Aurora Capacity Unit)時間に基づいて課金されます。ACUは、コンピューティングとメモリの容量を表す単位です。データベースがアクティブでない場合は、自動的に一時停止し、ストレージに対してのみ課金されます。
Auroraは、AWS Management Console、AWS CLI、AWS SDKs、またはインフラストラクチャ as コード(IaC)ツールを使用して利用できます。
aws rds create-db-cluster \
--db-cluster-identifier my-aurora-cluster \
--engine aurora-mysql \
--engine-version 5.7.mysql_aurora.2.10.2 \
--master-username admin \
--master-user-password secret99 \
--db-subnet-group-name my-db-subnet \
--vpc-security-group-ids sg-0123456789abcdef0
aws rds create-db-instance \
--db-instance-identifier my-aurora-instance \
--db-cluster-identifier my-aurora-cluster \
--engine aurora-mysql \
--db-instance-class db.r5.large
aws rds create-db-instance \
--db-instance-identifier my-aurora-replica \
--db-cluster-identifier my-aurora-cluster \
--engine aurora-mysql \
--db-instance-class db.r5.large
aws rds create-db-cluster \
--db-cluster-identifier my-backtrack-cluster \
--engine aurora-mysql \
--engine-version 5.7.mysql_aurora.2.10.2 \
--master-username admin \
--master-user-password secret99 \
--backtrack-window 86400
aws rds backtrack-db-cluster \
--db-cluster-identifier my-backtrack-cluster \
--backtrack-to 2023-01-15T00:00:00Z
Auroraは以下のようなユースケースに適しています:
サービス | 特徴 | ユースケース |
---|---|---|
Amazon Aurora | 高性能、高可用性、自動スケーリング、MySQLおよびPostgreSQLとの互換性 | 高性能が必要なリレーショナルデータベースワークロード |
Amazon RDS | 複数のエンジン(MySQL、PostgreSQL、Oracle、SQL Server、MariaDB)をサポート、マネージドサービス | 様々なリレーショナルデータベースエンジンを使用するアプリケーション |
Amazon DynamoDB | フルマネージドのNoSQLデータベース、無制限のスケーラビリティ | キーバリューおよびドキュメントデータモデル、高スケーラビリティが必要なアプリケーション |
Amazon Redshift | ペタバイト規模のデータウェアハウス、列指向ストレージ | データウェアハウスとビジネスインテリジェンス |
Amazon Auroraは、AWSが開発したクラウドネイティブのリレーショナルデータベースエンジンで、MySQLおよびPostgreSQLと互換性があります。分散型のストレージアーキテクチャ、高性能、高可用性、自動スケーリングなどの特徴を持ち、従来のデータベースよりも優れたパフォーマンスと信頼性を提供します。
Auroraの主な利点は以下の通りです:
Auroraは、高性能が必要なアプリケーション、高可用性が必要なミッションクリティカルなアプリケーション、変動するワークロード、グローバルアプリケーション、MySQLまたはPostgreSQLからの移行など、様々なユースケースに適しています。適切なデプロイオプションとインスタンスタイプを選択し、ベストプラクティスを適用することで、Auroraの利点を最大限に活用することができます。