アマゾン ウェブ サービスでは、開発者に対してさまざまなデータベース管理の選択肢があります。マネージド型のリレーショナルデータベースおよびマネージド型の NoSQL データベースを実行したり、お客様独自のオンラインデータベースを Amazon EC2 と Amazon EBS のクラウドで運用したりもできます。
| 要件 | お勧めする選択肢 |
| リレーショナルデータベースが必要であるが、管理作業を最小限にしたい | Amazon RDS。マネージド型のリレーショナルデータベースサービスで、データベースエンジンを MySQL、Oracle、SQL Server、PostgreSQL、Amazon Aurora、MariaDB から選択できます。コンピューティングとストレージのスケールが可能であり、マルチ AZ による可用性、リードレプリカなどの特長があります。 |
| 高速でスケーラブルなノンリレーショナルデータベースサービス | Amazon DynamoDB。マネージド型 NoSQL データベースで、きわめて高速のパフォーマンス、シームレスな拡張性と信頼性、低コストといった特長があります。 |
| 運用が簡単なメモリ内キャッシュ | Amazon ElastiCache。マネージド型メモリ内キャッシュクラウドサービスで、メモリ内キャッシュエンジンを Memcached と Redis から選択できます。 |
| ペタバイト規模の高速データウェアハウス | Amazon Redshift。マネージド型データウェアハウスサービスで、シンプルで費用対効果の高さが特長であり、お客様はすべてのデータを既存のビジネスインテリジェンスツールで効率的に分析できます。 |
| 自分で管理できるリレーショナルデータベース | お客様のニーズに応じたリレーショナル AMI を Amazon EC2 および EBS で実行することにより、コンピューティングおよびストレージのスケ-ジング、インスタンスに対する完全な制御などが得られます。 |
このページには、以下の情報カテゴリが含まれています。クリックすると該当箇所にジャンプします。
Amazon Relational Database Service(Amazon RDS)は、クラウド上でリレーショナルデータベースを簡単にセットアップ、運用、拡張することのできるウェブサービスです。このサービスは、手間のかかるデータベース管理タスクをお客様の代わりに行いながら、コスト効率がよく、サイズ変更が可能な容量を提供します。これによってお客様は自身のアプリケーション開発やビジネスに集中することができます。
Amazon RDS では、使いなれた MySQL、Oracle、SQL Server、あるいは PostgreSQL データベースエンジンの機能を引き続き利用できます。つまり、既存のデータベースで現在すでに使用しているコード、アプリケーション、およびツールは、Amazon RDS で使用することができます。Amazon RDS は、データベースソフトウェアに自動的にパッチを当て、データベースをバックアップし、ユーザーが定義した保持期間バックアップを格納して、特定時点への復旧を有効にします。1回の API 呼び出しで、お客様の関係データベースに関連する計算リソースまたはストレージ能力を拡張することができ、この柔軟性から恩恵を受けることができます。さらに、Amazon RDS データベースエンジンには、2 種類のまったく異なる補完的なレプリケーション機能である、マルチ AZ 配置およびリードレプリカが用意されています。これらは、データベースの可用性を強化し、予期しない停電などから最新のデータベース更新を保護するために、単独で、または連携して使用できます。また、リードレプリカを使うと、読み込み頻度の高いデータベースの作業負荷に対処するために、単一の DB インスタンスの容量制限値を超えて拡張を行なうことができるようになります。
Amazon RDS は、次の要件のうち2つ以上をお持ちのお客様にお勧めします。
- 既存または新規のアプリケーション、コード、またはツールにリレーショナルデータベースが必要である。
- MySQL、MariaDB、Oracle、SQL Server、または PostgreSQL データベースエンジンへのネイティブアクセスが必要で、インフラストラクチャとデータベースの管理を AWS に任せたい。
- Multi-AZ とリードレプリカ機能を利用し、データベースの可用性と読み取りのスケーラビリティの強化を実現したい。
- データベースの計算およびストレージのリソースを API 呼び出し 1 つで拡張できるという柔軟性が気に入っており、支出は実際に消費したインフラストラクチャリソースの分だけにしたい。
Amazon Aurora は、MySQL と互換性のあるリレーショナルデータベースエンジンで、高性能の商業用データベースのスピードと可用性、オープンソースデータベースの簡素性とコスト効率性を併せ持っています。Amazon Aurora は、MySQL の 5 倍の性能を持ち、同様の機能や可用性を提供している商用データベースの 10 分の 1 の価格で提供されます。Amazon RDS は、プロビジョニング、パッチ処理、バックアップ、復旧、障害検出、修復などのデータベースのルーチンタスクを処理します。
現在、マルチ AZ 配置が行えるのは、Amazon RDS for MySQL、MariaDB、Oracle、PostgreSQL、および Amazon Aurora です。現在、リードレプリカが行えるのは、Amazon RDS for MySQL、PostgreSQL、Amazon Aurora です。
詳細については、Amazon RDS 詳細ページをご参照ください。
Amazon DynamoDB が最も適しているのは、クラウドデータベースアプリケーションのレイテンシーを低く抑えることと、規模にかかわらずパフォーマンスが予測可能であることが求められるが、クエリに関しては結合やトランザクションのような複雑な機能は必要ない場合です。Amazon DynamoDB はマネージド型の NoSQL データベースサービスであり、高いパフォーマンス、予測可能なスループット、および低コストが特長です。セットアップ、運用、拡張が容易です。
Amazon DynamoDB ならば、最初は小規模で、必要なスループットとストレージを指定しておいて、後で処理能力を拡張することも容易です。Amazon DynamoDB は、要求された処理能力を達成するために、自動的にデータをパーティション分割していくつかのサーバーに分散します。さらに、DynamoDB ではデータのレプリケートが自動的に行われ、1つの AWS リージョン内の Availability Zone 間で同期が維持されるので、高可用性とデータ永続性が確実になります。
Amazon DynamoDB は、ドキュメントおよびキーと値の両方のデータモデルをサポートします。サービスは固定のスキーマを必要とせず、主にプライマリキーによるデータアクセスが可能です。さらに、このサービスでは強一貫性読み取りがデフォルトとなっており、ネイティブでアトミックカウンタがサポートされるので、複数の数値属性のアトミックなインクリメントやデクリメントを1回の API 呼び出しで行うことができます。
Amazon DynamoDB は、次のような要件を2つ以上お持ちのお客様にお勧めします。
- 拡張性の高いアプリケーションを構築する必要があり、きわめて高いスループットと、読み取りと書き込みの両方における遅延の低さが求められる
- きわめて大きなデータセットにも対応できる拡張性が求められる一方で、パフォーマンスは予測可能でなければならない(最初はデータセットが小規模であったとしても)
- 主にキーを使用してデータにアクセスする
- 高可用性の分散データベースクラスタの管理の負担を排除したい
詳細については、Amazon DynamoDB 詳細ページをご覧ください。
ElastiCache は、メモリ内キャッシュのデプロイ、運用、スケーリングをクラウド内で簡単に実行できるウェブサービスです。このサービスは、低速のディスクベースのデータベースに完全に依存せずに、高速の管理されたメモリ内のキャッシュから情報を取得できるようにすることで、ウェブアプリケーションのパフォーマンスを向上させます。ElastiCache は、次の 2 つのオープンソースのインメモリキャッシュエンジンをサポートしています。
- Memcached – 幅広く採用されているメモリオブジェクトキャッシュシステムです。ElastiCache は、Memcached に準拠するプロトコルです。そのため、既存の Memcached 環境でお客様が現在使用しているツールは、サービスでシームレスに機能します。
- Redis – 並べ替えられたセットやリストなどのデータ構造をサポートする、よく使用されているオープンソースのメモリ内のキー値ストアです。ElastiCache は、クロス AZ 冗長性を達成するために使用できるマスター/スレーブレプリケーションとマルチ AZ をサポートしています。
Amazon ElastiCache は、失敗したノードを自動的に検出して置き換え、自己管理インフラストラクチャと関連付けられたオーバーヘッドを減らします。また、データベースの過負荷により、ウェブサイトとアプリケーションのロード時間が低下するリスクを軽減する回復力のあるシステムを提供します。Amazon CloudWatch との統合により、Amazon ElastiCache はお客様の Memcached ノードまたは Redis ノードに関連付けられた主要パフォーマンスメトリックスの可視性を強化します。
Amazon ElastiCache の AWS マネジメントコンソールを使用すると、ほんの数分でメモリ内のキャッシュ層をインフラストラクチャに追加することができます。
詳細については、Amazon ElastiCache 詳細ページを参照してください。
Amazon Redshift は高速でマネージド型、ペタバイト規模のデータウェアハウスサービスです。シンプルで費用対効果の高さが特長であり、お客様はすべてのデータを既存のビジネスインテリジェンスツールで効率的に分析できます。小規模で開始するのであれば、1 時間あたりわずか 0.25 USD で、長期契約も前払いも不要です。1 ペタバイトを超える規模まで拡大しても、料金はテラバイトあたり年間 1,000 USD と、他の多くのデータウェアハウスソリューションの 10 分の 1 以下です。
Amazon Redshift では、クエリパフォーマンスを高速化するために列指向ストレージ技術が採用されており、複数のノードにまたがるクエリの I/O 効率と並列度が向上しています。Redshift では、PostgreSQL JDBC および ODBC の標準的なドライバが使用されているので、既存のさまざまな SQL クライアントをそのまま使用できます。データロードの速度はクラスターのサイズに応じて拡大し、Amazon S3、Amazon DynamoDB、Amazon Elastic MapReduce、Amazon Kinesis や、任意の SSH 対応ホストとの統合が可能です。
データウェアハウスのプロビジョニング、設定、モニタリングに伴う一般的な管理タスクについては、ほとんどが自動化されています。Amazon S3 へのバックアップは継続的であり、増分だけが自動的にバックアップされます。復元も高速で、数分後にはクエリを開始できるようになり、これと並行してデータを戻す処理がバックグラウンドで実行されます。セキュリティは初めから組み込まれています。保管中や移動中のデータを、ハードウェアアクセラレーション対応の AES-256 および SSL を使用して暗号化できます。Amazon VPC を使用してクラスターを隔離することや、キーの管理にハードウェアセキュリティモジュール(HSM)を使用することもできます。
Amazon Redshift は、次のような要件を 2 つ以上お持ちのお客様にお勧めします。
- データやクエリの複雑度の増加に伴ってスケーリングし、高パフォーマンスを保つ
- レポート処理と分析処理により、OLTP 作業負荷のパフォーマンスが低下しない
- 大容量の構造化データを維持し、標準的な SQL や既存のビジネスインテリジェンスツールを使用してクエリを行う
- 独自のデータウェアハウスを実行し、セットアップ、耐久性、モニタリング、スケーリング、パッチの処理を行う管理者の負荷を軽減したい
詳細については、Amazon Redshift パートナーページを参照してください。
開発者は、Amazon EC2 上でいくつかの主要なリレーショナルデータベースを使用することができます。 Amazon EC2 インスタンスはオンラインデータベース実行のために使用することができ、データは Amazon EBS ボリューム内に格納することができます。Amazon EBS は、Amazon EC2 の高速で信頼性ある永続的なストレージ機能です。Amazon EC2 Relational Databases AMI を使用すれば、開発者は煩わしいインフラのプロビジョニングを回避することができる一方、様々な標準データベースエンジンにアクセスすることができます。Amazon EC2 Relational Databases AMI によって、開発者は、一般的には新規データベースサーバーのインストールに伴うインフラストラクチャやハードウェアのプロビジョニングを省略することができます。その一方で、データベースサーバーの稼動に関連する管理や、チューニングといったタスクを完全にコントロールすることができます。
当社は Amazon EC2 リレーショナルデータベース AMI を、以下のようなお客様にお勧めします。
- 広範なデータベース エンジンからの選択を望んでいる。
- データベース サーバーに対して十分な管理コントロールを発揮したいと望んでいる。
AMI によるリレーショナルデータベースのインストール
Amazon Machine Image(AMI)は、暗号化されたマシンイメージで、Amazon S3 に格納されています。ここにはお客様のソフトウェアのインスタンスを起動するのに必要なすべての情報が含まれています。すでに多くの AMI がリレーショナルデータベースを同梱しています。AMI および AWS Marketplace の詳細については、以下をご覧ください。
「AWS での NoSQL データベースの実行」のページをご覧ください。このページでは、AWS 上で利用できる NoSQL データベースの選択肢について詳しく説明しています。
Amazon EC2 リレーショナルデータベース AMI を利用することにしたユーザーは、Amazon EBS を使用して、データベースサーバーのデータをホストすることになります。Amazon EBS は、Amazon Simple Storage Service(Amazon S3)に対して、スナップショットを保存する機能を提供します。これらのバックアップスナップショットは、ジョブスケジューラまたはグラフィカルエージェントを使用して、従来のシステムと同様の方法で実行できるはずです。Amazon S3 は、複数のロケーションに自動的に複製される堅牢なストレージを提供します。
Amazon RDS ユーザーは、自動バックアップ機能を利用することができます。これによって、バックアップスナップショットが撮られる頻度と望ましい保存期間(日数)を選択することができます。Amazon RDS は、設定されるデータベースの最大サイズまで、無料のバックアップストレージを提供しています。Amazon RDS は自動的にデータベースとトランザクションログをバックアップし、保存期間内において、最大5分前まで、任意のポイントへ復元することができます。ユーザーは、彼らが作成した可能性のある、ユーザー起動型の任意のバックアップスナップショットを復元することもできます。
Amazon DynamoDB は高可用性が確保されており、リージョン内の 3 つの設備全体で同期データレプリケーションを自動で行います。これにより、個々のマシンや設備レベルの障害からもデータを守ることができます。Amazon DynamoDB データは、99.999999999% の耐久性を持つように設計された Amazon S3 か、異なる AWS リージョンの DynamoDB にエクスポートできます。
クラウドデータベースの安全を守るうえでの第一歩は、そのデータベース固有のセキュリティガイドラインを遵守し、アクセスコントロールに対して特別な注意を払うことです。ベンダーまたはプロジェクトのウェブサイト上で、あなたが選択したデータベースを対象とする文書を参照してください。
データベースのために Amazon EC2 および EBS を使用している場合は、Amazon EC2 分散型ファイアウォールも使用して、データベースへのアクセスを制限する必要があります。グループアクセス規則を使用して、あなたのインスタンスのみがデータベースにアクセスするようにすることができます。
Amazon DynamoDB や Amazon RDS のセキュリティなど、AWS セキュリティのすべての概要は、ホワイトペーパー「セキュリティプロセスの概要」でご覧ください。