Amazon DEA-C01: Cost Optimization for Data Workloads — Study Guide
Part of the Amazon Data Engineer Associate DEA-C01 — Study Guide. Practice with verified answers in the Amazon exam hub, or take timed practice tests on ExamRoll.io.
Cost optimization for data workloads ensures that storage, compute, and data-processing pipelines deliver value without runaway spend. Data engineers must balance query performance, data durability, and availability against pricing models that vary by service and usage pattern. This domain requires familiarity with storage classes and lifecycle policies, query and cluster-level controls, spot and reserved capacity, and serverless versus provisioned trade-offs.
S3 storage cost optimization
S3 Intelligent-Tiering is the recommended default for datasets with unpredictable access patterns: enable Intelligent-Tiering via console or AWS CLI when object access frequency cannot be reliably forecasted. Configure Intelligent-Tiering with the appropriate monitoring/automation fee awareness (there is a small monthly monitoring charge per object) and the right minimum days for auto-tier transitions (30 days for frequent-to-infrequent tiers). Use object tags and lifecycle rules to exclude small, high-request objects where monitoring fees would outweigh savings.
Use these operational patterns to reduce S3 spend:
- Run S3 Storage Class Analysis (console > Management > Analytics or aws s3control) to identify prefix/tag-level access patterns before creating lifecycle rules.
- Convert large historical datasets to archive classes (Glacier Flexible Retrieval or Glacier Deep Archive) using lifecycle transitions; set lifecycle transition timing to match business SLAs and avoid frequent Expedited retrievals.
- Consolidate many small objects (small-file problem) into larger objects (Parquet container files) for analytical workloads to reduce per-request and per-GET costs.
Decision criteria:
- Use Intelligent-Tiering for unpredictable, moderately accessed datasets where retrieval timing is flexible.
- Use Standard-IA or One Zone-IA for infrequently accessed but quickly retrievable data with predictable retrievals.
- Use Glacier Standard/Bulk/Deep Archive for long-term retention where retrievals are rare and can tolerate minutes-to-hours latency; prefer Bulk/Standard retrievals over Expedited to avoid high fees.
Athena and Redshift cost management
Athena costs scale with bytes scanned. Enforce workgroup controls (console or aws athena create-work-group) to implement per-query data scanned limits and per-workgroup monthly budgets; enable “Enforce workgroup settings” so queries that exceed the per-query data limit fail instead of running. Reduce scanned bytes by converting source files to columnar compressed formats (Parquet/ORC), partitioning by date or common filter columns, applying predicate pushdown, and using CTAS or CREATE TABLE AS to materialize optimized datasets. Use query result reuse and workload isolation into separate workgroups to avoid cross-team cost leakage.
Redshift cost decisions hinge on workload predictability and storage choices. For steady, predictable data warehouse compute usage, purchase Reserved Nodes (one- or three-year terms, partial/all upfront options) to lock in discounts versus on-demand. For variable workloads:
- Use Redshift Serverless or RA3 nodes with managed storage to decouple compute and storage.
- Use concurrency scaling sparingly (it incurs additional charges but provides automatic scaling) and monitor credits.
Comparison highlights:
- Reserved Nodes: best for steady-state, long-term clusters; requires commitment but yields significant discount.
- On-demand: flexible for unpredictable or short-term projects; higher per-hour cost.
- Serverless/RA3 with Spectrum: shift storage to S3 and pay for compute when active to avoid large reserved commitments.
Glue and EMR cost strategies
AWS Glue provides serverless ETL with multiple cost levers. For batch jobs that are not latency-sensitive, use Glue flexible execution (Glue Flex jobs) which can reduce cost up to ~34% versus standard Glue execution. Configure Glue job parameters in Glue Studio or the CLI (aws glue create-job) to select worker type and maximum DPUs, set a sensible max DPU cap to prevent unbounded auto-scaling, and use job bookmarks to avoid full reprocessing. For interactive or latency-sensitive workloads, choose worker types (Standard/G.1X/G.2X) and tune parallelism responsibly.
EMR cost reduction relies on using Spot Instances for task nodes while keeping master and core nodes On-Demand (configure instance fleets or instance groups in the console or via aws emr create-cluster). Use Spot for task nodes only, select capacity-optimized allocation strategy, and set appropriate bid/maximum price if using Spot with bidding. Protect cluster state and job resilience by:
- Storing persistent data in S3 (use EMRFS) rather than HDFS when using Spot task nodes.
- Using automatic retries and step-based workflows to handle Spot interruptions.
- Employing EMR Managed Scaling to right-size clusters; monitor scaling policies to avoid oscillation.
Decision criteria:
- Use Glue Flex for low-priority, cost-sensitive ETL with tolerance for longer startup; cap max DPUs.
- Use EMR with Spot task nodes for large transient processing (e.g., nightly batch), but keep master/core On-Demand or use Instance Fleets with mixed allocation.
Reserved capacity and Savings Plans for data services
Reserved capacity and Savings Plans apply differently across data services. For EC2-backed services (EMR, self-managed HBase, custom Hadoop), use EC2 Savings Plans or Reserved Instances to cover compute spend; select regional or zonal options based on mobility needs. Redshift supports reserved node purchases for provisioned clusters to reduce hourly costs for predictable warehouse workloads. Serverless services (Glue, Athena) do not have resource reservations; optimize by workload scheduling and data format changes instead.
Practical purchasing guidance:
- Purchase Redshift Reserved Nodes for steady-state data warehouse workloads with known utilization (evaluate 1- vs 3-year terms, and all/partial/no-upfront).
- Use EC2 Savings Plans to cover predictable EMR/EC2 spend across instance families; Savings Plans provide flexibility if instance family or region changes.
- Do not buy reservations for serverless services; instead, optimize usage patterns, scheduling, and data layout.
Common Pitfalls and Decision Criteria
- Athena scans entire table without partitioning — always partition large, time-series tables by date or other high-cardinality, frequently-filtered columns and convert to Parquet/ORC to minimize scanned bytes.
- Glue DPU auto-scaling can over-provision — set a max DPU cap in job configuration (console or aws glue update-job) and choose appropriate worker types to keep costs predictable.
- S3 Glacier retrieval fees — avoid Expedited retrieval unless business-critical; plan for Standard or Bulk retrieval and set lifecycle transitions with realistic SLAs.
- EMR master and core nodes should not use Spot — configure master/core as On-Demand and only assign Spot to task nodes with HDFS state avoided or replicated.
- Many small S3 objects inflate request costs and slow analytics — compact small files into larger columnar files during ingestion.
- Over-reliance on concurrency scaling or unmanaged auto-scaling can increase hourly charges — monitor scaling metrics, set limits, and use reserved capacity when workloads are predictable.
Practical Problem: Acme Analytics nightly ETL cost reduction
Acme Analytics runs nightly ETL and daily ad-hoc analytics; monthly cloud spend has spiked due to growing raw S3 storage and on-demand Redshift hours. The company needs a 35% reduction without impacting nightly SLAs.
- Run S3 Storage Class Analysis and lifecycle rules to move cold raw files older than 90 days to Glacier Flexible Retrieval (plan Bulk/Standard retrievals).
- Convert raw CSVs to partitioned, compressed Parquet and compact small files; store optimized datasets under separate prefixes for Athena/Redshift Spectrum.
- Create Athena workgroups with per-query data scanned limits and enforce workgroup settings; enable query result reuse and set a per-workgroup monthly budget.
- Migrate batch ETL to Glue Flex jobs for non-urgent transformations, set max DPU caps, and schedule them during off-peak hours; retain a smaller standard Glue fleet for urgent jobs.
- Right-size Redshift: purchase 1-year Reserved Nodes for steady baseline compute, move historical data to S3 and use Spectrum for infrequent queries, and enable concurrency scaling only with monitoring.
Rationale: The strategy combines data format and lifecycle optimization (reducing storage and scan costs), serverless lower-cost execution for flexible jobs (Glue Flex), query governance (Athena workgroups), and reserved capacity for sustained compute to maximize discounts while preserving availability and performance.
← Data Pipeline Monitoring and Troubleshooting · All domains · Data Quality →
Practice these questions → · Timed practice on ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Pass your exam →