こんにちは、クラスメソッドの岡です。 今回Step Functionsを使って簡単なETL処理を試す機会があったので実際に作ったものを公開します。 サーバーレスでETL処理、といえばAWS Glueが浮かぶかと思いますが、今回はGlueは使わず、LambdaのPythonランタイムでPandasを使ってS3のデータとDynamoDBのデータを結合するような処理を行ってみたいと思います。 ちなみに私はデータ分析に関する知識はほぼ皆無ですが、PythonライブラリPandasを使う事で簡単にデータ処理を行えました。 シナリオ 今回はIoTデバイスから送られてくる時系列データがS3に出力されている前提として、そのファイルとDynamoDBにあるデバイスのマスタデータと結合して分析データとして別のS3バケットに出力する、といったシナリオを想定しています。 構成 サンプルコード 今回はServerl
サーバレスの Lambda 入門しました。 ほぼPythonだけでサーバーレスアプリをつくろう (技術の泉シリーズ(NextPublishing)) 作者:長谷場 潤也,安田 譲発売日: 2019/08/30メディア: オンデマンド (ペーパーバック) この本によると AWS の Lambda は実行ごとにコンテナが立ち上がってDBにコネクションを張るので、RDBは相性が良くなく、Key-Value Store の DyanamoDB の方が良いらしく DyanamoDB にも入門。 AWS のドキュメント にはプログラムを Download して Java で実行させる方法や Docker で実行させる方法のドキュメントが有りました。本のサンプルは Java で実行させる方法だったのですが、折角なので Docker で作成してみたのでメモ。 DynamoDB を Docker で使う公式
webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda) 先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから問い合わせがあった場合に、Redmineのチケットを自動登録して対応状況を管理出来るようにしてみました。 webフォームはS3で静的ホスティングを使っています。 CloudFrontでS3をオリジンにしてwebフォームを配信しています。 ACMでSSL証明書を無料で取得しています。 webフォームから送信された情報はAmazon API Gateway、AWS Lambdaを経由してDynamoDBテーブルへ格納されます。 DynamoDBテーブルに格納されたデータはDynamoDB StreamからLambdaが実行されてSQSへキューを送信します。 SQSからキューを受信したLambd
・無料枠に関して 1か月あたりに100万のリクエストが無料および400,000 GB/秒の実行時間が無料利用枠となっています。 これは1年間の無料枠期間を過ぎても適用されます。 例えば、128MBのLambdaのみで構成されていたとしたら40万秒 * 1024/128(=8)の320万秒=889時間分くらいは無料で利用可能です。 実際はLambdaの処理によって必要なメモリが異なると思います。 ちなみにメモリ不足で失敗しても3回までリトライしてくれるらしいです。 AWS Lambdaを使うときに注意する4つのこと -> 3つになりました 下記の例で計算するとします。 API Gatewayに割り当てられた10個のLambda関数(256MB、平均処理時間1秒)がそれぞれ1日あたり1万回ずつ呼ばれるとします →それぞれ256MBのメモリを割り当てた10個のLambda関数が月あたり30万回ず
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く