コンテンツにスキップ
Classmethod S3 Csv Dynamodb Master Data Cdk

S3にCSVを置くだけでDynamoDBにマスターデータを投入する仕組みをAWS CDKで構築してみた

  • URL: https://dev.classmethod.jp/articles/s3-csv-dynamodb-master-data-cdk-lambda/
  • 日付: 2026-06-10
  • Tier: Tier 2
  • 要旨: S3の特定フォルダにCSVを置くだけでLambdaが起動しDynamoDBに自動取り込みする仕組みをAWS CDK(TypeScript)で構築。管理画面不要、CDKでS3・DynamoDB・Lambda・S3イベント通知をまとめて構築。成功はprocessed/、失敗はerror/にファイル移動することで状況が把握できる。

詳細

構成

リソース役割
S3バケットuploads/*.csv配置をトリガーに
LambdaCSVパース→DynamoDB書き込み(PapaParse使用)
DynamoDBマスターデータ格納(facilityCodeをPK)

処理フロー

  1. uploads/フォルダへCSVアップロード
  2. S3イベント通知でLambdaトリガー
  3. CSVをパースしてDynamoDBにバッチ書き込み(PKで上書き=新規追加・更新同一フロー)
  4. 成功: processed/{timestamp}-{filename}に移動
  5. 失敗: error/{timestamp}-{filename}に移動

技術選定

  • CSVパース: PapaParse(型安全でブラウザ/Node両対応)
  • DynamoDB: BillingMode.PAY_PER_REQUEST
  • Runtime: NodejsFunction(AWS CDK)

利点

  • 非エンジニアでも操作可能(S3にファイルを置くだけ)
  • 専用管理画面・API不要
  • 取り込み履歴がS3上で可視化される
  • CDKで3リソースをまとめて管理