SCSK三上です。
AWS Certified Data Analytics Specialtyを受験し、分野ごとに抑えておいた方が良い点まとめました。
今回は、Collection(収集)編です!
抑えるべきポイント
- リアルタイム – すぐに実行
- Kinesis Data Streams
- SQS
- IoT
- リアルタイムに近い – 反応的にアクション
- Kinesis Data Firehose
- Database Migration Service (DMS)
- バッチ – 過去の分析
- Snowball
- Data Pipeline
Amazon Kinesis
- Kinesis Producers – データの書き込み
- Kinesis SDK
- Kinesis Producer Library (KPL)
- Kinesis Agent
- 3rd Party
- Spark
- Kafka
- Kinesis Producer SDK – PutRecord(s)
- Kinesis Producer Library (KPL)
- C++で書かれている。ネイティヴバイナリはJavaベースにハンドルされている。
- 非同期処理推奨
- アンチパターン
- 処理遅延が生じる場合がある。
- 対策
- RecordMaxBufferedTimeの値を大きくすると、パッキング効率とパフォーマンスが向上
- ※追加的な遅延を許容出来ない場合は、SDKで直接実行する。
- Kinesis Agent
- スタンドアロンの Java ソフトウェアアプリケーション
- ウェブサーバー、ログサーバーおよびデータベースサーバーなど、Linux ベースのサーバー環境にインストール可能
- Kinesis Consumers – データの読み込み
- Kinesis SDK
- Kinesis Client Library (KCL)
- Kinesis Connector Library
- 3rd Party
- Spark
- Kafka
- Kinesis Firehose
- AWS Lambda
- Kinesis Consumer Enhanced Fan-Out
- Kinesis Client Library (KCL)
- 拡張ファンアウトを使用してストリームからデータを受け取るアプリケーションを開発するには、バージョン 2.0 以降の Kinesis クライアントライブラリ (KCL) を使用可能。
- Kinesis Connector Library
- EC2上で稼働している、Connector Libraryを介して、以下に書き込みに行く
- Amazon S3
- DynamoDB
- Redshift
- ElasticSearch
- FirehoseはConnector Libraryの代わりに上記のサービスに書き込みに行く。が、一部は適応していない。
- EC2上で稼働している、Connector Libraryを介して、以下に書き込みに行く
- AWS Lambda
- Lambdaは通知をトリガーにするために利用可能で、リアルタイムでメールを送ることが出来る。
- Kinesis Data Stream
データソース |
Amazon Kinesis |
ターゲット |
---|---|---|
SDK | KCL | |
Kinesis Producer Library(KPL) | SDK | |
Kinesis Agent | Kinesis Connector Library | |
Spark | Spark | |
Kafka | Firehose | |
Lambda |
- Kinesis Data Firehose
データソース | Amazon Kinesis Data Firehose ↕ Lambda Funtions |
配信ターゲット |
---|---|---|
SDK | Amazon S3 | |
Kinesis Producer Library(KPL) | Redshift | |
Kinesis Agent | Elastic Search | |
Kinesis Data Stream | Splunk | |
CloudWatchLogs&Events | OpenSearch | |
IoT rules actions | Datadog/NewRelic/Dynatrace/Sumologic/LogicMonitor/MongoDB/HTTPエンドポイント |
- Kinesis Data Stream VS SQS
Kinesis Data Stream
|
比較項目
|
SQS
|
---|---|---|
1KB~256KB | レコードのサイズ | 1MB |
24時間~7日間 | レコードの保持期間 | 1分間~14日間 |
データそのもの
⇒「巨大なデータであっても受け入れてくれる器」と「キューの機能」を備えた「ビックデータ処理基盤」 |
受け入れるもの | コマンド(命令)
⇒ プログラムAからプログラムBという別々のプログラムにコマンド(命令)を伝えるためのキュー |
|
ユースケース |
|
AWS IoT
- IoT Device Gateway
- AWSに接続するIoTデバイスのエントリポイントとして機能する。
- デバイスが安全かつ効率的に通信できるようにする。
- サポートしている通信プロトコル
- MQTTプロトコル
- HTTP1.1プロトコル
- 認証方法
- IAMクレデンシャル
- Cognito
- クライアント証明書
- IoT Message Broker
- デバイスとAWS IoTアプリケーションが相互にメッセージをPub/Subできるためのセキュアなメカニズムを提供する。
- サポートしている通信プロトコル
- MQTT(WebSocketを介して or 直接)
- HTTP 1.1
- メッセージはSNSと同様、トピックに公開される。
- トピックに接続されている全てのクライアントにメッセージを転送する。
- IoT Thing Registry = IAM of IoT
- 接続されている全てのIoTデバイスはAWS IoT Registryで表示される。
- AWSクラウド内の各デバイスに関連付けられたリソースを整理する。
- 各デバイスは一意のIDを取得する。
- 各デバイスのメタデータをサポート
- IoTデバイスがAWSに接続出来るように、X.509証明書を作成可能。
- デバイスをグループ化し、グループにアクセス許可を適用可能。(IoTグループ)
- Authentication
- IoT Things
- X.509証明書を作成し、それを安全にIoT Thingsにロード
- AWS SigV4
- カスタム承認者を含むカスタムトークン
- モバイルアプリ
- Cognito Identites
- Googleへの拡張、Facebookへのログインなど
- Cognito Identites
- Web/デスクトップ/CLI
- IAM
- フェデレートIdentities
- IoT Things
- Device Shadow
- デバイスがAWS IoTに接続されているかどうかに関わらず、アプリやその他のサービスでデバイスの状態を利用できるようにする。(JSONドキュメント)
- 状態を別の目的の状態に設定できる。
- Rule Engine
- ストレージと追加処理のために、メッセージブローカから他のAWS IoTサービスにデータを接続する。
- Rules = トリガー
- ユースケース
- デバイスから受信したデータを拡張またはフィルタする
- デバイスから受信したデータをDynamoDBに書き込む
- S3にファイルを保存する。
- SNSを利用して、全てのユーザにプッシュ通知をする。
- SQSキューにデータを発行する。
- Lambda関数を呼び出してデータを抽出する。
- Kinesisを使用して、デバイスからの多数のメッセージを処理する。
- データをElasticSearchに送信する。
- CloudWatchメトリクスの取得/アラームを変更する。
- MQTTメッセージからMLにデータを送信して、MLモデルに基づいて予測を行う。
- IoT Greengrass
- クラウド機能をローカルデバイスに拡張するそソフトウェア
- デバイス上でLambda関数を実行できる。
- データの事前処理
- MLモデルに基づく予測を実行
- 同期してデバイスのデータを維持
- ローカルデバイス間の通信
- オフラインで操作する
- クラウドから機能を直接デバイスに展開する。
AWS Database Migration Service
- DMS – Database Migration Service
- データベースを迅速かつ安全に移行する。
- マイグレーションしている間は、ソースのデータベースはそのまま利用可能。
SOURCESTARGETS- オンプレ
- EC2上のDB
- Oracle
- MS SQL Server
- MySQL
- MariaDB
- PostgreSQL
- MongoDB
- SAP
- DB2
- Azure
- Azure SQL Database
- Amazon RDS
- Aurora含む全て
- Amazon S3
- オンプレ
- EC2上のDB
- Oracle
- MS SQL Server
- MySQL
- MariaDB
- PostgreSQL
- SAP
- Amazon RDS
- Amazon Redshift
- Amazon DynamoDB
- Amazon S3
- ElasticSearch Service
- Kinesis Data Streams
- DocumentDB
- AWS Schema Conversion Tool (SCT)
- スキーマの変換ツール
- 同じDBエンジンであればSCTは不必要
AWS Direct Connect
- Direct Connect (DX)
- AWS VPCへのプライベートな接続を実現する。
- ユースケース
- 大規模なデータセットでの帯域幅スループットの向上により、コスト削減したい
- リアルタイムデータフィードを使用した、より一貫性のあるネットワークエクスペリエンスアプリケーション
- ハイブリットな環境
- IPv4とIPv6両方をサポートしている。
- データは暗号化されていないが、プライベートではある。
- DX+VPNでIPsec-暗号化のプライベートな接続を提供する。
AWS Snow ファミリー
- AWS Snow Family
- Snowcone
- Snowball Edge
- Snowmobile
- 全て、EC2インスタンスやLambda関数を起動することが可能。(IoT Greengrassを利用して)
- AWS Snowcone
- SnowFamilyの中で最小の製品。8TB
- データを含むデバイスをAWSに配送して、オフラインでデータを転送したり、AWS DataSyncを使用してエッジロケーションからオンラインでデータを転送可能。
- AWS Snowball Edge
- オンプレミス環境からAWSにデータを転送する際、ネットワーク経由で転送するのではなく、AWSからSnowballという専用のデータストレージを物理的に借りてそこにデータを入れる。80TB
- データを入れたSnowballをAWSへ返送するとAWSがS3へデータをインポートしてくれる。
- 2TBのデータ量で返送+S3閲覧まで約7日間
- ユースケース
- 大規模なデータクラウド移行
- DCの廃止
- 災害復旧
- AWS Snowmobile
- 超大容量データをAWSに移動するために使用できるエクサバイト規模のデータ転送サービス。
- 100ペタバイトのデータをわずか数週間で移動可能。
- AWS OpsHub
- Snowballデバイスを管理・モニタリングするインターフェイス。
- デプロイ、デバイス間のデータ移行、アプリケーションの起動などの操作を簡単に行うことが出来る。
- タスクの自動化も可能、WindowsやMacにダウンロードおよびインストール使用する。
AWS Managed Streaming for Apache Kafka (MSK)
- Amazon Managed Streaming for Apach Kafka (Amazon MSK)
- スケーラビリティに優れた分散メッセージキュー。
- 「Pull型」「高スループット」などの特徴があり、ストリーミングエータパイプライン構築に使用可能。
- 分散環境において大規模データを高速に取り込むためのオープンソースツール。
- Kafkaは処理性能を重視したメッセージキューであり、複数台のマシンでクラスタを構成して分散処理を行うことで、高いスループットを発揮する。
- 参考:Apache Kafkaの概要とアーキテクチャ – Qiita
- Amazon MSK vs Kinesis Data Streams
- 参考:Amazon KinesisとApache Kafkaの類似点/相違点まとめ – 夢とガラクタの集積場 (hatenablog.com)
Kinesis Data Stream比較項目Kafka
Kinesis Shard データ保存先 Kafka Partition Java、Android、.NeT、Go サポート言語 Java 7日(最大365日間) データ保持期間 Longer Basic 必要なスキル Advanced 一度に3台マシンに同期、書き込み パフォーマンス制約 制限少 DyanamoDB ストア Zookeeper 使用されたりリソースに基づく 料金 無償 ただ、ハードウェアとセットアップコストは考慮が必要
- 参考:Amazon KinesisとApache Kafkaの類似点/相違点まとめ – 夢とガラクタの集積場 (hatenablog.com)
他の分野のメモ
他の分野のメモはこちらです。
概要編
【AWS認定】AWS Certified Data Analytics Specialty学習メモ特集① ~概要編~
過去に受験したAWS Certified Data Analytics Specialtyの勉強方法をまとめていきたいと思います。
本記事は勉強方法と概要です。
Storage(格納)/Processing(処理)編
【AWS認定】AWS Certified Data Analytics Specialty学習メモ特集② ~Storage(格納)/Processing(処理)編~
AWS Certified Data Analytics Specialtyを受験し、分野ごとに抑えておいた方が良い点まとめました。
今回は、Storage(格納)・Processing(処理)編です!
Analytics(分析)/Visualization(可視化)編
【AWS認定】AWS Certified Data Analytics Specialty学習メモ特集④ ~Analytics(分析)/Visualization(可視化)編~
AWS Certified Data Analytics Specialtyを受験し、分野ごとに抑えておいた方が良い点まとめました。
今回は、Analytics(分析)、Visualization(可視化)編です!
皆様のお役に立てば幸いです。
よろしくお願いします。