Help us understand the problem. What is going on with this article?

AWS認定Big Data勉強記 - 2

More than 1 year has passed since last update.

みなさん、こんにちは、えいりんぐーです。
データ分析や機械学習周りの仕事をしています。

今回は、AWSにおけるビッグデータ関連サービスとそれらを利用する上で重要なサービスを大まかに書きます。可能な限りGoogle Cloudで相当するサービスも例示しますが、一致するサービスばかりではありません。また、誤りや不備などありましたらコメントいただけると幸いです。なお、ここで紹介している内容は、AWSにおけるビッグデータ分析のオプションと、AWS Black Belt Online Seminarのサービス別活用資料集を参考にしています。

サービス名 カテゴリ 特徴 GCPでは
S3 オブジェクトストレージ 大きなデータファイルを保存できる。小さいデータをたくさん保存するのには向かない。 GCS
Glacier オブジェクトストレージ 大きなデータファイルを保存できる。頻繁にアクセスするためのものではない。 GCS Coldline
RDS フルマネージドリレーショナルデータベース ACID特性とトランザクションを満たす。スケーラブル。OracleやPostgreSQLなど主要なRDBに対応。 Cloud SQL
Aurora フルマネージドリレーショナルデータベース RDSの実質的な上位互換。MySQLのみに対応。 Cloud Spanner?
Athena サーバレスSQLサービス Prestoベース。S3のデータに対して直接クエリする。CSVやJSONなど様々なデータ形式に対応。
DBのインフラ管理が不要 (インスタンスのチューニングは必要)。OLAP用だが、大規模なデータ分析には向かない。
-
QuickSight サーバレス可視化サービス S3, RDS, Athena, Redshift, EMRなどのソースからデータを取得してクエリ・可視化が可能。
SPICE (Super-fast Paralell In-memory Calculation Engine) による高速なデータ処理。
Data Studio
Redshift データウェアハウス OLAPに特化したRDB。ペタバイト級のスケールアウト。SpectrumではAthenaのようにデータレイク上のデータへ直接アクセスできる。 BigQuery
EMR 分散処理基盤 MapReduceに基づくHadoopエコシステムに対応した分散処理基盤。Hive, Pig, Spark, Presto, HBase, Hue, Zeppelinなどのサービスをカバーあるいは連携している。
大規模な分析に向いているが、小さなデータセットには適していない。厳密なACID特性を求めるものではない。
Dataproc
Elasticsearch Service マネージド全文検索エンジン Apache Luceneをベースにした検索エンジン。ログ解析やCRMデータ分析に適している。 -
ElastiCache フルマネージド分散インメモリキャッシュ memcachedとredisをサポートする。リクエストが多く、低レイテンシーが求められる環境に適している。 Cloud Memorystore
DynamoDB フルマネージドNoSQLデータベース キーバリューストア。スケーラブル、低レイテンシー、高可用性。結果整合性を保証するが、厳密なトランザクションやACID特性は満たさない。DynamoDB Accerelatorというインメモリキャッシュ機能がある。 Bigtable, Datastore
Neptune フルマネージドグラフデータベース エンティティの関連が多対多となるソーシャルグラフのデータベース。Apache TinkerPopのプロパティグラフとW3CのRDFをサポートする。 -
Lambda サーバレスコンピュートサービス イベントをトリガーとして何らかの処理を実行する(スケジュール実行も可能)。EC2のようなインフラを管理する必要がない。コードが実行された時間分だけ課金される。実行時間の長い処理には向かない。 Cloud Functions
Batch フルマネージドバッチ処理実行サービス 負荷の高い処理を効率的に行う。ジョブはキューに送信され、基本的にFIFOで処理される。裏ではLambda同様にコンテナが動く。 Dataflow
Kinesis フルマネージドストリームデータ収集・処理サービス データ収集のためのStreams、各種ストレージに送るためのFirehose、リアルタイム分析をするためのAnalyticsがある。
1つ以上のシャードからなるストリームでデータを処理する。シャード内では処理順が保証される。
Dataflow
DataPipeline ETL処理サービス KinesisやGlueほど名前を聞かない。サービス間のデータ統合・処理をスケジュールベースで自動化する。 Dataflow?
Glue ETLサービス サーバレスで分散処理ができる。データレイクへのデータ収集、収集されたデータの前処理、Redshiftへのデータの登録などを行う。 -
SQS フルマネージド分散メッセージキューサービス キューの利用でデータの受け渡しを疎結合にできる。スケーラブルかつ高スループット。順番は保証されず、同じメッセージを複数回受信する可能性がある。 Cloud Pub/Sub
SageMaker 機械学習ワークフロー全体をカバーするフルマネージドサービス Jupyter環境でのモデルの構築、学習、デプロイ手段を提供する。データのラベリングも可能。SDKを用いたフレームワークの利用、カスタムアルゴリズムの実装もできる。 Cloud ML Engine, Datalab
IoT デバイスとAWSを連携させるサービス・SDK デバイスとAWSの双方向のやり取りを実現するアーキテクチャ兼SDK IoT Core
EC2 クラウドコンピューティングリソース 既存のOS・ミドルウェアが利用可能で、計算・メモリ・IOそれぞれに特化したインスタンスを使用できる。リザーブドインスタンスやスポットインスタンスで割安に利用可能。暗黙でRDSやEMR、Lambdaなどの計算リソースとしても使われている。 GCE
IAM AWSの認証・認可システム Identity and Access Management。AWSをセキュアに利用するために必要なもろもろの認証・管理機能を提供する。 Cloud IAM
KMS 暗号化及び鍵管理サービス Key Management Service。Customer Master KeyによるEnvelop Encryptionで管理性とパフォーマンスを向上させた暗号化が可能。 Cloud KMS
Cognito アプリケーション用の認証・同期サービス モバイルアプリやウェブアプリを利用したユーザー認証やアクセス認可、データの同期に利用する。モバイルで認証と言ったらとりあえずCognito -
VPC プライベートネットワークサービス AWSの中にプライベートなネットワークを構築することができる。必要に応じてネットワークを論理的に分離・結合できる。Direct Connectの利用でオンプレミスネットワークとの接続もできる。 VPC
CloudWatch AWSのシステム監視サービス 死活・性能・キャパシティ・コストの監視や各種サービスからのログの取得、リソースに対するイベントのトリガーができる。 Stackdriver

以上です。のべで26個のサービスを紹介しました。バカみたいに多いですね。大変だぞコノヤロー笑。

昨今、データはビジネス上重要な競争資源であるだけでなく、プライバシーやコンプライアンスの上でも管理をすることが必要です。そのため、アクセス権や認証・暗号化の管理をする上でIAM、KMS、Cognitoなどのサービスは把握しておかなければなりません。また、EC2はEMRやRDSのインフラとして使われているので、その特徴やインスタンスタイプなどを理解しておくことは重要です。

さて、上記のサービスのうち、ストレージ・データベース・分析・データ処理の役割を担うものについて、用途に合わせて選択フローチャートをつくると以下のようになります。アイコンはこちらを使用しました。

ストレージ系と処理系を網羅しているため、とてもビジーな図になりましたが、大まかにサービスを検討する上では十分かと思います。もっとも、KinesisとSQS、RedshiftとEMRなどは特性の違いはあるものの、サービス要件次第では厳密に使い分けるのが難しいところでもあります。適宜、コストも含め公式ドキュメントを参考にして適切なサービスを選択するようにしてください。

さて、今回はビッグデータに関するサービスを大まかにまとめました。次回はビッグデータを扱う上でのセキュリティについて紹介したいと思います。

brainpad
ブレインパッドは、2004年の創業以来、データによるビジネス創造と経営改善に向き合ってきたデータ活用・分析企業です。
http://www.brainpad.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away