
1)Amazon Redshiftとは?
Amazon Redshiftは、ペタバイト級(1ペタバイト=1000テラバイト)の大量データを処理する機能を備えたデータウエアハウス・サービスです。その特長は、驚くほどの高速性と投資対効果の高さです。
Amazon Redshiftは、小さく始めることも可能です。1ノードから始められます。
利用料金は3年のリザーブドインスタンスで、1テラバイト当たり年間999ドル(約11万円)、完全従量課金(オンデマンド)でも1テラバイト当たり年間3,330ドル(36.6万円)、1ヶ月あたりにするとわずか3万円です。これは、他社製のデータウエアハウス・ソリューションの10分の1以下の投資で済むという試算もあります。

Amazon Redshiftの特徴
超並列処理 | Amazon Redshiftには超並列処理(Massively Parallel Processing)アーキテクチャーが採用されており、クエリー操作の並列化と分散化によって、クラウド上のリソースをフルに活用できます。 |
列指向型(カラムナ型) | Amazon Redshiftは、クエリ性能を高速化するために列指向型(カラムナ型)を採用しています。BIシステムでは、特定の列のデータを大量に用いるケースが多いため、列単位でまとめてデータを保存・アクセスしたほうが効率的な処理が可能です。 |
既存のドライバーでのアクセス | Amazon Redshiftは、PostgreSQL JDBCおよびODBCの標準的なドライバーを使用しているので、既存の様々なSQLクライアントや、BIツールをそのまま使用できます。 |
様々なストレージサービスと連携 | Amazon Redshiftは、Amazon S3、Amazon DynamoDB、Amazon Elastic MapReduceなどと連携し、シンプルな操作でデータをロードできます。 |
管理作業を自動化 | Amazon Redshiftのノード構成、設定、モニタリング、バックアップなど運用管理については、ほとんどが自動化されています。Amazon S3へのバックアップも自動的に処理されます。バックアップからクラスターを復元する処理も高速です。 |
2)AWS Elastic MapReduce(EMR)とは?
Amazon EMRは、Amazonクラウド内でHadoopフレームワークを利用できるサービスです。
Hadoopフレームワークは、分散処理を実現するミドルウエアの一つで、例えば大量のログやトランザクションデータの集計などのバッチ処理を、複数のサーバーで並列処理するアプリケーションを開発できます。 クラスターを構成するインスタンス数を増減し、処理能力を調整できるので、ピーク時を想定したサイジングの必要がありません。
Amazon EMR では、Amazon S3、HDFS(Hadoopファイルシステム)、Amazon DynamoDBを含む複数のデータストアを利用できます。 さらに、Hive、Pig、HBase(大規模分散処理データベース)、Impala(高速分散処理機能を備えたソフト)など実績の豊富なHadoopツールをサポートしています。 また、R言語、Mahout(機械学習)、Ganglia(モニタリング)、Spark(インメモリ MapReduceといった様々なアプリケーションをサポートしています。

AWS Elastic MapReduce(EMR) の特徴
必要なリソースを柔軟に増減可能 | Amazon EMRでHadoop クラスターを実行すると、処理要求に応じてクラスター内の仮想サーバーの数を容易に増減することができます。 |
支払いは実際に使用した分だけ | Amazon EMR でクラスターを実行すれば、実際に使用した分だけの支払いで済みます。ピーク時のニーズに対応するために余分な容量を事前に購入しておく必要もありません。 Amazon EC2の料金とAmazon EMRの料金(利用した分)がかかります。 |
Hadoop アプリケーションのサポート | Amazon Redshiftは、Amazon S3、Amazon DynamoDB、Amazon Elastic MapReduceなどと連携し、シンプルな操作でデータをロードできます。以外にも、Amazon RDSやAmazon Redshiftも利用できます。 |
複数のデータストアに対応 | Amazon EMR では、Amazon S3、HDFS(Hadoop のファイルシステム)、Amazon DynamoDBを含む複数のデータストアを利用できます。複数のデータストア間でデータをやり取りすることもできます。 |
先進的なツールとの連携 | Hive、Pig、HBase(大規模分散処理データベース)、Impala(高速分散処理機能を備えたソフト)など実績の豊富なHadoopツールをサポートしています。HiveとPigは、いずれも、テキスト文書やログファイルといった、複雑で構造化されていないデータの処理に適しています。 |
AWS他サービスとの統合 | Amazon EMR は、Amazon EC2、Amazon S3、DynamoDB、Amazon RDS、CloudWatch、および AWS Data Pipeline などの他のアマゾン ウェブ サービスと統合されています。AWS に保存されたデータに、クラスターからアクセスでき、さらに他のアマゾン ウェブ サービスで提供されている機能を利用してクラスターを管理し、出力するデータを保存することができます。 |
3)Apache Spark on Amazon EMR とは?
HDFS(分散ファイルシステム)とMapReduce(クラスター管理 + 分散処理フレームワーク)から構成されていたHadoop v1.0に対して、現世代であるHadoop v2.0は、分散ファイルシステム、クラスター管理, 分散処理フレームワークが分離しており、それぞれ独立したモジュールを扱えるなりました。それに対応して、様々なフレームワークが開発されています。
1)クラスター管理として有名なのがYARNやMesosがあります。
2)分散処理フレームワークとして有名なのがSparkやStormです。
分散処理フレームワークであるSparkとMap Reduceは、以下の違いがあります。
1)Spark
データをオンメモリーに置くことでMap Reduceの数百倍の処理速度を出すことが可能です
特に、同じデータを繰り返しアクセスする機械学習等では処理速度の向上を図ることができます。

2)Map Reduce
処理中のデータを毎回ファイルシステムに書き出すので、メモリーに乗り切らない様な巨大なデータを扱う場合やバッチ処理に向いています。
これまでビッグデータ分析やデータサイエンス領域の分散処理基盤として、Hadoop/MapReduce唯一の存在でしたが、リアルタイム処理のさらなるニーズや、マシンラーニングやディープラーニングといった、高度なアルゴリズムへのニーズが高まる中で、Sparkが注目を集めているのです。

Sparkの標準ライブラリ(出典:The Apache Software Foundation)
Apache Spark の特徴
インメモリ処理による高速化 | Sparkの内部処理方式にはデータをメモリに保存することで入出力の高速化を図り処理全体の実行速度を向上させようとする取り組みがなされていま。この処理方式は、例えば機械学習の計算処理に効果を発揮する事が考えられており、実際特定のアプリケーションに関する実行性能は、HadoopのMapReduce処理と比べた場合の100倍にも達するといわれています。 |
データストアに関する選択肢の広さ | Sparkで処理を行うデータは、様々なデータストアに格納することができます。 ・Hadoop Distributed File System (HDFS) ・HBase ・Cassandra ・OpenStack Swift ・Amazon S3 などが対応可能ストレージとして挙げられます。 |
プログラム手法に関する広範囲なサポート | Hadoopも、様々なプログラム手法をサポートしています。 ・Java ・HiveQL(Hadoop+Hive) ・Pig(Hadoop+Pig) ・Hadoop Streamingを使用することで標準入出力を介してPythonなどから制御 これに対してSparkは、Spark自身はScalaでプログラムされているものの、他のプログラム言語に対してより緊密なアプローチが採用されています。すなわち、Sparkを制御するための機能が、Scalaだけではなく ・Java ・Python ・R言語 といった昨今広く用いられている各プログラム言語用のAPIとして提供されています。Sparkと通信を行う部分がラッパーとして各言語ごとに作成・配布されています。 |
CloudShiftのビッグデータ向けシステム開発サービスは
CloudShiftでは、アマゾン ウェブ サービス(AWS)を代表とするクラウドサービスが提供する優れたマネージドサービスを活用して、システム開発を推進しています。クラウドベンダーのマネージドサービスを利用してシステムを開発すると、「アプリケーション(プログラム)を開発する」以外の部分をクラウドベンダーにお任せできるようになるのです。 また、大規模のサービスであればあるほど、これまでは、「対障害性」「スケールすること」を考慮して、アーキテクチャーを設計する必要がありました。この「対障害性」「スケールすること」こそが、マネージドサービスの特徴であり、開発コストやスピードを削減できる部分なのです。

CloudShiftではクラウドで提供されるマネージドサービスの利用を前提とした、クラウドネイティブなシステム開発・運用を推進し、お客様にご提供します。
それによって
- インフラのキャパシティ検討が不要になる
- インフラ構築が不要になる
- インフラの運用管理が不要になる
など、非常に大きなコストメリットを享受することが可能になります。
開発メンバーは、エンタープライズのシステムを開発してきたメンバーによって提供されています。その中で培った品質に対する要求レベルをもとに、クラウドネイティブなシステム開発・運用をご提供します。
まずは、お気軽にお問合せ下さい。