โ๏ธ AWS Core โ Data Engineer Knowledge Map
Learn the platform first. Four exam-weighted AWS data domains plus a practical IaC track. Open only the module you need; P5 moves from beginner concepts to production Terraform / CloudFormation.
P1. Data Ingestion & Transformation ยท 34%
34%AWS Data Pipeline Mental ModelBatch ยท Streaming ยท ETL/ELT ยท Source โ Ingestion โ Storage โ Processing โ Servingโบ01
Batch IngestionS3 ยท Transfer Family ยท DataSync ยท DMS ยท AppFlow ยท Full Load / CDCโบ02
Streaming IngestionKinesis Data Streams ยท Firehose ยท MSK ยท Shard ยท Partition ยท Producer / Consumerโบ03
Kinesis Data Streams / MSK retain an event stream for consumers. Amazon Data Firehose is managed delivery to destinations such as S3 and Redshift.
| Service | Best fit | Remember |
|---|---|---|
| Kinesis Data Streams | AWS-native event streaming | Shard capacity, consumers, ordering |
| Amazon Data Firehose | Managed delivery | Low operations; buffering before delivery |
| Amazon MSK | Managed Apache Kafka | Kafka compatibility and ecosystem |
AWS Glue Deep DiveCrawler ยท Data Catalog ยท ETL Job ยท Studio ยท Workflow ยท Job Bookmark ยท Data Qualityโบ04
| Component | What it does |
|---|---|
| Glue Data Catalog | Central metadata repository: table definitions, schemas, partitions, locations. |
| Glue Crawler | Scans sources, infers schema/partitions, and updates the Data Catalog. |
| Glue ETL Job | Runs Spark-based ETL; commonly PySpark or Scala. |
| Glue Studio | Visual interface to create, run, and monitor ETL jobs. |
| Glue Workflow / Trigger | Coordinates Glue jobs, crawlers, and triggers. |
| Job Bookmark | Tracks previously processed data to support incremental ETL. |
Glue processing model
Stateful vs Stateless
Other Glue topics
Processing โ Lambda vs Glue vs EMREvent logic ยท Managed Spark ETL ยท Maximum cluster controlโบ05
| Service | Choose it for | Typical use |
|---|---|---|
| Lambda | Short event-driven functions | Seconds/minutes; lightweight transformations |
| Glue | Serverless managed Spark ETL | Data integration and batch ETL |
| EMR | Managed big-data cluster/serverless options | Maximum Spark/Hadoop ecosystem control |
Streaming ProcessingManaged Service for Apache Flink ยท Event Time ยท Window ยท State ยท Checkpointโบ06
Orchestration & MessagingStep Functions ยท MWAA/Airflow ยท EventBridge ยท SQS ยท SNS ยท Retry ยท DLQโบ07
Step Functions / MWAA orchestrate workflow sequence. EventBridge routes events. SQS buffers work and decouples producers/consumers. SNS fans out notifications.
Real data-pipeline use case HIGH
A producer lands orders_2026-10-02.csv in S3 and sends a small message containing bucket, key and run ID. Workers pull messages and start validation independently.
Parameters that actually matter
Visibility TimeoutRetentionLong PollingDLQRedrive Policy
Interview trap: standard queues are at-least-once, so consumers must be idempotent. FIFO is only needed when ordering/deduplication requirements justify it.
P1 Architecture & InterviewExplain service boundaries and why each service existsโบ08
ECR โ ECS/Fargate production path HIGH
ECR stores immutable/versioned container images; ECS orchestrates tasks; Fargate supplies serverless compute. Keep these responsibilities separate.
Simulated ingestion run
EventBridge โ Step Functions โ ECS RunTask. The task assumes an IAM role, reads SFTP credentials from Secrets Manager, downloads files, writes raw objects to S3, emits logs to CloudWatch, then exits.
Architecture Lab โ Design Flow, Components & ECS/FargateFormer AWS Components knowledge ยท end-to-end design flow ยท service boundaries ยท compute mental model โบ09
End-to-End AWS Design Flow
Learn the responsibility of each layer first, then map each responsibility to the AWS service that implements it.
EventBridge Scheduler
Starts the workflow at a defined time or interval.
AWS Step Functions
Controls workflow order, dependencies, retries, and failure paths.
ECS + AWS Fargate
Runs the downloader container and writes source data into S3 Raw.
AWS Glue
Reads raw data, applies ETL logic, and prepares processed datasets.
S3 + Glue Data Catalog
S3 stores processed Parquet data; Glue Data Catalog stores schema and partition metadata.
Amazon Athena
Uses catalog metadata to query the required processed data in S3.
Tableau
Sends SQL through Athena and presents returned results as dashboards and visualisations.
๐ฆ Amazon ECS
โก AWS Fargate
P2. Data Store Management ยท 26%
26%Storage Selection & ProtectionS3 ยท RDS/Aurora ยท DynamoDB ยท Redshift ยท EBS ยท EFS ยท AWS Backupโบ01
| Store | Workload | Why |
|---|---|---|
| S3 | Data lake / object storage | Cheap durable storage, open formats |
| RDS / Aurora | OLTP relational | Transactions and relational access |
| DynamoDB | Key-value / document | Low-latency access at scale |
| Redshift | OLAP warehouse | Repeated analytical SQL / BI |
EBS = block storage for compute. EFS = managed shared file system. AWS Backup centralizes backup policies across supported AWS resources.
| PK โ UserId | SK โ EventTime | Event |
|---|---|---|
| U123 | 2026-10-02T10:01 | view |
| U123 | 2026-10-02T10:03 | add_to_cart |
| U456 | 2026-10-02T10:05 | pay |
Amazon S3 Deep DivePartitioning ยท Storage Classes ยท Lifecycle ยท Versioning ยท Encryption ยท Events ยท Icebergโบ02
Key areas: bucket/object/prefix, raw-clean-curated zones, partition design, Parquet/ORC, compression, small-file control, lifecycle/storage classes, versioning, bucket policies, SSE-S3/SSE-KMS, event notifications, Access Points, and Iceberg tables.
Glue Data CatalogDatabase ยท Table ยท Schema ยท Partition ยท Location ยท Metadata โ Dataโบ03
Amazon AthenaServerless SQL ยท Partition Pruning ยท CTAS ยท Projection ยท Federated Query ยท Workgroupsโบ04
| Topic | Key point |
|---|---|
| Querying data | SQL directly over S3; partition pruning; Parquet/ORC |
| Federated Query | Query supported external sources through data source connectors |
| Performance & cost | Reduce bytes scanned with partitions, columnar formats, compression |
| Partition Projection | Generate partition values from rules instead of cataloging every partition |
| Workgroups | Separate teams/workloads; control settings, metrics, and cost |
Architecture reference: S3 โ Glue Data Catalog โ Athena โ BI. Athena query results can also be written to S3.
Amazon Redshift Deep DiveMPP ยท RA3 ยท Distribution ยท Sort ยท WLM ยท Spectrum ยท Serverless ยท Data Sharingโบ05
Amazon Redshift is a fully managed cloud data warehouse optimized for analytical SQL at scale.
| Topic | Remember |
|---|---|
| Cluster / Serverless | Provisioned cluster or serverless warehouse model |
| RA3 | Separates managed storage from compute capacity |
| Distribution | AUTO / EVEN / KEY / ALL; controls row placement |
| Sort keys | Improve data skipping for common filters/ranges |
| WLM | Controls workload queues and concurrency |
| Materialized Views | Persist query results for repeated analytical patterns |
| Spectrum | Query external data in S3 |
| Federated Query | Query supported operational databases |
| Data API | HTTPS API to run SQL without persistent DB connections |
| Data Sharing | Share live Redshift data across consumers |
| Snapshots | Backup / restore capability |
| Security | IAM, database privileges, encryption, VPC controls |
Redshift vs Hive vs Spark SQL
| Technology | Type | Storage | Typical workload |
|---|---|---|---|
| Redshift | Managed MPP data warehouse | Managed storage / S3 integration | Interactive OLAP & BI |
| Hive | SQL layer in Hadoop ecosystem | HDFS / object storage | Batch SQL, historically higher latency |
| Spark SQL | Distributed SQL engine | HDFS / S3 / other | ETL + general distributed processing |
RDS & AuroraOLTP ยท Multi-AZ ยท Read Replica ยท Backup ยท Failoverโบ06
Multi-AZ primarily improves availability/failover. Read Replicas primarily scale reads. Aurora provides a cloud-native distributed storage architecture with MySQL/PostgreSQL compatibility.
Asynchronous copy used mainly to scale read traffic. It is not the same thing as Multi-AZ failover.
Automated backups and point-in-time recovery protect the database; design retention around RPO/RTO.
DynamoDBPartition Key ยท Sort Key ยท GSI / LSI ยท Capacity ยท Streams ยท Hot Partitionโบ07
Start with access patterns. Design partition keys to distribute traffic, use sort keys for range/group access, and secondary indexes for alternate query patterns.
P2 Architecture & InterviewChoose storage by workload and explain trade-offsโบ08
Architecture Lab โ Athena Query PathTableau โ Athena โ Glue Data Catalog + S3 ยท query path and analytics service boundaries โบ09
Tableau + Athena โ Query Path
One sentence to remember: Tableau presents; Athena queries.
P3. Data Operations & Support ยท 22%
22%Observability โ CloudWatch & CloudTrailMetrics ยท Logs ยท Alarms ยท Dashboards ยท API Auditโบ01
Question answered: Is the pipeline healthy and what is happening now?
Question answered: Who did what, when, from where, and to which AWS resource?
Incident simulation HIGH
Symptom: Glue job runtime jumps from 12 to 45 minutes. Check CloudWatch job metrics/logs first. If a configuration or IAM change is suspected, use CloudTrail to identify the API call, principal and timestamp.
What to monitor as a Data Engineer
Job failuresRuntimeQueue depthFreshnessCPU / memoryError count
CloudTrail is not your application log stream; it is primarily the audit trail for AWS API activity.
Data QualityCompleteness ยท Accuracy ยท Validity ยท Uniqueness ยท Freshness ยท Consistencyโบ02
Reliable PipelinesRetry ยท Idempotency ยท Checkpoint ยท DLQ ยท Reprocessing ยท Backfill ยท Reconciliationโบ03
Performance & Cost OptimizationGlue/Spark ยท Athena ยท Kinesis ยท Redshift ยท S3 ยท Cost controlsโบ04
High Availability & Disaster RecoveryRegion ยท AZ ยท Multi-AZ ยท Auto Scaling ยท Backup ยท RTO / RPOโบ05
P3 Troubleshooting & InterviewSymptom โ Metric โ Root Cause โ Recovery โ Preventionโบ06
P4. Data Security & Governance ยท 18%
18%IAMUser ยท Role ยท Policy ยท Resource Policy ยท Least Privilege ยท AssumeRoleโบ01
Encryption & SecretsAt Rest ยท In Transit ยท KMS ยท SSE-S3 ยท SSE-KMS ยท TLS ยท Secrets Managerโบ02
Secrets Manager HIGH
Store passwords, API keys, SSH private keys and database credentials outside code. Retrieve them at runtime with the workload IAM role. Rotation is useful for supported secrets and should be tested with consumers.
KMS for a data lake HIGH
KMS manages cryptographic keys; services such as S3, RDS and Secrets Manager integrate with it. With SSE-KMS, access can require both permission to the S3 object and permission to use the KMS key.
Envelope-encryption mental model
Application/service requests encryption โ KMS protects the data key โ ciphertext is stored with the data โ authorized decrypt operations recover plaintext. KMS does not become your bulk data store.
SSE-S3SSE-KMSKey policyIAM policyRotationAudit
Security checklist
Use workload roles, least privilege, encryption at rest and TLS in transit. Keep secrets out of Git, images and logs. Monitor secret/key API activity with CloudTrail and operational failures with CloudWatch.
VPC & Private NetworkingVPC ยท Subnets ยท Routes ยท IGW ยท NAT ยท SG ยท NACL ยท VPC Endpoints ยท PrivateLinkโบ03
Lake Governance & AuditGlue Catalog ยท Lake Formation ยท CloudTrail ยท Macie ยท Retention ยท Lineageโบ04
P4 Security Architecture & ComponentsIdentity ยท Network ยท Encryption ยท Governance ยท Interview recallโบ05
Architecture Lab โ Private NetworkingNAT Gateway vs VPC Endpoint ยท private subnet traffic paths ยท secure AWS service access โบ06
Private Networking โ NAT Gateway vs VPC Endpoint
Use these two diagrams to explain where traffic goes from a private Fargate task.
1. Secure external SFTP path
The private Fargate task initiates HTTPS through NAT Gateway and Internet Gateway. The response returns through the same path and lands back on Fargate.
2. Private upload to S3 Raw
After Fargate receives the file, it streams or multipart-uploads it to S3 Raw through the S3 Gateway VPC Endpoint. This path does not use NAT or the external network.
P5. Infrastructure as Code โ Terraform & CloudFormation
PRACTICALIaC Fundamentals โ Beginner Mental ModelDesired state ยท Declarative configuration ยท Idempotency ยท Plan / Apply ยท Driftโบ01
trade-dev-rawap-southeast-1resource "aws_s3_bucket" "raw" {
bucket = "trade-dev-raw"
}What is Infrastructure as Code?
Infrastructure as Code means defining cloud infrastructure in version-controlled files instead of creating resources manually in the AWS Console.
Key point: Code describes the desired infrastructure; the IaC engine creates or changes AWS resources to match it.
Why use IaC?
IaC makes infrastructure repeatable, reviewable, auditable and easier to reproduce across development, test and production environments.
Interview: The main benefit is not automation alone; it is consistent and controlled infrastructure change.
| Concept | Beginner explanation |
|---|---|
| Declarative | Describe what the final infrastructure should look like, rather than scripting every console click. |
| Desired state | The configuration represents the infrastructure you want. |
| Idempotency | Running the same configuration again should not create duplicate resources when nothing changed. |
| Drift | The real AWS environment no longer matches the infrastructure definition because of manual or external changes. |
Terraform FundamentalsProvider ยท Resource ยท Variable ยท Output ยท init ยท validate ยท plan ยท apply ยท destroyโบ02
$ terraform init
Terraform has been successfully initialized!
$ terraform validate
Success! The configuration is valid.
$ terraform plan
Plan: 1 to add, 0 to change, 0 to destroy.
$ terraform apply
Apply complete! Resources: 1 added.First Terraform example
terraform {
required_providers {
aws = { source = "hashicorp/aws" }
}
}
provider "aws" {
region = "ap-southeast-1"
}
resource "aws_s3_bucket" "raw" {
bucket = "trade-data-raw"
}How to read it
Provider tells Terraform which platform or API to use.
Resource declares an infrastructure object to manage.
aws_s3_bucket is the resource type, while raw is Terraform's local resource name.
Variables
Variables make configuration reusable instead of hard-coding values such as region, environment or bucket names.
Outputs
Outputs expose useful values such as a VPC ID, bucket ARN or endpoint DNS name after deployment.
Terraform State, Backend & Lifecycletfstate ยท remote backend ยท locking ยท refresh ยท import ยท drift ยท sensitive dataโบ03
$ terraform state list
aws_s3_bucket.raw
$ terraform state show aws_s3_bucket.raw
# aws_s3_bucket.raw:
id = "trade-dev-raw"
region = "ap-southeast-1"State is Terraform's mapping between configuration and real infrastructure. It records resource identities and attributes so Terraform can calculate what must change.
Local vs remote state
Local state is acceptable for learning. Teams normally use a remote backend so state is shared, protected and controlled.
Locking and concurrency
Production workflows should prevent two engineers or pipelines from modifying the same state at the same time.
Import
Import brings an existing resource under Terraform management; configuration still needs to describe the resource correctly.
Sensitive state
State can contain sensitive values. Restrict access, encrypt the backend and avoid treating the state file as ordinary source code.
Production rule: Do not commit terraform.tfstate to Git.
Terraform Modules & EnvironmentsModule ยท input / output ยท for_each ยท count ยท dev / staging / prod ยท reusable platform patternsโบ04
infra/
โโโ modules/
โ โโโ s3-data-lake/
โ โโโ main.tf
โ โโโ variables.tf
โ โโโ outputs.tf
โโโ environments/
โโโ dev/
โโโ prod/module "data_lake" {
source = "../../modules/s3-data-lake"
environment = "dev"
raw_bucket = "trade-dev-raw"
}A module is a reusable package of Terraform resources. Instead of repeating VPC, S3, IAM and ECS definitions for every environment, create a tested module and pass environment-specific inputs.
for_each vs count
Use for_each when instances have stable semantic keys; count is convenient for simple indexed repetition.
Environment strategy
Keep environment values separate while reusing the same modules. Production should not be a manually edited copy of development.
AWS CloudFormation FundamentalsTemplate ยท Resources ยท Parameters ยท Outputs ยท Stack ยท Change Set ยท rollback ยท driftโบ05
$ aws cloudformation deploy \
--template-file template.yaml \
--stack-name trade-dev \
--parameter-overrides Environment=dev
Waiting for changeset to be created...
Successfully created/updated stack - trade-devFirst CloudFormation example
AWSTemplateFormatVersion: '2010-09-09'
Parameters:
Environment:
Type: String
Resources:
RawBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub trade-${Environment}-raw
Outputs:
RawBucketName:
Value: !Ref RawBucketMental model
Template is the infrastructure definition.
Stack is the deployed collection of AWS resources.
Change Set previews proposed stack changes before execution.
Rollback helps return a failed stack update toward the previous stable state.
Terraform vs CloudFormationState ยท ecosystem ยท AWS-native integration ยท reuse ยท preview ยท rollback ยท drift ยท selectionโบ06
terraform planPreview resource diffterraform applyApply through provider APIscreate-change-setPreview stack changesexecute-change-setAWS manages stack lifecycleQuick decision: Terraform is strong when you want a consistent IaC workflow, reusable modules and infrastructure beyond AWS. CloudFormation is strong when the environment is AWS-only and the team prefers an AWS-native stack lifecycle.
| Dimension | Terraform | CloudFormation |
|---|---|---|
| Language | HCL | YAML or JSON |
| Scope | Multi-provider and multi-cloud | AWS-native |
| State model | Explicit Terraform state and backend | AWS manages stack state |
| Preview | terraform plan | Change Sets |
| Reuse | Modules | Nested stacks, modules and reusable templates |
| Rollback | Handled through workflow and corrective configuration | Built-in stack rollback behavior |
| Typical strength | Platform standardization and reusable cross-provider IaC | Deep AWS-native lifecycle integration |
Interview: Why Terraform?
I would choose Terraform when the organization wants a consistent infrastructure workflow, reusable modules and the flexibility to manage infrastructure beyond AWS.
Interview: Why CloudFormation?
I would choose CloudFormation when the environment is AWS-only and the team values a fully AWS-native stack lifecycle and service integration.
Production IaC โ CI/CD, Project Example & InterviewGit ยท review ยท plan ยท approval ยท apply ยท least privilege ยท drift ยท recovery ยท Trade Data Pipelineโบ07
main.tf changed
syntax / style
1 add ยท 1 change
human review
production
Terraform will perform the following actions:
+ aws_s3_bucket.processed
~ aws_ecs_task_definition.downloader
Plan: 1 to add, 1 to change, 0 to destroy.Production delivery flow
Apply IaC to this Trade Data Pipeline
Plan before apply
Review the proposed infrastructure diff before changing production. Treat infrastructure changes like application code changes.
Least-privilege pipeline identity
The CI/CD runner should have only the permissions required to deploy the approved infrastructure.
Drift control
Avoid manual console changes. Detect and reconcile differences between code and real infrastructure.
Failure recovery
Understand partial failures, state consistency, stack rollback and how to safely retry or correct the configuration.
30-second interview answer: I use Infrastructure as Code so AWS environments are reproducible and reviewable. For Terraform, I separate reusable modules from environment configuration, keep state in a protected remote backend, review terraform plan in CI/CD, require approval before production apply, and avoid manual drift. CloudFormation provides a similar declarative model with AWS-managed stacks and Change Sets, so the choice depends on the team's ecosystem and AWS-only versus broader infrastructure requirements.