LoginSignup
0
1

More than 1 year has passed since last update.

ソリューションアーキテクト対策_Lambda, Kinesis, Athena篇

Last updated at Posted at 2022-09-20

1.はじめに

試験勉強した際のメモを自分用に記事化。
内容は公式やBlack Beltの写経ですので目新しいことはありません:pray:

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なのでクエリの実行はできない。

おわりに

引き続き追記します!

以上です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1