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配置をトリガーに |
| Lambda | CSVパース→DynamoDB書き込み(PapaParse使用) |
| DynamoDB | マスターデータ格納(facilityCodeをPK) |
処理フロー
uploads/フォルダへCSVアップロード- S3イベント通知でLambdaトリガー
- CSVをパースしてDynamoDBにバッチ書き込み(PKで上書き=新規追加・更新同一フロー)
- 成功:
processed/{timestamp}-{filename}に移動 - 失敗:
error/{timestamp}-{filename}に移動
技術選定
- CSVパース: PapaParse(型安全でブラウザ/Node両対応)
- DynamoDB: BillingMode.PAY_PER_REQUEST
- Runtime: NodejsFunction(AWS CDK)
利点
- 非エンジニアでも操作可能(S3にファイルを置くだけ)
- 専用管理画面・API不要
- 取り込み履歴がS3上で可視化される
- CDKで3リソースをまとめて管理