Amazon Web Services(AWS)のクラウドデータベースサービスを検討する場合、Amazon Redshift と Amazon Relational Database Service(RDS)が、まず候補になると思います。両者について、少し掘り下げてみたいと思います。
Redshift と RDS は、類似した AWS のデータベースサービスであり、混同されることもよくありますが、それぞれ適切なユースケースは異なります。必ずしもどちらかを選択する必要はなく、両者を並行して実施することは完全に可能です。MySQL や PostgreSQL などのデータベースプラットフォームを両方のサービスに統合することもできます。
Amazon RDS: クラウド・データベース
クラウドで利用できるリレーショナルデータベースが必要ということならば、Amazon RDS を導入すればいいだけの話です。インフラストラクチャがどう構築されているかに関わらず、データベースをすばやく簡単に起動できます。
RDS には AWS クラウドという基盤があるので、ワークロードに応じてサービスを迅速にスケーリングできます。唯一の制限は、64TBの最大データベースサイズです。
RDS には、Amazon Aurora DB、Oracle、Microsoft SQL、MySQL、PostgreSQL、MariaDB など、使用するデータベースエンジンのオプションも用意されています。
オンプレミスのデータベースに相当するデータベースをクラウド上で使いたい場合、RDS は最適なオプションです。
Amazon Redshift: エンタープライズ・データウェアハウス
RDS がデータベースなのに対して、Redshift はエンタープライズ・データウェアハウスです。
Redshift も、RDS と同様、簡単に拡張でき、最大ペタバイトレベルまで大きくスケールアップ可能です。Redshift は、ノードを追加するだけで、容量とパフォーマンスの両方を拡張できるクラスタにデプロイすることで非常に高いスケーラビリティを実現できます。
また、Redshift インスタンスを最適化して、パフォーマンスを向上させたり、ストレージを増やしたりすることができます。
Redshift は、もともとは PostgreSQL からの派生であり、PostGres をよく知っていれば、Redshift を理解するのは簡単なはずです。
従来のデータベースエンジンのパフォーマンスやスケーラビリティに十分満足ができなければ、Redshift を検討してみることをお勧めします。
RDS と RedShift を並行して実行
RDS と RedShift とが似ているとは言っても、それぞれに独自のメリットがあり、並行して実行することで両方のメリットを活かすことができます。例えば、Redshift クラスタの隣に PostgreSQL RDS インスタンスを簡単にデプロイできます。Redshift は、PostgreSQL と十分な互換性があるため、RDS データベースから Redshift にクエリし、結果を RDS に返すことができます。
AWS big data blog で説明されているように、両サービス併用の適例は、エグゼクティブダッシュボードです。RedShiftから頻繁に要求されるデータをキャッシュして、マテリアライズドビューを作成できます。ビューは Redshift にクエリでき、次のクエリが来ると、マテリアライズドビューに引き渡されます。
クエリは、Redshift を完全にバイパスして、PostgreSQL RDS インスタンス内で処理されます。データを最新に保つために、後で、マテリアライズドビューを更新するようにします。
サードパーティーのデータベースを統合
前述のように、RDS インスタンスは様々な異なるデータベースエンジンのうちの1つを実行することができます。デプロイによっては、データベースを AWS Redshift と同期できるサードパーティー製ツールがある場合もあります。プッシュボタン方式で AWS のリードレプリカ(列ベースではなく、行ベースのストレージ用に最適化)を作成できるものがあります。Redshift を使用すると、大規模なデータセットの分析を簡単に実行できます。Informatica などの他のツールを接続することもできます。
他のデータベースを Redshift に統合するもう一つの方法は、AWS Data Pipeline を使用することであり、これは AWS ネイティブな方法です。Data Pipeline には最近、Redshift と対話するためのテンプレートが追加され、データのコピーがずっと簡単になりました。S3またはRDSデータベースに保存されているファイルを簡単にコピーでき、データのリードレプリカを作成できます。Data Pipeline を使用すれば、サードパーティーのソフトウェアをフローに統合する必要はありません。
まとめ
Redshift と RDS のどちらにも説得力があるユースケースがあります。どちらを使用するのがいいか迷ったら、データの規模と、所有するデータの使用方法について熟考すると答えが見えてくるかもしれません。また、必ずしも、RDS か RedShift かのどちらかに決めなければならないというものでもありません。両サービスとも、個別でも、並行して使っても、うまく機能します。
Adam Bertram
Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.