クラウド図鑑 Vol.10

概要

Amazon Web Services(AWS)は、従来型のリレーショナルデータベース(RDB)から、より大規模なデータを扱えるNoSQL、さらにデータ分析系の処理に向けたデータウェアハウス(DWH)まで、さまざまなデータベースサービスを提供している。よく利用されるRDBのマネージドサービスが「Amazon RDS」であり、データベースエンジンは、MySQL、PostgreSQL、Oracle、SQL Server、Amazon Aurora、MariaDBから選択できる。よりクラウド的な処理が得意なNoSQLのマネージドサービスが「Amazon Dynamo DB」で、主にキーによってデータにアクセスし、RDBのような結合やトランザクションの処理はできないが、高いスループットとスケーラビリティと低レイテンシーでの処理能力が得られる。従来は初期費用が大きいとされてきたDWHに特化したマネージドサービスが「Amazon Redshift」でペタバイトクラスのデータベースをテラバイトあたり年間1000ドルで利用できる。

Amazon RDSの設定画面

Screenshot 2015-07-14 at 01.53.06 - Display 1

(クリックで拡大)

URL   http://aws.amazon.com/jp/running_databases/
2015年7月14日 株式会社クラウディット 中井雅也

機能

Amazon RDSでは、サーバーやストレージなどのインフラとRDBソフトウェアの導入作業、バックアップ、パッチ管理、レプリケーションなど、一般的に手間のかかるデータベースの導入や管理タスクがマネージドサービスとして提供される。AWSの特長である複数のAvailability Zone(AZ)を利用する「マルチ AZ配置」により、地理的に離れた別なデータセンターで稼働するレプリカが自動フェールオーバーする高可用性構成をとることができる(MySQL、Oracle、PostgreSQL、Amazon Aurora、SQL Server、MariaDB)。また参照パフォーマンスを高めるリードレプリカを作成できる(MySQL、PostgreSQL、Amazon Aurora、MariaDB)。
Amazon DynamoDBでは利用者はデータベーステーブルを作成し、スループットを設定するだけで、残りの処理は自動的に行われ、インフラとソフトウェアの導入、ソフトウェアの修正、分散型データベースクラスターの操作、スケーリングによる複数のインスタンスでのデータのパーティション化などのデータベース管理タスクがマネージドサービスとして提供される。
Amazon RedshiftにおいてもDWHのハードウェアまたはソフトウェアの導入、ソフトウェアの修正、分散型データベースクラスターの操作、スケーリングによる複数のインスタンスでのデータのパーティション化などのデータベース管理タスクがマネージドサービスとして提供される。カラムナー(列指向)データベースとMPPの並列処理で大規模データの高速検索や高速集計を可能にする。表データは圧縮されストレージの処理を効率化する、

使いやすさ

いずれのデータベースサービスも日本語化されたAWSコンソールから設定や構成ができる。RDSのマルチAZ構成やバックアップ、スナップショットもコンソールからの操作が可能。ドキュメントも豊富に用意されている。しかしながら、AWSの高機能なインフラを使いこなすには独自の設計思想や用語を習得する必要がある。またRDSはマネージドサービスであるがゆえに、構成・設定や運用の面ではオンプレミスと完全にあわせられない部分があり(ログの運用、レプリケーション、バックアップ時間など)、「RDSにあわせる」という発想も必要になる。一方でアプリケーションの開発者からは、RDSは普通のデータベースそのものであり、違和感なく使える。RedshiftのDWHもODBC/JDBCのインタフェースによって、よく利用されるBIのツールからアクセスすることができる。

マニュアルや書籍など

AWSによって豊富なマニュアルやチュートリアル、リファレンスアーキテクチャなどのドキュメントが用意されている。

拡張性

Amazon RDSは、EC2と同様にスケールアップができる。大きなインスタンスタイプ(最大32VCPUまで)を指定、あるいはMySQL、Oracle、または PostgreSQL と、Amazon RDS プロビジョンド IOPS ストレージを使用している場合は、ストレージを最大 3 TB まで、IOPS を最大 30,000 までプロビジョニングして、スケーリングできる。さらにMySQL、PostgreSQL、Amazon Aurora、MariaDB  の場合は、デプロイしたデータベースインスタンスにリードレプリカを関連付け、1 つのデータベースインスタンスの容量を超えてリード処理能力を拡張できる。
現在プレビューの新データベースエンジン「Aurora」は、従来より高いスケーラビリティを持つよう設計されており、通常のMySQLの5倍のスループットが得られる上に、3 つのAZに最大 15 個の Amazon Aurora レプリカを追加しリード処理を拡張可能で、ストレージも 10 GB から 64 TB まで、必要に応じて自動で拡張する。
Amazon DynamoDBではデータの格納に制限はなく、データが増えると、保存するために十分な数のマシンリソースに自動的にデータが分散される。処理能力(スループット)も、API または AWS Management Console を使用して増やすことが可能で、実現できる最大スループットに理論的な制限はないという。
Amazon RedshiftによるDWHにおいては、処理能力のスケールアップはクラスターノードの追加によって行う。最大で36VCPU/244GBメモリー/16TBディスクのインスタンスを最大100ノード拡張し合計1.6PBまで拡張可能。

可用性

Amazon RDSにおいては、マルチAZ構成をとることで、別AZにスタンバイDBが用意され、障害発生時に自動的にフェールオーバーする。最大35日間まで設定可能なRDSの自動バックアップ機能により、DB インスタンスのポイントインタイムリカバリが可能で、ユーザーの指定によって、最大 5 分前まで、保持期間内の任意の時点に DB インスタンスを復元させることができる。また、DB スナップショットにより、利用者からバックアップを行い、DB スナップショットから新しい DB インスタンスを作成することができる。
現在プレビューの新サービスAuroraでは、3 つのアベイラビリティーゾーンにわたるデータとバックアップデータの 6 つのコピーを、継続的にAmazon S3 に複製する。物理的なストレージ障害からのリカバリは透過的で、インスタンスは通常 1 分以内に再起動される。
DynamoDBでは、データが同じ AWS リージョン内の 3 つの施設間でレプリケートされるので、サーバー障害の発生やアベイラビリティーゾーンの停止に対する高い可用性を実現している。
Amazon RedshiftはDWHに特化したサービスであるため、マルチAZ配置には対応していないが、S3に保管したスナップショットやデータから別AZにRedshiftクラスターを復元することができる。ノードやストレージの障害に対しては自動的に修復が行われる。

SLA

2015年7月時点でマルチAZのRDSにはSLAがあるが、他サービスにはSLAはない。
RDSのマルチAZインスタンスのSLAは、月間稼働率が99.95%以上としており、達しない場合は請求金額が割り引かれる。

自動化機能

DBの起動やリソースの追加や拡張など、さまざまな操作をAPIで自動化が可能。

セキュリティ

Amazon RDS では、AWS Key Management Service (KMS) で管理するキーを使って、データベースの暗号化が可能であり、データだけでなく、バックアップ、リードレプリカ、スナップショットも暗号化することができる。またSQL Server および Oracle の Transparent Data Encryption をサポートする。Amazon VPC を使用すると、DB インスタンスを専用の仮想ネットワークの中に隔離できるほか、既存のオンプレミスの環境からIPsec VPNで接続できる。また、ファイアウォールを設定して DB インスタンスへのネットワークアクセスを制御できる。さらにAWS Identity and Access Management(IAM)を使用して Amazon RDS リソースへのアクセスを管理することができる。
DynamoDBでは、テーブルの所有者がテーブル内のデータに対して詳細なコントロールを行うための機能FGAC (Fine Grained Access Control)が提供されており、テーブル所有者は(呼び出し元)がテーブルのどの項目や属性にアクセスでき、どのようなアクション(読み込み/書き込み)を実行できるかを指定できる。このFGAC は、AWS Identity and Access Management (IAM)と統合されており、セキュリティ認証情報および対応するアクセス権限の管理は、IAM で行う。
Amazon Redshift では、業界標準の暗号化技術を用いて、通信中または保存されているデータを暗号化して保護する。通信中のデータを保護するため、クライアントアプリケーションと Redshift データウェアハウスクラスター間で SSL により通信が暗号化され。保存するデータを保護するため、データがディスクに書き込まれるときに、ハードウェアアクセラレーションを利用した AES-256 で各ブロックが暗号化される。VPCによって専用ネットワーク環境による隔離を行うことも可能である。

データセンターの場所

リージョンという形でデータセンターの場所を指定することができる。2011年に開設された東京リージョンをはじめとして、US(バージニア、オレゴンなど)、EU(アイルランド、フランクフルト)、アジア(シンガポール、シドニー)な1112リージョンから任意のリージョンを選択することができる。AWSはデータセンターの拡張を続けており、2016年1月には韓国リージョンが利用できるようになった。

実績・シェアなど

Amazon RDSはサムスンや、ユニリーバのようなエンタープライズ、 FlipboardやAirbnbのようなWebスケールのアプリケーション、 NASA JPLやObama for Americaのような大規模組織に積極的に採用されているという。DynamoDBはNoSQLのサービスということもあり、エンタープライズというよりはソーシャルのようなサービスで利用されることが多いようである。Redshiftは比較的新しいサービスであるが、無印良品やスマートニュースのような実績が増えつつある。

エコシステム

RDSは利用サイドから見れば通常のデータベースであり、OracleやSQL Server、MySQL、PostgreSQLのエコシステムはほぼそのまま利用できると考えられる。Redshiftは比較的新しいサービスであるがBIソフトウェアのTableau SoftwareやMicro Strategy、Pentaho、JasperSoftなどをはじめとしてパートナーが増加している。

価格および支払い方法

従量課金で時間単位の課金となる。価格はサービスごと、またリージョンによっても異なり、基本的にUSドルでのクレジットカード決済となる。

参考価格としては、RDSの東京リージョンのエントリーレベルのdb.t2.microインスタンス(1VCPU/1GBメモリー)がシングルAZで$0.026/時間、マルチAZ配置で$0.052/時間。Redshiftはdc1.largeインスタンス(2VCPU/15GBメモリー)が$0.314/時間。DynamoDBはデータの書き込み/読み込み回数とストレージ容量で課金されるため、ここでは割愛する。