【AWS認定】AWS Certified Data Analytics Specialty学習メモ特集③ ~Collection(収集)編~

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の代わりに上記のサービスに書き込みに行く。が、一部は適応していない。
    • AWS Lambda
      • Lambdaは通知をトリガーにするために利用可能で、リアルタイムでメールを送ることが出来る。
  • Kinesis Data Stream
データソース

Amazon Kinesis
Data Stream

ターゲット
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という別々のプログラムにコマンド(命令)を伝えるためのキュー

  • ログデータやイベントデータの収集
  • リアルタイム解析
  • モバイルデータキャプチャ
  • “Internet of Things”のデータフィード
ユースケース
  • アプリケーション統合
  • マイクロサービスの分割
  • 複数のワーカーノードへのタスクの配置
  • 多くのバックグラウンド処理からのユーザリクエストの切り離し
  • 先の処理のためのバッチメッセージ

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へのログインなど
    • Web/デスクトップ/CLI
      • IAM
      • フェデレートIdentities
  • 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
    • データベースを迅速かつ安全に移行する。
    • マイグレーションしている間は、ソースのデータベースはそのまま利用可能。
      SOURCES
      TARGETS
      • オンプレ
      • 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
        使用されたりリソースに基づく 料金 無償

        ただ、ハードウェアとセットアップコストは考慮が必要

他の分野のメモ

他の分野のメモはこちらです。

概要編
【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(可視化)編です!

皆様のお役に立てば幸いです。
よろしくお願いします。

タイトルとURLをコピーしました