Amazon RDS:多様なDBニーズに対応する各種サービス
AWSのフルマネージドのリレーショナルデータベースサービスには、Amazon RDSがある。これにはMySQLやPostgreSQL、Oracle、SQL Server、さらにAuroraと多くのデータベースエンジンが用意されている。RDSの他にもデータ分析に特化したAmazon Redshiftがあり、NoSQLのAmazon DynamoDB、グラフデータベースのAmazon Neptuneなどもある。
たくさんのデータベースサービスがあるのは、「顧客の多様なジョブに対し、適切なツールを用意したいからです」とパサック氏。異なる性質のワークロードに最適化したツールを用意すれば、ワークロードに合った性能が得られると説明する。とはいえリレーショナルデータベースだけでもたくさんの種類があり、ユーザーは選択に悩むことになりそうだ。AWSでは、ユーザーが適切な選択ができるようドキュメントを用意し、サポートサービスも充実させている。他のデータベースからの移行支援も行い、これらでユーザーが最適なものを「選べる」ことが、AWSの柔軟性という魅力につながっている。
複数のサービスを利用するとなれば、データが分散化したり重複したりする懸念も生まれる。また複数サービスの組み合わせで、運用管理が複雑化する心配もある。これらの懸念に対し「技術を選択する際には、何らかのトレードオフが発生するものです。複数サービスを使うことでの手間はあっても、AWSの多くのユーザーは自ら最適なサービスを選択でき、それにより機能、性能、コストの面で優位性があると考えているはずです」と言う。
AWSは、複数データサービスの利用に手間がかかることは理解している。そのため、それを簡素化する取り組みにも注力する。その1つがAmazon Athenaのフェデレーテッド・クエリだ。これを利用すればリレーショナルデータベース、NoSQLデータベース、オブジェクトデータ、カスタムデータソースなどに保存されているデータをまたがった形で扱える。
「ゼロETL」:Aurora ✕ Redshiftのデータ連携とリアルタイム分析
またAWSではOLTPにAmazon Auroraを、データウェアハウスなどの分析にはAmazon Redshiftを利用するケースは多い。これら2つを連携させ利用する際の手間を削減するのが「ゼロETL」の機能だ。ゼロETLを使えば、ほぼリアルタイムでAmazon Auroraのトランザクションデータを、Amazon Redshiftから分析できる。この時にデータの抽出、変換、格納というETL処理は不要だ。Amazon Auroraにデータが書き込まれると、数秒後にはAmazon Redshiftに自動で複製されシームレスにデータを分析に利用できる。
複数データベースサービスを利用する際のアクセスコントロールやセキュリティの担保には、AWS Identity and Access Management(IAM)を用意する。Amazon DataZoneも、複数サービスを利用する際にユーザー権限を1箇所で管理可能として、適切なアクセスコントロールとガバナンスの管理を容易にする。これらの機能の活用で、複数データベースサービス利用する際の運用管理の懸念を払拭するよう努力を続けている。「セキュリティは、AWSにとって極めて重要です」とパサック氏は強調する。
AWSの責任共有モデル
そしてAWSでデータベースサービスを利用する際にも、ユーザーは責任共有モデルを理解する必要がある。サービス提供側のAWSではインフラ部分のセキュリティの担保に責任を持つ。そのためにインフラとサービスを、AWSではさまざまなセキュリティ規格などにも準拠させている。
その上でデータベースサービスを利用する際のユーザー権限管理などは、利用者側で管理しなければならない。そのために前出のAmazon IAMがあり、他にもセキュリティを担保するためにデータ格納や経路を暗合化する機能、暗号化の鍵管理機能、ユーザーアクティビティの監査ができるAWS CloudTrailなども提供している。さらに重要なのが、ユーザーが構築したアプリケーションのセキュリティ設定だ。これについてもAWSが提供するさまざまなツール、あるいは3rdパーティーツールなどを活用し「しっかり守って欲しい」とパサック氏は言う。