クラウドプロバイダーとマネージドサービスの前は、データベースをローカルにインストールする必要があり、大規模なインストールでは、多くのインフラストラクチャをインストールし、複数のDBAを維持する必要がありました。クラウドプロバイダーの出現により、ローカルデータベースはクラウドに移行し、ローカルインフラストラクチャの要件は排除されないにしても削減されました。 Amazon Web Services(AWS)やOracle Cloud Platformなどのクラウドプロバイダーは、DBEngines.comによってそれぞれ1位と2位にランク付けされている一般的に使用されるリレーショナルデータベースシステムであるOracleDatabaseとMySQLデータベースにマネージドサービスを提供します。 AWSは、PostgreSQLデータベースやSQLServerデータベースなどの他のデータベースもサポートしています。 AWSは、DynamoDBと呼ばれる独自のNoSQLデータベースのサポートを提供します。
この記事では、AWSおよびOracleCloudPlatformクラウドプロバイダーで利用可能なデータベースについて説明します。使用するクラウドプロバイダーに関係なく、マネージドサービス、スケーラブル、信頼性、安全性、コラボレーション機能など、すべてのクラウドプロバイダーデータベースに共通する機能がいくつかあります。この記事には、次のセクションとサブセクションがあります。
- アマゾンウェブサービス(AWS)のデータベース
- RDS
- DynamoDB
- 赤方偏移
- ElasticCache
- OracleCloudPlatform上のデータベース
- Oracleデータベース
- MySQLデータベース
- OracleNoSQLデータベース
- 結論
アマゾンウェブサービス(AWS)のデータベース
アマゾンウェブサービス(AWS)は、さまざまなカテゴリのマネージドサービスを提供しています:
- リレーショナルデータベース用のリレーショナルデータベースサービス(RDS)
- DynamoDBforNoSQLデータベース
- 分析クエリベースのデータベース(データウェアハウス)のRedshift
- メモリ内キャッシュ用のElasticCache
RDS
リレーショナルデータベースサービスは、図1に示すように、一般的に使用されるリレーショナルデータベース(Oracleデータベース、MySQLデータベース、SQL Server、PostgreSQL、MariaDB、および独自のAurora)向けのクラウドホスト型マネージドサービスです。
図1: RDSでホストされているデータベース
RDSをローカルデータベースのより良い代替手段にしているのは、RDSが可変容量、DBAタスクの自動化、クラウドにプロビジョニングされたハードウェア、およびデータベースの自動バックアップとパッチ適用を提供することです。 RDSデータベースは、本番環境と開発/テスト環境の両方を提供します。 RDSデータベースは、S3、IAM、CloudWatch、Database Migration Service、CloudTrailなどの他のAWSサービスと完全に統合されています。 S3は、データベースのバックアップと復元に使用されるバックアップとスナップショットの保存に使用されます。 IAMはアクセス管理用です。 CloudWatchは、モニタリングとロギング用です。 CloudTrailは、API呼び出しを監査するためのものです。データベース移行サービスは、データベースを移行するためのものです。ローカルデータベースをクラウドに移行するか、クラウド内の異なるデータベース間で移行します。 RDSには、複数のアベイラビリティーゾーンにデータベースを展開するオプションがあります。
RDSでは、商用データベースOracleとSQLServerのさまざまなエディションを利用できます。 Auroraは、MySQLおよびPostgreSQLデータベースと完全に互換性があり、次の利点を提供する高性能データベースです。
- 高スループット(5xMySQLおよび3xPostgreSQL)
- フォールトトレラントな自動スケーリングSSDストレージ(最大64 TB)
- 低レイテンシと自動フェイルオーバーのための複数のリードレプリカ
- フォールトトレラント。ディスク障害は、サービスを失うことなく修復されます。
- 高可用性
- 増分バックアップとポイントインタイムリカバリ
- ネットワーク分離(VPC)、IAMを使用したリソースレベルのアクセス許可、およびデータベースを安全にするための暗号化
RDSデータベースは、図2に示すRDS上のPostgreSQLデータベースなど、一般的に使用されるSQLクライアントでアクセスするためのエンドポイントを提供します。
図2: RDS上のPostgreSQLデータベース
DynamoDB
DynamoDBは柔軟なデータモデルのNoSQLデータベースであり、低レイテンシー(1桁のミリ秒)、予約済み容量を取得するための読み取りおよび書き込み容量の自動スケーリング、テーブル内の任意のフィールド(属性)に対する効率的なクエリのためのグローバルセカンダリインデックスを提供します。モニタリングとロギングのためのCloudWatchとの統合。応答時間が比較的長い場合(マイクロ秒単位)、DynamoDB Accelerator(DAX)サービスを使用して、結果整合性のあるデータの応答時間を短縮できます。 DynamoDBテーブルを図3に示します。
図3: DynamoDBテーブル
赤方偏移
Redshiftは、SQL標準を使用してローカルディスクに格納されたペタバイトスケールの構造化データのOLAP(オンライン分析処理)用のデータベース(データウェアハウス)であり、RedshiftSpectrumを使用してS3に格納されたエクサバイトスケールの非構造化データにクエリを拡張します。 Redshift Spectrumでは、CSV、TSV、Parquet、Sequence、RCFileなどのオープンデータ形式を使用できます。 Redshiftは、スケーラビリティ、フォールトトレランス、自動バックアップ、暗号化、CloudWatchを使用したモニタリングとロギングの統合、VPCを使用したネットワーク分離など、ほとんどのAWSサービスと同じマネージドサービス機能を提供します。 Redshiftは、一般的に使用されるSQLクライアントを使用してアクセスするための標準のPostgreSQL ODBCおよびJDBCドライバーに加えて、カスタムODBCおよびJDBCドライバーを提供します。 Redshiftクラスターは、プロビジョニングされたエンドポイントでアクセスできます(図4のRedshiftクラスターの場合)。
図4: Redshiftクラスター
ElasticCache
Amazon ElasticCacheは、クラウド内の分散型メモリ内キャッシュです。 ElasticCacheクラスターには、ElasticCache forRedisとMemcachedの2つのクラスターエンジンオプションを使用できます。 ElasticCache for Redisは、データベース、キャッシュ、およびメッセージブローカーとして使用できるメモリ内データ構造ストアです。 Memcacheは、動的Webアプリケーションを高速化するために設計された高性能の分散メモリオブジェクトキャッシュです。図5に示すように、キャッシュ用に設計されたいくつかのノードタイプオプションを使用できます。
図5: キャッシュノードタイプ
ElasticCacheでは予約済みノードを使用できます。自動バックアップとSNS通知はElasticCacheで利用できます。 ElasticCache memcachedクラスタークライアントは、.NET、Java、PHPなどのさまざまな言語で利用できます。 PHPクライアントは、PHP5.3からPHP7.0までのいくつかのPHPバージョンで使用できます。 ElasticCacheデータベースを図6に示します。
図6: Redis ElasticCache
OracleCloudPlatform上のデータベース
Oracle Cloud Services Platformには、OracleDatabase用のOracleDatabaseCloudServiceとMySQLデータベース用のOracleMySQLCloudServiceが含まれています。 Oracle Cloud Servicesは、AWSサービスと同様に、さまざまなカテゴリにグループ化されています。ただし、Oracle Database Cloud Serviceはデータベース用であり、Oracle IaaSCloudServicesはクラウド上でデータベースを実行するために必要なインフラストラクチャ用です。
Oracleデータベース
図7に示すように、Oracle Database on the Cloudは、スタンドアロンデータベースよりも多くのエディションで利用できます。
図7: Oracle Database on Cloud Editions
クラウド上にOracleDatabaseを作成するには、図8に示すように、Oracle DatabaseCloudServiceダッシュボードで「サービスの作成」をクリックします。
図8: OracleDatabaseCloudServiceの作成
サポートされているデータベースエディションは、図9に示すように、11g R2、12c R1、および12cR2です。
図9: OracleDatabaseエディション
12cを使用する場合、デフォルトでプラガブルデータベースが作成され、そのためにPDB名を構成する必要があります(図10を参照)。バックアップとリカバリの場合、使用可能なオプションは、ディスク、クラウド、ディスクとクラウド、およびなしです。
図10: PDBを含むOracleDatabase12cサービスの構成
OracleDatabaseCloudサービスを図11のダッシュボードに示します。
図11: Oracle Database Cloud Service
図12に示すように、Oracleデータベース用にパブリックIPが作成されます。
図12: OracleDatabaseCloudServiceのパブリックIP
データベースリソースには、OCPU、メモリ、およびストレージが含まれます。これらも図12にリストされています。OCPU、メモリ、およびストレージは個別に構成できませんが、リソースの設定が事前に選択されたコンピューティングシェイプを選択する必要があります。図13の[スケールアップ/ダウン]オプションに示すように、データベースはスケールアップまたはスケールダウンできます。
図13: スケールアップ/スケールダウン
図14に示すように、[スケールアップ/ダウン]ダイアログで計算形状を選択できます。
図14: 計算形状の選択
図15に示すように、データベースサービスでは監視メトリックを使用できます。
図15: モニタリング指標
MySQLデータベース
Oracle CloudでのMySQLデータベースサービスの作成は、Oracleデータベースサービスの作成に似ています。提供する必要のあるMySQLデータベース構成設定には、サービス名(図16を参照)、コンピューティングシェイプ、使用可能なデータベースストレージ(GB)、管理ユーザー(デフォルトではroot)、管理パスワード、データベーススキーマ名、およびバックアップが含まれます。およびリカバリ構成。
図16: MySQLデータベースサービスの作成
図17に示すように、MySQLデータベースサービスのConnect記述子とパブリックIPが作成されます。
図17: OracleCloudのMySQLデータベースサービス
OracleNoSQLデータベース
Oracle Cloud Serviceは、Oracle NoSQLデータベースのマネージドサービスも提供します。その主な機能には、高可用性、トランザクション、並列クエリ、低レイテンシのデータストレージとクエリ、C、Java、Nodeなどのいくつかのクライアント言語のAPIサポートが含まれます。 Oracle NoSQL on the Cloudは、ストレージ用のKey-Value、テーブル、JSONをサポートする柔軟なデータモデルを提供します。 Oracle NoSQL Cloudサービスは、動的なアプリケーションスキーマを提供し、効率的なクエリ結果のために単純型と複雑型(マップと配列)にインデックスを付ける値ベースのインデックスと、共有ローカルインデックスである一貫性のあるインデックスを使用してパフォーマンスを向上させます。クラウド上のOracleNoSQLの管理は、クラスター全体での効率的なデータアクセスのための自動負荷分散を使用して簡素化されます。クラスタ管理には、スケーリングとローリングアップグレードが含まれます。 Oracle NoSQL DatabaseCloudServiceは「近日公開」です。
結論
この記事では、AWSとOracleCloudPlatformが提供するデータベースサービスについて説明しました。 AWSとOracleCloudのデータベースは、比較的小規模なローカルデータベースサービスでは実現できない機能を備えたマネージドサービスです。