変更要約: in-scope サービス網羅: 運用基盤(ECS/EKS/CloudFormation/CDK/CLI/Code三兄弟/SSM/Managed Grafana/Well-Architected/Cost Explorer/Budgets)+データ準備ML(Glue DataBrew/SageMaker AI/Bedrock/Kendra)
3.1パイプラインの運用とデータ品質
データパイプラインの監視(CloudWatch・ジョブ成否/所要時間)、スケジュールとリトライによる自動化、データ品質チェック(Glue Data Quality・DLQ)といった運用を理解します。DEA-C01 の「データ運用とサポート」の出発点です。
パイプラインは作って終わりではなく、監視し、失敗時に自動で対処し、データ品質を保つ運用が重要です。
3.1.1監視・自動化・品質
- 監視:CloudWatch でジョブの成否・所要時間・スループットを監視し、失敗時にアラームを出す。
- 自動化/リトライ:EventBridge のスケジュール起動、Step Functions のリトライ、失敗レコードの DLQ で堅牢化する。
- データ品質:Glue Data Quality でルールベースの検証を行い、不正データを早期に検出する。
「ジョブ失敗の検知/通知=CloudWatch アラーム」「失敗レコードの退避=DLQ」「データ品質ルールの検証=Glue Data Quality」「定期実行=EventBridge スケジュール」 は DEA で頻出です。
パイプライン運用は「監視・自動化/リトライ・データ品質」の3本柱です。監視 は CloudWatch でジョブの成否・所要時間・スループットを見て、失敗や遅延に アラーム(→SNS 通知・EventBridge 連携)を出します。Glue/EMR/Step Functions のログは CloudWatch Logs に集約し、Logs Insights で原因を追います。自動化/リトライ は EventBridge(スケジュール/イベント起動)と Step Functions(ステップ単位のリトライ・指数バックオフ・キャッチ)で堅牢化し、処理しきれなかったレコードは DLQ(デッドレターキュー) に退避して後で再処理します。再実行を安全にする鍵は べき等性(同じ入力で結果が変わらない設計)です。データ品質 は Glue Data Quality(DQDL でルール定義・カラムの非 NULL/一意/範囲などを検証)で早期に不正データを検出し、不良は隔離して下流を守ります。失敗の通知だけでなく、バックフィル(過去分の再処理)や遅延データの扱いも運用設計に含めます。
| 運用課題 | 使うもの |
|---|---|
| ジョブ失敗の検知/通知 | CloudWatch アラーム → SNS |
| 定期実行・リトライ | EventBridge / Step Functions |
| 失敗レコードの退避 | DLQ |
| データ品質の検証 | Glue Data Quality(DQDL) |
シナリオ:夜間 ETL が時々失敗し、不正データが下流に流れる。 EventBridge スケジュールで Step Functions を起動し、各ステップにリトライ+指数バックオフを設定。失敗レコードは DLQ へ退避。投入前に Glue Data Quality で非 NULL/範囲を検証し、不良は隔離。ジョブ失敗は CloudWatch アラームで SNS 通知し、原因は Logs Insights で追跡します。
Q. ジョブ失敗の通知? CloudWatch アラーム→SNS。Q. 失敗レコードの退避? DLQ。Q. データ品質の検証? Glue Data Quality(DQDL)。Q. 定期実行/リトライ? EventBridge/Step Functions。Q. 安全に再実行する鍵? べき等性。
混同に注意:
①べき等でない処理を無制限リトライすると二重登録/重複集計を招く。
②DLQ は「退避先」であり、再処理の仕組み(監視・再投入)は別途必要。
③Glue Data Quality は「検証」——不良データの隔離/通知の後処理を設計する。
④CloudWatch アラームは閾値+評価期間の設計を誤ると誤検知/見逃しになる。
べき等な処理設計(再実行しても結果が変わらない)にしておくと、リトライや再処理を安全に行えます。
3.1.2運用基盤の in-scope サービス
パイプラインの実行基盤・IaC・CI/CD・運用も DEA-C01 の範囲です。コンピュートでは Amazon EC2 に加え、コンテナ化 ETL を Amazon Elastic Container Service(ECS・AWS 独自・Fargate 統合で最小運用)または Amazon Elastic Kubernetes Service(EKS・Kubernetes 標準)でオーケストレーションします。インフラは AWS CloudFormation でテンプレートから宣言的に、AWS Cloud Development Kit(CDK)でプログラミング言語から定義し、AWS CLI でコマンドライン操作・自動化します。 リリースは AWS CodeBuild(ビルド/テスト)→ AWS CodeDeploy(制御デプロイ)→ AWS CodePipeline(ステージ束ね)で自動化します。フリートの構成管理・パッチ・パラメータは AWS Systems Manager、OSS の可観測性ダッシュボードは Amazon Managed Grafana、アーキテクチャの体系評価は AWS Well-Architected Tool で行います。コストは AWS Cost Explorer で可視化・予測し、AWS Budgets で予算閾値の超過を通知します。
| 領域 | サービス | 要点 |
|---|---|---|
| コンテナ実行 | ECS / EKS | AWS独自=ECS、K8s標準=EKS |
| IaC | CloudFormation / CDK / CLI | 宣言的/プログラム的/コマンド |
| CI/CD | CodeBuild / CodeDeploy / CodePipeline | ビルド/デプロイ/束ね |
| 運用・評価 | Systems Manager / Managed Grafana / Well-Architected Tool | 管理/可視化/アーキ評価 |
| コスト | Cost Explorer / Budgets | 可視化・予測 / 予算アラート |
3.1.3この節のまとめ
- 監視(CloudWatch)/自動化・リトライ(EventBridge・Step Functions・DLQ)
- データ品質はGlue Data Qualityで検証
- 実行基盤=ECS/EKS、IaC=CloudFormation/CDK、CI/CD=Code 三兄弟、コスト=Cost Explorer/Budgets
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. ETL ジョブが失敗したことを検知して通知したい。最も適した方法はどれですか?
Q2. 取り込み処理で失敗したレコードを退避し、後で調査・再処理したい。何を使いますか?
Q3. データに対しルールベースの検証を行い、品質を担保したい。最も適した機能はどれですか?

