1.はじめに
試験勉強した際のメモを自分用に記事化。
内容は公式やBlack Beltの写経ですので目新しいことはありません
Lambda
Lambdaが他のサービスにアクセスしたい場合は
IAMロールをを設定する。ポリシーじゃないよ。
Lambdaの特徴
- ステートレスである
システム上のやりとりの状態情報が不要なため、セッション情報が与えられていないアプリケーションのこと。
どのエンドユーザーに対しても同じ応答を提供する。
Lambdaのタイムアウトについて(暗記)
デフォルトは3秒。最大は900秒(15分)。
Lambda関数が取り扱えるデータの最大値(暗記)
512MB。
例えばDynamoDBストリームのメタデータをS3に転送する時にLambdaを咬ますなら一度に転送できるデータ量の最大値は512MBとなる。
LambdaとDynamoDBの連携
認識通りでおk。連携する時はIAMでLambdaからDynamoDBへのアクセスをIAMポリシーで許可する。
Lambdaレイヤー
複数のLambda関数でライブラリを共有できる仕組み。
共通するコンポーネントをLambdaレイヤーとして定義し、Lambda関数から参照できる。
これによりいくつかのLambda関数で処理が重複している場合はその処理を共通機能として実装できる。
Lambdaエッジ
サーバー管理を行わなくても、ウェブアプリケーションをグローバルに分散させることで、パフォーマンスを向上させることができるサービス。
Kinesis
Kinesis Data Streams
ストリーミングデータ処理を実行する
Kinesis Data Firehose
Streamsから受け取ったデータを変換して、データレイクやデータストア、分析ツールに配信するサービス。
ストリーミングデータをキャプチャして変換しつつS3、Redshift、ElasticSearchにロードする。DynamoDBに配信することはできない★
→なのでデータをDynamoDBに配信したい場合はLambdaを経由する必要がある。
また、Lambdaだけを利用してS3などにストリーミングデータを変換したり配信したりするのは非効率。
Kinesis Data FirehoseはLambda関数およびKinesisと統合されており、連携のうえ一緒にデータ配信と変換を実行する。
Kinesisのデータ転送の特徴
データが欠落しない
耐久性がある
データを到着順にストリーミングする
(Kinesis Data Streamsによって割り当てられたシーケンス番号があるため)
SQSとSNS、Data PipelineをKinesisと比較してみる
-
SQS
FIFOではない
重複送信されないことを保証しない
EMRに送信されたデータ解析処理にキューは使えない -
SNS
一度に送受信される大量のメッセージを処理できない可能性がある。
また、メッセージを受信した順番で送信することを保証しない。 -
Data Pipeline
主にクラウドベースのデータワークフローサービスとして使用される。
異なるAWSサービスと、オンプレミスデータソース間でデータを処理・移動するのに利用される。
Amazon Athena
インタラクティブなクエリサービスで、S3内のデータを標準的なSQLを使用して簡単にデータ解析を行えるサービス。
多くの場合数秒で結果が返ってくる。また、課金はクエリに発生する。
ちなみにRDSはこの手のデータ解析(を行うデータ保存)には向かない。
また、DynamoDBはNoSQLなのでクエリの実行はできない。
おわりに
引き続き追記します!
以上です。