38 cards · AWS SAA-C03 · answer each one, then read the explanation. Your score tallies below.
0 / 38 answered · 0 correct
Link copied — send it to a friend!
AWS SAA-C03 · EC2 & Compute · Card 001/038easy
A company runs an application on an EC2 instance that uses instance store volumes for scratch data. An engineer stops the instance overnight to save costs. What happens to the data on the instance store volumes?
AThe data persists and is available when the instance starts again
BThe data is lost when the instance is stopped
CThe data is automatically backed up to Amazon S3
DThe data is migrated to an EBS volume
Correct answer: .
Instance store volumes are physically attached ephemeral storage. Their contents survive an OS reboot but are lost whenever the instance is stopped, hibernated, or terminated, because the instance may be moved to different underlying hardware. There is no automatic backup to S3, and no automatic migration to EBS; both would require the engineer to set up copies explicitly. This is why instance store suits only temporary data such as caches, buffers, and scratch space, while anything that must persist belongs on EBS or S3. A common exam trap is confusing reboot (data survives) with stop (data lost).
Source: AWS EC2 docs: Amazon EC2 instance store — lifetime of instance store data
AWS SAA-C03 · EC2 & Compute · Card 002/038easy
A media company needs to run a nightly video transcoding job that can tolerate interruptions and restarts. The finance team wants the lowest possible EC2 compute cost. Which purchasing option best fits this workload?
AOn-Demand Instances
BDedicated Hosts
CA zonal Reserved Instance
DSpot Instances
Correct answer: .
Spot Instances offer the deepest discounts on EC2 compute, commonly up to around 90% versus On-Demand pricing, in exchange for the possibility that AWS reclaims the capacity with a two-minute warning. A transcoding job that is fault tolerant and restartable is the textbook Spot workload: an interruption costs only a retry, not lost data. On-Demand is flexible but the most expensive of the sensible options here. Reserved Instances reward steady, predictable usage over one or three years, not a nightly batch job. Dedicated Hosts exist for licensing and compliance needs and carry premium pricing, solving a problem this company does not have.
A web application runs on a single On-Demand EC2 instance with no load balancer. As part of routine maintenance, an engineer stops the instance and then starts it again (this is not a reboot). No Elastic IP is associated with the instance. What happens to its public IPv4 address?
AThe public IPv4 address is retained exactly as it was before the stop
BThe instance permanently loses all public IPv4 connectivity
CThe instance is assigned a new public IPv4 address
DAWS automatically converts the address into a permanent Elastic IP
Correct answer: .
A standard auto-assigned public IPv4 address is not static: it is released when the instance stops and a new one is assigned when it starts again, which is why the instance receives a new public IPv4 address. The address is only retained across a stop/start cycle if an Elastic IP address is explicitly allocated and associated with the instance, so the option claiming the address is retained only describes the Elastic IP case, which the question rules out. The instance does not lose public connectivity permanently; it simply receives a different public address once it is running again, so the option suggesting permanent loss of connectivity confuses temporary reassignment with permanent loss. AWS never automatically converts a dynamic public IP into an Elastic IP; Elastic IPs must be deliberately allocated from the EC2 console or API and then associated, so the option describing an automatic conversion describes something AWS does not do on its own.
Source: AWS EC2 documentation: Elastic IP addresses — public IPv4 address behaviour on instance stop/start
AWS SAA-C03 · EC2 & Compute · Card 004/038easy
A team runs a t3.medium EC2 instance for a workload that is mostly idle but occasionally needs to sustain CPU usage above the instance's baseline for extended periods. With the default 'Standard' credit configuration, performance drops sharply once accumulated CPU credits run out. Which change lets the instance sustain high CPU performance during these bursts, while accepting that AWS may charge extra for the additional usage?
ASwitch the instance's credit specification to Unlimited mode
BMove the instance into a Spread placement group
CEnable EBS optimization on the instance
DChange the Auto Scaling group's health check type to ELB
Correct answer: .
Burstable instances like t3.medium accumulate CPU credits while running below their baseline performance and spend them to burst above it; in Standard mode, once credits are exhausted, CPU performance is throttled back down to the baseline. Switching the credit specification to Unlimited mode lets the instance burst above baseline for as long as needed, with AWS billing any surplus usage beyond what earned credits cover, which directly solves the described problem. A Spread placement group only changes which underlying hardware instances land on for fault isolation; it has no effect on CPU credit behaviour. Enabling EBS optimization dedicates bandwidth to EBS volume traffic and improves storage throughput, but does not touch CPU credit throttling. Changing an Auto Scaling group's health check type from EC2 to ELB affects how unhealthy instances are detected and replaced, which is unrelated to a single instance's CPU performance ceiling.
A security team wants to reduce the risk of an application vulnerability being exploited to steal an EC2 instance's IAM role credentials via the instance metadata service. Which configuration change most directly mitigates this specific risk?
AReplace the instance's shared tenancy with a Dedicated Host
BEnable detailed CloudWatch monitoring on the instance
CMove the instance into a cluster placement group
DRequire IMDSv2 by setting the instance metadata options' HttpTokens parameter to required
Correct answer: .
IMDSv1 allows a simple, unauthenticated GET request to the instance metadata endpoint, which is exactly what many server-side request forgery (SSRF) exploits abuse to retrieve an instance's temporary IAM role credentials through a vulnerable application. Requiring IMDSv2, by setting HttpTokens to required, forces every metadata request to first obtain a session token via a PUT request with a hop limit, which most SSRF techniques cannot replicate because they typically cannot issue arbitrary PUT requests or control the token's TTL and hop count, closing off this specific credential-theft path. Switching to a Dedicated Host changes billing and hardware tenancy for licensing purposes and has no bearing on metadata credential exposure. Detailed CloudWatch monitoring only increases the frequency of metric collection for observability; it does not prevent or detect credential theft on its own. A cluster placement group only affects network latency and throughput between instances in the same Availability Zone and is unrelated to metadata security.
Source: AWS EC2 documentation: Instance metadata service version 2 (IMDSv2)
AWS SAA-C03 · EC2 & Compute · Card 006/038easy
An architect must run 5 critical instances of a distributed application in a single Availability Zone. Each instance must run on genuinely distinct underlying hardware, so that a single hardware failure cannot affect more than one instance. Which EC2 placement group strategy fits this requirement?
ACluster placement group
BSpread placement group
CPartition placement group
DNo placement group, relying on AWS's default instance placement
Correct answer: .
A Spread placement group strictly places each instance on distinct underlying hardware, each with its own separate power source and network path, and it supports up to 7 running instances per group per Availability Zone, which is exactly the level of per-instance hardware isolation this scenario needs for a small number of critical instances. A Cluster placement group instead packs instances close together within a single Availability Zone to minimise network latency and maximise throughput, which increases rather than decreases the chance that a single hardware or rack failure affects multiple instances. A Partition placement group divides instances into a smaller number of partitions, where each partition can contain many instances, and is designed for large distributed systems such as Hadoop, Cassandra, or Kafka that can tolerate losing an entire partition, not for guaranteeing per-instance isolation among only 5 critical instances. Relying on AWS's default placement gives no guarantee about hardware separation at all, leaving the outcome entirely up to AWS's internal placement decisions.
Source: AWS EC2 documentation: Placement groups — spread placement groups
AWS SAA-C03 · EC2 & Compute · Card 007/038medium
An Auto Scaling group launches instances registered with an Application Load Balancer target group. One instance passes its EC2 status checks (the underlying hardware, network, and OS are healthy), but its application process has crashed and no longer responds to any requests. The Auto Scaling group's health check type is left at its default value. What happens to this instance?
AThe Auto Scaling group leaves it running, because by default it only evaluates EC2 status checks
BThe Application Load Balancer automatically restarts the crashed application process on the instance
CThe Auto Scaling group launches an additional instance instead of taking any action on the unhealthy one
DThe Auto Scaling group marks it unhealthy and replaces it, because it also evaluates target group health by default
Correct answer: .
An Auto Scaling group's health_check_type defaults to EC2, meaning it only reacts to EC2 status check failures at the hardware, network, and OS level; an instance that is otherwise healthy but whose application process has crashed will keep running and keep failing to serve traffic until an operator explicitly changes the health check type to ELB, which makes the Auto Scaling group also honour the target group's health checks and replace instances that fail them. The fourth option describes ELB-type behaviour, which is not the default the question specifies. The second option is false because an Application Load Balancer only routes traffic and reports target health; it never restarts processes running inside an instance's operating system. The third option misunderstands how health checks interact with scaling: a failing health check does not, by itself, trigger a scale-out event, since scale-out is driven by scaling policies, not health check type.
Source: AWS documentation: Amazon EC2 Auto Scaling — health checks for Auto Scaling instances
AWS SAA-C03 · EC2 & Compute · Card 008/038medium
A team currently manages EC2 Auto Scaling using a Launch Configuration created two years ago. They now want to launch a new instance type and combine On-Demand and Spot purchase options across multiple instance types within the same Auto Scaling group. What should they do?
AEdit the existing Launch Configuration to add the new instance type and mixed purchase options
BDo nothing, because Launch Configurations already support mixed instances policies
CMigrate to a Launch Template, which supports versioning and mixed instances policies
DCreate a second, separate Auto Scaling group that uses only Spot Instances
Correct answer: .
Launch Configurations are immutable once created, so they cannot be edited to add settings, which rules out editing the existing Launch Configuration outright, and they also lack support for several newer Auto Scaling capabilities, including mixed instances policies that combine On-Demand and Spot purchase options across multiple instance types in a single group. Launch Templates are the modern replacement: they support versioning so changes can be iterated on safely, expose the full range of current EC2 launch parameters, and are required to configure a mixed instances policy, making migration to a Launch Template correct. The claim that Launch Configurations already support mixed instances policies is simply factually wrong, since Launch Configurations were never extended to support them. Creating a second, separate Spot-only Auto Scaling group could technically work operationally, but it abandons the stated goal of keeping this within one Auto Scaling group and needlessly duplicates and fragments the infrastructure instead of solving the underlying limitation.
Source: AWS documentation: Amazon EC2 Auto Scaling — launch templates versus launch configurations
AWS SAA-C03 · EC2 & Compute · Card 009/038medium
A company runs a legacy Windows Server workload under an existing license that is bound to specific physical processor sockets and cores, and it must be able to report the exact host ID, socket count, and core count its instances run on for compliance purposes. Which EC2 tenancy option satisfies both requirements?
ADefault (shared) tenancy
BDedicated Instances
CDedicated Hosts
DA cluster placement group
Correct answer: .
A Dedicated Host is a physical server fully dedicated to a single AWS account, and unlike other tenancy options it exposes the host's identifier along with its exact number of sockets and physical cores, plus the ability to target specific instances to specific hosts, which is precisely what socket- or core-bound licensing terms and compliance reporting require. Dedicated Instances also run on hardware dedicated to a single account, but the account has no visibility into or control over the underlying host's identity, sockets, or cores, so they cannot support socket-bound license reporting even though they satisfy general single-tenant isolation. Default shared tenancy explicitly allows hardware to be shared with other AWS customers, which immediately disqualifies it for hardware-bound licensing. A cluster placement group only affects the network placement of instances for low-latency, high-throughput communication and has no relationship to tenancy, hardware visibility, or licensing at all.
Source: AWS documentation: Dedicated Hosts versus Dedicated Instances
AWS SAA-C03 · EC2 & Compute · Card 010/038hard
A company purchased a 1-year Standard Reserved Instance covering an m5.large in us-east-1 for a steady workload. Six months into the term, the workload permanently moves to a c6g.large, a different instance family built on a different processor architecture, for the remainder of the term. Which statement is correct?
AThe Standard RI can simply be exchanged for a c6g.large RI covering the remaining term
BBoth Standard and Convertible RIs can freely change instance family at any point during their term
CNo Reserved Instance type ever supports a mid-term change; the company must wait until renewal
DThe Standard RI cannot change instance family; only a Convertible RI supports exchanging into a different instance family
Correct answer: .
Standard Reserved Instances allow limited modifications during their term, such as changing Availability Zone, scope, network platform, or instance size within the same instance family and generation, but they can never be exchanged into a different instance family, which rules out the m5-to-c6g move described here. Only Convertible Reserved Instances support mid-term exchange into a different configuration, including a different instance family, operating system, or tenancy, provided the new RI's value is equal to or greater than the value being exchanged, which is exactly why Convertible RIs carry a smaller discount than Standard RIs in exchange for that flexibility. The option suggesting the Standard RI can simply be exchanged for a c6g.large RI is wrong specifically because this purchase is a Standard RI, not a Convertible one. The claim that both RI types can freely change instance family overstates what Standard RIs can do, since their modification options never include changing family. The claim that no RI type ever supports a mid-term change is wrong because Convertible RIs exist precisely to support this kind of mid-term family change before the original term ends.
Source: AWS documentation: Reserved Instances — modifying Standard RIs and exchanging Convertible RIs
AWS SAA-C03 · EC2 & Compute · Card 011/038easy
A company launches an EC2 instance from an instance-store-backed AMI for a workload that needs the full local NVMe scratch capacity. An engineer later tries to reduce cost by stopping the instance overnight, the same way they do for other instances in the fleet. What happens?
AThe instance stops normally and can be started again later, exactly like an EBS-backed instance
BThe stop action is not available; the instance can only be rebooted or terminated, never stopped
CThe instance stops, but AWS automatically converts its root volume to an EBS volume first
DThe instance hibernates instead of stopping, preserving the instance store contents
Correct answer: .
Instance-store-backed instances use local host disk as their root volume, and because that root volume cannot be detached from the underlying hardware and reattached elsewhere, the EC2 console and API only offer reboot or terminate for these instances; stop and start are simply not available. The option describing a normal stop is wrong because that behavior applies only to EBS-backed instances, whose root volume persists on EBS storage independent of the host and can be reattached after the instance migrates to new hardware. Automatic conversion to an EBS volume does not happen on its own; producing an EBS-backed equivalent would require manually creating a new AMI and launching from it. Hibernation is also unavailable here because hibernating requires an encrypted EBS root volume to save the instance's RAM contents to, and an instance-store-backed instance has no such volume to write to.
Source: AWS EC2 documentation: Stop and start Amazon EC2 instances — instance store root volume restrictions
AWS SAA-C03 · EC2 & Compute · Card 012/038medium
An engineer launches an EC2 instance using the AWS CLI's run-instances command, attaching one additional (non-root) EBS data volume in the same launch request, without explicitly setting DeleteOnTermination on that volume. Later, when the instance is terminated, what happens to that additional volume by default?
AIt is preserved, because non-root volumes are never deleted automatically
BIts deletion behavior always matches whatever was chosen for the root volume
CIt is preserved only if it was created from a snapshot
DIt is deleted, because the CLI's default DeleteOnTermination behavior for a data volume attached at launch differs from the console's default
Correct answer: .
AWS documents different default DeleteOnTermination behavior for a non-root data volume depending on how it is attached at launch: attaching it through the console defaults to preserving the volume (DeleteOnTermination false), while attaching the same kind of volume at launch through the CLI or API defaults to deleting it (DeleteOnTermination true) unless the block device mapping explicitly overrides that value. So an engineer who launches via the CLI and does not set the attribute ends up with the volume deleted on termination, which surprises people who assume the console's more forgiving default applies everywhere. The claim that non-root volumes are never deleted automatically ignores this CLI default entirely. Root and data volume DeleteOnTermination settings are independent attributes, so a data volume's behavior does not automatically mirror whatever was chosen for the root volume. There is no rule tying deletion behavior to whether a volume originated from a snapshot; only the attach method and explicit configuration matter.
Source: AWS EC2 documentation: Preserve data when an instance is terminated — default deletion behavior for EBS volumes
AWS SAA-C03 · EC2 & Compute · Card 013/038easy
An HPC team is building a tightly coupled MPI simulation cluster and wants the lowest possible inter-instance network latency and the highest throughput between nodes, achieved by grouping all nodes together using a placement group. Which statement about a Cluster placement group is correct?
AAll instances in a Cluster placement group must reside in a single Availability Zone
BA Cluster placement group can span multiple Availability Zones to increase resilience
CA Cluster placement group guarantees that no single hardware failure can affect more than one instance
DA Cluster placement group is required before you can enable enhanced networking on an instance
Correct answer: .
A Cluster placement group packs instances close together within a single Availability Zone specifically to minimize inter-instance network latency and maximize throughput for tightly coupled workloads such as HPC and MPI simulations, which means it cannot span multiple Availability Zones at all; spanning multiple AZs to increase resilience instead describes a Spread placement group's design goal. Because a Cluster placement group intentionally packs instances close together on related hardware, it does the opposite of guaranteeing isolation from a single hardware failure — that isolation guarantee describes a Spread placement group, not a Cluster one. Enhanced networking is a capability of supported instance types paired with the right driver, and it can be enabled with or without any placement group; a Cluster placement group is not a prerequisite for it, though combining enhanced-networking-capable instances with a Cluster placement group is a common way to get the full latency and throughput benefit.
Source: AWS EC2 documentation: Placement groups — cluster placement strategy
AWS SAA-C03 · EC2 & Compute · Card 014/038easy
An engineer hibernates an EC2 instance overnight instead of leaving it running, in order to save cost while preserving its exact in-memory state for the next morning. Which statement about billing during hibernation is correct?
AThe company is billed the full On-Demand instance rate the entire time it is hibernated
BThe company is billed nothing at all, including for the storage used by the saved RAM contents
CThe company is not billed for instance usage while hibernated, but continues to pay for EBS storage, including the space used to store the RAM contents
DThe company is billed a reduced, discounted instance rate while hibernated, similar to a Spot Instance
Correct answer: .
Hibernation saves an instance's RAM contents to its EBS root volume and then leaves the instance in the stopped state, and because compute usage is not billed for a stopped instance, AWS does not charge for instance usage or for the data transfer involved in writing RAM to the root volume while hibernated; what does continue to be billed is ordinary EBS storage, which now includes the extra space consumed by the saved memory contents, so the true cost is not zero. Billing the full On-Demand rate throughout is wrong because stopped and hibernated instances are never charged for compute time. Claiming zero charges overlooks the ongoing EBS storage cost for the volume holding both the root filesystem and the RAM snapshot. There is no discounted hibernation-specific instance rate comparable to Spot pricing; the only cost incurred is the standard EBS storage charge.
Source: AWS EC2 documentation: Hibernate your Amazon EC2 instance — billing during hibernation
AWS SAA-C03 · EC2 & Compute · Card 015/038medium
A production EC2 instance has termination protection enabled (its DisableApiTermination attribute is set to true) and is a member of an Auto Scaling group. Which of the following can still terminate this instance despite termination protection being enabled?
AA user calling the TerminateInstances API directly
BThe Auto Scaling group replacing the instance during a scale-in event
CA user terminating the instance from the AWS Management Console's Instance State menu
DTermination protection has no exceptions; nothing can terminate the instance once it is enabled
Correct answer: .
The DisableApiTermination attribute blocks calls to the underlying TerminateInstances API, and because the console's terminate action and standard CLI or SDK terminate calls all route through that same API, both of those paths are blocked exactly as the attribute is designed to do. Amazon EC2 Auto Scaling, however, terminates and replaces instances during scale-in events and unhealthy-instance replacement through its own internal management logic, which is not restricted by this instance attribute, so a scale-in event can still remove a termination-protected instance from the group. The dedicated control for preventing that specific behavior is Auto Scaling's own instance scale-in protection feature, which must be enabled separately on a per-instance basis. That the console-based terminate action is blocked follows directly from it calling the same underlying API as a direct request. Claiming termination protection has no exceptions overstates what the attribute actually does; it guards specifically against direct API-driven termination, not every termination pathway on the platform.
An Auto Scaling group uses a Pending:Wait lifecycle hook with its default heartbeat timeout to let a configuration management agent finish installing software before a new instance enters service. The install job unpredictably takes anywhere from 10 minutes to just under 4 hours. With no heartbeat calls sent from the instance and everything left at its defaults, what happens for an install that takes 3 hours?
AThe instance times out of the wait state after the default 1-hour heartbeat timeout, and Auto Scaling proceeds using the hook's configured default result before the 3-hour install finishes
BThe instance waits the full 3 hours, because the default heartbeat timeout is 4 hours
CThe instance waits indefinitely, because lifecycle hooks never time out unless a heartbeat explicitly ends them
DThe instance is terminated immediately once the hook is created, before the install can even start
Correct answer: .
A lifecycle hook's default heartbeat timeout is 3600 seconds, or one hour; if nothing calls RecordLifecycleActionHeartbeat or completes the lifecycle action before that hour elapses, Auto Scaling stops waiting and proceeds using the hook's configured default result, so an installation still running at the one-hour mark is cut off from the Pending:Wait state well before a 3-hour job would finish. Stretching the wait beyond the default requires the instance to actively send heartbeats, each of which resets the countdown, and doing this repeatedly can extend the total wait up to a documented maximum of 48 hours — but that requires deliberate heartbeat calls, which this scenario explicitly says are not happening. There is no Auto Scaling lifecycle hook setting with a default heartbeat timeout of 4 hours, so that option describes a number that doesn't exist in the service. Lifecycle hooks are also not indefinite by default; without heartbeats or a completion call, they always resolve once the heartbeat timeout expires, and nothing about merely creating the hook causes an immediate termination.
An Auto Scaling group serves an application with a slow, multi-minute boot process. The team configures a warm pool with instances kept in the Stopped state to cut scale-out latency. Immediately after setup, while instances sit in the warm pool but have not yet been drawn into service, how do they affect the group's reported desired capacity?
AEach pooled instance immediately counts toward the group's desired capacity, the same as an InService instance
BPooled instances double-count, appearing in both the warm pool metrics and the desired capacity
CThe warm pool cannot exist unless desired capacity is first reduced to zero
DPooled instances sit outside the desired capacity and only begin counting toward it once they leave the pool and enter service
Correct answer: .
A warm pool sits alongside an Auto Scaling group as a separate pool of pre-initialized instances that are not counted as part of the group's desired capacity while they remain in the pool; only when a scale-out event draws an instance out of the warm pool into the group, known as a warm start, does that instance begin counting toward desired capacity. This separation is the entire point of the feature: it lets instances finish a lengthy boot process ahead of time so the group can absorb demand quickly, without inflating the counted, InService fleet beforehand. Instances are never counted twice; the warm pool and the group's InService fleet are tracked as distinct populations precisely so cost and capacity accounting stay separate until a warm start occurs. There is also no requirement to reduce desired capacity to zero before creating a warm pool — its default size is simply calculated from the difference between the group's maximum capacity and its current desired capacity, so both coexist normally from the start.
An architect wants to launch a single batch of compute capacity that combines multiple instance types, spans several Availability Zones, and mixes On-Demand and Spot purchase options, all from one API request, with automatic replacement of any interrupted Spot capacity. Which EC2 capability is purpose-built for this?
AA single Launch Template with one instance type specified
BA Standard Reserved Instance covering one instance type in one Availability Zone
CEC2 Fleet (or Spot Fleet), which launches a fleet across multiple instance types, Availability Zones, and purchase options in one request
DA Dedicated Host allocated for the workload's peak capacity
Correct answer: .
EC2 Fleet, and its predecessor Spot Fleet, is designed exactly for this scenario: a single request can define multiple instance types, span multiple Availability Zones, and blend On-Demand and Spot purchase options, and when the fleet includes Spot Instances it can automatically request replacement Spot capacity after an interruption, optionally using Capacity Rebalancing to proactively replace instances flagged as being at elevated risk of interruption before they're reclaimed. A single Launch Template tied to one instance type only describes the launch configuration for one kind of instance and has no fleet-level logic for spanning types, Availability Zones, or purchase options by itself. A Standard Reserved Instance is a billing commitment for one specific instance type in one specific Availability Zone (or Region, if regional) and neither launches instances nor mixes purchase options. A Dedicated Host reserves a single-tenant physical server for an account's own instance placement and has no mechanism for combining instance types, Availability Zones, or Spot and On-Demand purchasing within a single launch request.
Source: AWS EC2 documentation: EC2 Fleet and Spot Fleet — features and benefits
AWS SAA-C03 · EC2 & Compute · Card 019/038hard
A team wants guaranteed On-Demand capacity for an m5.large in a specific Availability Zone for an upcoming three-day event, starting immediately, with no long-term commitment, and they also want those instances to run inside a placement group. Which combination is valid?
AAn On-Demand Capacity Reservation combined with a Spread placement group
BAn On-Demand Capacity Reservation for immediate use combined with a Cluster placement group
CA one-year Standard Reserved Instance combined with a Dedicated Host
DAn On-Demand Capacity Reservation combined with a Partition placement group
Correct answer: .
On-Demand Capacity Reservations created for immediate use carry no term commitment at all — they can be created, modified, or canceled at any time — which matches a short, three-day, no-commitment requirement, and Capacity Reservations are explicitly supported alongside Cluster placement groups, letting instances that need guaranteed capacity also gain a Cluster placement group's low-latency, high-throughput packing. Spread and Partition placement groups, however, are not supported with Capacity Reservations at all, so pairing a Capacity Reservation with either one is not a configuration AWS allows, ruling out those combinations regardless of how appealing the isolation or distribution properties might otherwise be. A one-year Standard Reserved Instance fails on two counts here: it locks in a full one-year term that doesn't fit a three-day event, and separately, Capacity Reservations, not Reserved Instances, are the construct that can't be combined with Dedicated Hosts — Dedicated Hosts have their own distinct host-allocation mechanism that doesn't combine with either reservation type in this way.
Source: AWS EC2 documentation: EC2 Capacity Reservations — placement group and Dedicated Host limitations
AWS SAA-C03 · EC2 & Compute · Card 020/038easy
An instance's system status check fails due to a hardware problem on its underlying host, and automatic instance recovery successfully migrates it to a new host. Compared with an engineer manually stopping and starting the same instance, which detail is different about automatic recovery's outcome?
AAutomatic recovery preserves the instance's existing public IPv4 address, while a manual stop and start assigns a new public IPv4 address unless an Elastic IP is attached
BAutomatic recovery always loses instance store data, while a manual stop and start always preserves it
CAutomatic recovery changes the instance's private IP address, while a manual stop and start keeps it the same
DAutomatic recovery moves the instance to a different Availability Zone, while a manual stop and start keeps it in the same one
Correct answer: .
Automatic instance recovery is specifically designed so the recovered instance keeps its instance ID, private IP address, public IPv4 address, and any Elastic IP, along with its instance metadata, placement group, and attached EBS volumes — the only things lost are the contents of volatile memory and, for CloudWatch action-based recovery, instance store data. A manual stop and start does not offer the same guarantee for the public IPv4 address: because a standard public IPv4 address isn't static, starting a stopped instance normally assigns it a new one unless an Elastic IP is explicitly associated first, which is the key practical difference between the two approaches. Instance store data is lost in both a manual stop and, for CloudWatch action-based recovery, automatic recovery — it is not preserved by a manual stop as the second option claims. Neither approach changes the instance's private IP address, and automatic recovery specifically keeps the instance within its original Availability Zone rather than moving it elsewhere.
An engineer researching why modern Nitro-based EC2 instance types deliver almost all of a host's CPU and memory resources to customer workloads, while still providing high-speed networking and low-latency EBS access, asks what makes this possible. What is the correct explanation?
AAWS removed the hypervisor entirely, so instances run directly on bare hardware with no virtualization layer at all
BA software-only hypervisor upgrade eliminated the need for any dedicated hardware changes
CEvery Nitro-based instance type is automatically billed as a Dedicated Host at no extra charge
DDedicated Nitro Cards offload networking, storage, and security functions from the host CPU, while a lightweight Nitro Hypervisor and a Nitro Security Chip handle the rest
Correct answer: .
The Nitro System splits traditional hypervisor responsibilities across dedicated hardware components: Nitro Cards handle networking, EBS storage I/O, and security functions outside the main host CPU, the Nitro Hypervisor itself is reduced to a thin layer mainly responsible for CPU and memory allocation, and the Nitro Security Chip acts as a hardware root of trust that continuously monitors and protects the system's hardware and firmware. This offloading is precisely why Nitro-based instances can deliver nearly all of a host's compute and memory to the customer's workload while still providing high-throughput networking and low-latency EBS performance. Claiming the hypervisor was removed entirely is inaccurate — the Nitro Hypervisor still exists, just minimized rather than eliminated. The improvement is also not a mere software upgrade; it required purpose-built Nitro Card hardware alongside the software changes. Nitro-based instance types remain ordinary shared or dedicated-tenancy instances depending on what a customer selects at launch; using the Nitro System has no automatic effect on tenancy or Dedicated Host billing.
Source: AWS documentation: AWS Nitro System overview (aws.amazon.com/ec2/nitro)
AWS SAA-C03 · EC2 & Compute · Card 022/038easy
A security team wants engineers to connect to private EC2 instances that have no public IP address and no inbound rule for SSH or RDP, without managing SSH key pairs or a bastion host, while keeping a centralized, IAM-controlled, logged record of every session. Which approach satisfies all of these requirements?
AEC2 Instance Connect, since it also avoids opening inbound SSH ports
BAWS Systems Manager Session Manager, using the SSM Agent and an IAM role attached to the instance
CA bastion host in a public subnet with a security group restricted to the engineers' office IP range
DEnabling IMDSv2 on each instance to allow authenticated shell access over the metadata endpoint
Correct answer: .
Session Manager connects to managed nodes through the SSM Agent running on the instance together with an IAM role attached to it, using an outbound-only connection to the Systems Manager service, so it needs no inbound SSH or RDP port open, no bastion host, no SSH key management, and no public IP address on the target, while still giving administrators centralized, IAM-policy-based access control and optional session logging to CloudTrail, S3, or CloudWatch Logs. EC2 Instance Connect still relies on SSH over port 22, since it merely pushes a short-lived public key rather than eliminating the SSH connection itself, so it does not satisfy the requirement to avoid inbound SSH access entirely. A bastion host in a public subnet is a workable pattern but still requires a running host, managed inbound access, and typically SSH keys, which is exactly the operational overhead the team wants to avoid. IMDSv2 only hardens how an instance queries its own metadata endpoint from within itself; it plays no role in providing remote shell access to engineers.
Source: AWS Systems Manager documentation: Session Manager overview
AWS SAA-C03 · EC2 & Compute · Card 023/038easy
An engineer adds a shell script as user data to an already-running Linux EC2 instance's configuration, expecting it to reinstall a monitoring agent every time the instance reboots. After the script runs successfully at initial launch, the engineer reboots the instance and finds the script did not run again. Why?
AUser data scripts can only ever run once per instance for the lifetime of that instance, with no way to change this
BThe script failed silently the second time, because reboots automatically clear all instance user data
CBy default, user data scripts and cloud-init directives run only during the first boot cycle at launch, not on subsequent reboots or starts, unless explicitly configured to run every time
DReboots never re-read user data at all; only a full stop and start re-reads it
Correct answer: .
Amazon EC2 runs user data shell scripts and cloud-init directives only during the initial boot cycle when an instance is first launched; making a script run on every subsequent reboot or start requires explicitly opting into that behavior, for example by adding cloud-init's scripts-user "always" configuration on Linux, which the engineer's script did not include, so it correctly ran once at launch and then stayed dormant on the later reboot. This is a deliberate default rather than a permanent limitation, since once persistence is configured the same script can run on every start. User data is not cleared by a reboot either; it remains stored as an instance attribute and is simply not re-executed unless configured to be. The claim that only a full stop and start, and never a reboot, re-reads user data is also inaccurate, because without the persistence configuration, neither a reboot nor a stop and start re-runs the script — both follow the exact same first-boot-only default.
Source: AWS EC2 documentation: Run commands when you launch an EC2 instance with user data input — user data execution
AWS SAA-C03 · EC2 & Compute · Card 024/038medium
A company's workloads frequently shift between instance families and AWS Regions as teams experiment with new architectures, but overall hourly compute spend is fairly predictable. They want a 1-year discount commitment that keeps working even as the specific instance types and Regions in use change, without reserving physical capacity in any particular Availability Zone. Which purchase option fits best?
AA Compute Savings Plan, which discounts EC2 (and Fargate/Lambda) usage regardless of instance family, size, OS, tenancy, or Region
BA zonal Reserved Instance, which reserves capacity in one Availability Zone for one specific instance type
CAn On-Demand Capacity Reservation, since it can be created for any duration with no commitment
DA Dedicated Host reservation, since it guarantees the same discount across every instance family automatically
Correct answer: .
A Compute Savings Plan is a commitment to a fixed dollar amount of compute usage per hour for a 1- or 3-year term, and in exchange its discount automatically applies to EC2 usage regardless of instance family, instance size, operating system, tenancy, or Region, and even extends to AWS Fargate and Lambda usage, which is exactly the flexibility this company's shifting architecture needs; it also reserves no physical capacity, so the discount is never tied to any particular Availability Zone. A zonal Reserved Instance is the opposite fit: it reserves capacity for one specific instance type in one specific Availability Zone, so any change in instance family or Region breaks the match and forfeits the discount unless the Reserved Instance is separately modified or exchanged. An On-Demand Capacity Reservation guarantees available capacity rather than providing a billing discount, so despite its flexible term it does not address the stated one-year discount requirement at all. A Dedicated Host reservation is a hardware tenancy construct aimed at licensing and compliance needs, and it carries no automatic cross-family billing discount comparable to a Savings Plan.
A team is choosing between gp2 and gp3 General Purpose SSD volumes for a fleet of small (50 GiB) boot volumes and wants to understand how their baseline performance differs. Which statement is correct?
Agp2 volumes provide a fixed 3,000 IOPS and 125 MiB/s baseline no matter how large the volume is
Bgp3 and gp2 both scale baseline IOPS proportionally with volume size, with no fixed floor
Cgp3 volumes provide a fixed 3,000 IOPS and 125 MiB/s baseline regardless of volume size, while gp2's baseline IOPS scale with volume size (3 IOPS per GiB, subject to a burst ceiling)
Dgp2 volumes provide a fixed 16,000 IOPS baseline regardless of size, while gp3 does not support a baseline at all
Correct answer: .
gp3 decouples baseline performance from volume size: every gp3 volume gets 3,000 IOPS and 125 MiB/s included at no extra charge regardless of how large it is, and additional IOPS (up to 16,000) and throughput (up to 1,000 MiB/s) can be provisioned independently for extra cost. gp2, by contrast, still ties baseline IOPS to volume size at a rate of 3 IOPS per GiB, with smaller volumes able to burst above that baseline using burst credits up to a ceiling of 3,000 IOPS. The option describing gp2 as offering a fixed 3,000-IOPS/125-MiB/s baseline regardless of size assigns gp3's own signature decoupled-from-size design to the wrong volume type. The option claiming both types scale baseline performance with size ignores gp3's explicit, size-independent baseline entirely. The option describing gp2 as offering a fixed 16,000-IOPS baseline invents a figure that doesn't match gp2's actual size-scaled formula, and gp3 clearly does support a baseline, contradicting the claim that it has none.
Source: AWS EBS documentation: Amazon EBS volume types — General Purpose SSD (gp3 vs gp2) baseline performance
AWS SAA-C03 · EC2 & Compute · Card 026/038medium
A team runs a mission-critical database and wants to maximize the underlying EBS volume's durability without switching to an entirely different storage architecture. They are choosing between io1 and io2 Provisioned IOPS SSD volumes. Which option is correct?
Aio2, because it is designed for 99.999% annual durability, versus io1's 99.8%-99.9%, while offering the same Provisioned IOPS SSD architecture
Bio1, because it supports a higher maximum IOPS ceiling than io2 in every AWS Region
Cgp3, because General Purpose SSD volumes now match Provisioned IOPS SSD durability at a lower cost
Dst1, because Throughput Optimized HDD volumes are rated for the same 99.999% durability as io2 at a fraction of the price
Correct answer: .
io2 volumes are designed for 99.999% durability (an annual failure rate of about 0.001%), a full order of magnitude better than io1's 99.8%-99.9% durability (0.1%-0.2% annual failure rate), while both remain the same Provisioned IOPS SSD category built for sustained, low-latency, high-IOPS workloads like mission-critical databases, so io2 is the volume type suited to maximizing durability without changing architecture. The option favoring io1 for its IOPS ceiling gets the comparison backwards: io2 supports a higher maximum IOPS ceiling than io1 where it's available, not the reverse, and IOPS ceiling isn't the durability question being asked anyway. The option claiming gp3 now matches Provisioned IOPS SSD durability is incorrect: gp3, like gp2, remains rated at 99.8%-99.9% durability, the same tier as io1, not io2's 99.999%. The option proposing st1 is wrong on two counts: Throughput Optimized HDD is rated at 99.8%-99.9% durability, not 99.999%, and it is designed for large sequential throughput workloads such as big data and log processing, not low-latency transactional database access.
An engineer wants the lowest-cost EBS volume for the root/boot volume of a new EC2 instance and is considering Cold HDD (sc1) to save money. What should they know before choosing it?
Asc1 is fully supported as a boot volume and is actually the recommended choice for minimizing boot volume cost
Bsc1 can be used as a boot volume only if the instance is launched from an instance-store-backed AMI
Csc1 can be used as a boot volume only after Fast Snapshot Restore is enabled on the underlying snapshot
Dsc1 (Cold HDD), like st1 (Throughput Optimized HDD), cannot be used as a boot volume at all; only SSD-backed volume types (gp2, gp3, io1, io2) support that role
Correct answer: .
AWS's HDD-backed volume types, Throughput Optimized HDD (st1) and Cold HDD (sc1), are both explicitly documented as unsupported for use as a boot volume, because they're built for large, sequential throughput workloads like big data, log processing, and infrequently accessed storage rather than the small, random I/O a boot volume needs at startup; only the SSD-backed types, gp2, gp3, io1, and io2, are supported as boot volumes. The option claiming sc1 is fully supported, and even recommended, for boot volumes directly contradicts this restriction. The option conditioning boot-volume support on launching from an instance-store-backed AMI confuses two unrelated concepts: instance-store-backed AMIs don't use EBS root volumes at all, so an sc1 boot volume wouldn't apply to them either. The option suggesting Fast Snapshot Restore unlocks sc1 as a boot volume is wrong because FSR only removes the first-access latency penalty on a volume created from a snapshot; it has no effect on which volume types are eligible to serve as a boot volume.
A team wants to attach a single EBS volume to multiple EC2 instances simultaneously for a clustered application using EBS Multi-Attach. Which statement about Multi-Attach is correct?
AMulti-Attach works with any EBS volume type, including gp3, as long as all instances are in the same Availability Zone
BMulti-Attach enabled io1/io2 volumes can be attached to up to 16 Nitro-based instances, but only within a single Availability Zone, and Multi-Attach does not by itself coordinate concurrent writes, so a standard file system like XFS or EXT4 still needs a cluster-aware layer on top
CMulti-Attach lets instances in different Availability Zones, and even different Regions, share the same volume for cross-Region high availability
DMulti-Attach can only be enabled at instance launch time via the RunInstances API, not afterward
Correct answer: .
EBS Multi-Attach is supported only on Provisioned IOPS SSD volumes (io1 and io2), and an enabled volume can be attached to up to 16 instances built on the Nitro System, but every attached instance must be in the same Availability Zone as the volume; Multi-Attach also doesn't provide its own write-ordering or locking, so ordinary file systems like XFS or EXT4, which assume only one server accesses them at a time, still need a cluster-aware file system layered on top to stay consistent under concurrent writes. The option claiming any volume type, including gp3, supports Multi-Attach is wrong because General Purpose SSD volumes don't support the feature at all. The option describing cross-AZ or cross-Region sharing is wrong because Multi-Attach is explicitly confined to a single Availability Zone; there's no mechanism for instances in different zones or Regions to share one Multi-Attach volume. The option restricting Multi-Attach to being enabled only via RunInstances at launch has it backwards: Multi-Attach specifically cannot be enabled during instance launch through the console or the RunInstances API, and must instead be enabled on the volume itself, separately from any single instance's launch.
Source: AWS EBS documentation: Attach an EBS volume to multiple EC2 instances using Multi-Attach — considerations and limitations
AWS SAA-C03 · EC2 & Compute · Card 029/038easy
A team takes a snapshot of a 500 GiB EBS volume, then a week later takes a second snapshot after only a small fraction of the data has changed. How does the storage behavior of the second snapshot compare to the first?
AThe second snapshot is incremental, storing only the blocks that changed since the first snapshot, so it typically consumes far less storage than a full copy of the volume
BThe second snapshot always duplicates the entire 500 GiB again, regardless of how little data changed
CThe second snapshot only exists as a pointer and consumes no storage at all, since EBS snapshots after the first are always free
DThe second snapshot's size depends entirely on the volume's provisioned IOPS setting, not on how much data changed
Correct answer: .
Amazon EBS snapshots are incremental: the very first snapshot of a volume copies all of the volume's used blocks, but every snapshot taken after that stores only the blocks that have changed since the most recent snapshot, so a snapshot taken after only a small fraction of a 500 GiB volume changed will typically consume only a small amount of additional storage, not another full 500 GiB. The option claiming the second snapshot always duplicates the entire volume ignores this incremental design entirely and would make frequent snapshotting far more expensive than it actually is. The option claiming the second snapshot is entirely free and consumes no storage overstates the benefit: incremental snapshots still store the changed blocks and are billed for that storage, they simply avoid re-storing unchanged data. The option tying snapshot size to the volume's provisioned IOPS confuses a performance setting with a storage-usage question; IOPS provisioning has no bearing on how much data a snapshot needs to store.
A company wants to share a custom AMI, backed by EBS snapshots encrypted with a customer managed KMS key, with a second AWS account so that account can launch instances from it. What must they do?
ASharing the AMI's launch permissions with the second account is sufficient by itself; encryption keys are automatically made available to any account granted launch permissions
BEncrypted AMIs can only ever be shared within the same AWS account; cross-account sharing of an encrypted AMI is not possible under any circumstances
CThe company must switch the AMI's snapshots to use an AWS managed key before cross-account sharing becomes possible, since AWS managed keys support cross-account grants but customer managed keys do not
DThe company must grant the second account launch permissions on the AMI AND update the customer managed KMS key's policy to grant that account the permissions needed to use the key (e.g., Decrypt, CreateGrant), since AWS managed keys cannot be shared across accounts at all
Correct answer: .
Sharing an AMI backed by encrypted snapshots across accounts requires two separate steps: granting the target account launch permissions on the AMI itself, and separately updating the key policy of the customer managed KMS key used to encrypt the underlying snapshots so the target account is granted the permissions it needs (such as Decrypt, CreateGrant, and DescribeKey) to actually use that key when launching instances from the shared AMI; a customer managed key is required for this because AWS managed keys are tied to a single account and can never be shared across accounts. The option claiming launch permissions alone are sufficient ignores that the destination account still has no way to decrypt the underlying snapshot data without explicit key access. The option claiming encrypted AMIs can never be shared across accounts is simply wrong; this is a well-documented, supported workflow, provided the key policy is configured correctly. The option suggesting a switch to an AWS managed key would enable cross-account sharing gets it backwards, since it's the AWS managed key that cannot be shared across accounts, while the customer managed key is exactly what makes controlled cross-account access possible.
Source: AWS Security Blog: How to share encrypted AMIs across accounts to launch encrypted EC2 instances; AWS KMS documentation on cross-account key policy grants
AWS SAA-C03 · EC2 & Compute · Card 031/038medium
An account administrator enables the "Always encrypt new EBS volumes" (EBS encryption by default) setting in a Region, hoping this will secure the account's existing unencrypted volumes and snapshots too. What actually happens?
AThe setting immediately re-encrypts every existing unencrypted volume and snapshot in that Region in the background
BThe setting only applies going forward: newly created volumes and snapshots in that Region are encrypted automatically, but volumes and snapshots that already existed before the setting was enabled remain unencrypted unless the administrator explicitly migrates them
CThe setting applies retroactively to existing volumes but not to existing snapshots
DThe setting has no effect on snapshots at all in any case, only on volumes
Correct answer: .
EBS encryption by default is an account-and-Region-level setting that only changes behavior for resources created after it's turned on: once enabled, every newly created EBS volume and every new snapshot copy in that Region is automatically encrypted, but volumes and snapshots that already existed before the setting was enabled remain exactly as they were, unencrypted, until the administrator takes a separate, explicit action such as creating an encrypted snapshot copy of an existing volume and building a new encrypted volume from it. The option claiming existing resources are automatically re-encrypted in the background describes a retroactive migration this setting does not perform. The option claiming it applies to existing volumes but not existing snapshots invents an inconsistency that doesn't exist: the setting is forward-looking for both resource types equally, exempting neither existing volumes nor existing snapshots. The option claiming the setting never affects snapshots at all is also wrong, since new snapshots created after the setting is enabled are covered by it, just not retroactively for anything that already existed beforehand.
A team frequently launches new volumes from a "golden" snapshot to seed fresh environments, but sees degraded I/O performance on first access to blocks that haven't been touched yet, until the whole volume has been "warmed up". Which feature directly addresses this?
AProvisioned IOPS (io1/io2), since only Provisioned IOPS volumes can be created from a snapshot at all
BEBS Multi-Attach, since spreading reads across multiple attached instances hides the latency
CFast Snapshot Restore (FSR), enabled per snapshot per Availability Zone, which makes a volume created from that snapshot fully initialized immediately, delivering its full provisioned performance from the first I/O instead of lazily pulling unread blocks from Amazon S3 on first access
DEBS encryption by default, since encrypted volumes skip the lazy-loading step entirely
Correct answer: .
Without Fast Snapshot Restore, a volume created from a snapshot lazily loads each block from the snapshot's data in Amazon S3 the first time it's accessed, which causes exactly the first-touch latency penalty this team is seeing until every block has eventually been read at least once; enabling FSR for a specific snapshot in a specific Availability Zone means any volume subsequently created from that snapshot in that zone is fully initialized at creation and delivers all of its provisioned performance immediately, with no lazy-loading period at all. The option proposing Provisioned IOPS volumes is wrong because any of the standard EBS volume types can be created from a snapshot; the choice of io1/io2 versus gp2/gp3 doesn't change whether lazy-loading happens. The option proposing Multi-Attach is unrelated, since Multi-Attach is about sharing one volume across multiple instances, not about eliminating a single volume's first-access latency. The option proposing default encryption is also unrelated: encryption and decryption happen transparently regardless of whether a block has been lazily loaded yet, and enabling encryption by default does nothing to change the lazy-loading behavior itself.
Source: AWS EBS documentation: Amazon EBS fast snapshot restore (FSR)
AWS SAA-C03 · EC2 & Compute · Card 033/038easy
An engineer deregisters an old, unused custom AMI to "clean up" and stop paying for it, but the next month's bill shows storage charges continuing for what turns out to be that AMI's underlying EBS snapshot. What explains this?
AThis must be a billing error, since deregistering an AMI always deletes its underlying snapshots automatically
BDeregistering an AMI only removes the AMI's registration (so it can no longer be used to launch new instances); it does not, by default, delete the EBS snapshots that backed it, so those snapshots keep incurring storage charges until they are deleted separately
CThe snapshot charges will stop automatically within 30 days as AWS's standard grace period for deregistered AMIs expires
DDeregistering an AMI only stops the snapshot charges if the AMI was shared with another account first
Correct answer: .
Deregistering an AMI removes its registration so it can no longer be used to launch new instances, but by default it has no effect on the EBS snapshots that were created to back that AMI (or on any S3 files backing an instance-store-backed AMI); those snapshots continue to exist and continue to incur standard storage charges until someone deletes them separately, which is exactly the surprise this engineer ran into. The option assuming this must be a billing error is wrong because this is expected, documented behavior, not a mistake. The option describing an automatic 30-day grace period invents a mechanism that doesn't exist; there's no time-based automatic snapshot deletion tied to deregistering an AMI. The option tying continued charges to whether the AMI was shared with another account is also wrong: whether snapshot deletion is automatic has nothing to do with sharing status; deleting the snapshot is always a separate, manual step regardless of whether the AMI was ever shared.
Source: AWS EC2 documentation: Deregister an Amazon EC2 AMI — snapshot retention behavior
AWS SAA-C03 · EC2 & Compute · Card 034/038easy
A company copies a custom AMI from us-east-1 to eu-west-1 so it can launch instances there. A few weeks later, they deregister the original AMI in us-east-1 because it's no longer needed. What happens to the copy in eu-west-1?
AThe copied AMI in eu-west-1 is entirely independent, with its own distinct AMI ID; deregistering the original AMI in us-east-1 has no effect on it
BDeregistering the source AMI in us-east-1 automatically deregisters the copy in eu-west-1 too, since copies stay linked to their source
CThe copy in eu-west-1 shares the exact same AMI ID as the original in us-east-1, since AMI IDs are global across Regions
DThe copy cannot be used to launch instances until the original AMI in us-east-1 is deregistered first
Correct answer: .
Copying an AMI to another Region produces an identical but fully independent target AMI with its own distinct AMI ID in that destination Region, and each of its supporting EBS snapshots is likewise copied to its own distinct target snapshot; because the copy is independent, changing or deregistering the source AMI afterward has no effect on the copy, and the reverse is true as well. The option claiming deregistering the source automatically deregisters the copy invents a dependency between source and copy that doesn't exist; once the copy completes, the two are managed entirely separately. The option claiming the copy shares the same AMI ID as the original is wrong because AMI IDs are Region-specific identifiers, not globally unique across Regions, so the copy always receives its own new ID in the destination Region. The option requiring the original to be deregistered before the copy can be used has the relationship backwards; the copy is independently usable as soon as its own status becomes available, regardless of what later happens to the source.
Source: AWS EC2 documentation: Copy an Amazon EC2 AMI — cross-Region copy creates an independent AMI
AWS SAA-C03 · EC2 & Compute · Card 035/038easy
An engineer sees the instance type "m6a.large" in a couple of the fleet's launch templates and wants to decode the name to understand what it commits them to. Which statement correctly decodes it?
A"m6a" tells you only the vCPU count; the "large" suffix determines the instance family
BThe "6" indicates the number of CPU cores, and "a" indicates the AWS Region the instance type is available in
C"m6a" specifies the operating system license included with the instance, and "large" specifies the pricing model (On-Demand vs Reserved)
D"m" identifies the instance family (general purpose), "6" identifies the generation number within that family, and the additional letter "a" indicates a processor variant (AMD-based, in this case), while "large" is the instance size within that type
Correct answer: .
AWS's instance type naming convention encodes several independent pieces of information in a compact string: the leading letter identifies the instance family (for example, "m" for general purpose, "c" for compute optimized, "r" for memory optimized), the following number identifies the generation of that family, and additional letters appended before the size (such as "a" for AMD-based processors, "g" for AWS Graviton/Arm-based processors, or "n" for enhanced networking) describe optional processor or capability variants; the final component after the period, such as "large", specifies the instance's size within that type. This means "m6a.large" is a 6th-generation, general-purpose, AMD-based instance at the "large" size. The option claiming "m6a" only encodes vCPU count and that size determines instance family reverses which part of the name carries which meaning. The option claiming the number encodes core count and the trailing letter encodes a Region confuses generation numbering and processor-variant letters with concepts (exact core counts, Region availability) the instance type name doesn't directly encode at all. The option describing the name as encoding OS licensing and pricing model is wrong because neither of those is part of the instance type string; both are chosen separately at launch time.
A team migrating from very old EC2 instance types to current-generation instance types wonders whether they'll need to pay extra and separately enable "EBS-optimized" to get full EBS performance, the way some very old instance types required. What should they know?
AEBS optimization was deprecated and no longer exists as a feature on current-generation instance types
BEBS optimization must still be explicitly enabled and paid for separately on every instance type, old and new alike
CNearly all current-generation instance types, including all instance types built on the Nitro System, are EBS-optimized by default at no additional charge, unlike some older-generation instance types that required explicitly enabling it (sometimes for an extra fee)
DEBS optimization is now bundled entirely into gp3 pricing, so it depends on volume type rather than instance type
Correct answer: .
EBS-optimized instances provide dedicated bandwidth between an EC2 instance and its attached EBS volumes, separate from the instance's general network traffic, and while some older-generation instance types required explicitly enabling this feature (sometimes at an additional hourly charge), nearly all current-generation instance types, including those built on the Nitro System, are EBS-optimized by default at no extra cost, so this migrating team doesn't need to take any special action to get full EBS performance. The option claiming EBS optimization was deprecated is wrong; the capability is very much still present, it has simply become the default rather than an opt-in extra on modern instance types. The option insisting it must still be explicitly enabled and paid for on every instance type ignores exactly the default-and-free behavior that current-generation types now provide. The option claiming it's bundled into gp3 pricing confuses two independent things: EBS optimization is a property of the EC2 instance's dedicated network bandwidth to EBS, not a property or pricing feature of any particular EBS volume type.
An engineer sets up a CloudWatch alarm to run the built-in "Recover this instance" action on a StatusCheckFailed_System alarm, expecting it to work uniformly across the whole fleet, which includes some instances using local instance store volumes, some using Dedicated Host tenancy, and some bare-metal instance types. What should the engineer expect?
AThe recover action is guaranteed to work identically across all of these instances, since any instance with an EC2 status check can be recovered
BThe recover action is unavailable for instances that use instance store volumes, for instances running with Dedicated Host tenancy, and for bare-metal instance types; only a subset of instance types and configurations support it
CThe recover action only fails for bare-metal instance types; instance store volumes and Dedicated Host tenancy have no effect on eligibility
DThe recover action is unavailable for every instance except those using Dedicated Host tenancy, since that tenancy model is specifically designed to support automated recovery
Correct answer: .
CloudWatch alarm-based recovery for EC2 does not support every instance uniformly: instances that use instance store volumes are ineligible (the recover option is grayed out for them because instance store data can't survive the underlying migration to new hardware that recovery performs), and separately, recovery is not supported for instances running with Dedicated Host tenancy or for bare-metal instance types, since both bypass the standard virtualized recovery path recovery depends on; only a defined subset of instance types and configurations actually support the action. The option claiming uniform support across the whole fleet ignores all three of these documented restrictions. The option claiming only bare-metal instance types are affected understates the restriction, since instance store volumes and Dedicated Host tenancy each independently disqualify an instance too. The option claiming only Dedicated Host tenancy is supported has it backwards: Dedicated Host tenancy is one of the configurations recovery does not support, not the one configuration it's designed around.
Source: AWS EC2 documentation: Recover your instance / Configure CloudWatch action-based recovery — instance store, Dedicated Host, and bare-metal restrictions
AWS SAA-C03 · EC2 & Compute · Card 038/038medium
A company processes highly sensitive customer data (for example, for tokenization) and wants an isolated compute environment carved out of an existing EC2 instance that has no persistent storage, no external network access, and can cryptographically prove to a service like AWS KMS exactly what code it's running before being granted decryption access. Which approach fits?
AA second, network-isolated EC2 instance placed in a private subnet with no internet gateway route
BAn EC2 instance running inside a Dedicated Host, since dedicated tenancy alone guarantees this level of isolation
CAn Auto Scaling group configured with a warm pool, since pooled instances have no active network path until put into service
DAn AWS Nitro Enclave: an isolated virtual machine carved out of CPU and memory from a Nitro-based parent EC2 instance, with no persistent storage and no external network connectivity of its own (communicating with the parent only over a local vsock channel), which can generate a Nitro Hypervisor-signed cryptographic attestation document that AWS KMS can use as a condition for authorizing decryption
Correct answer: .
A Nitro Enclave is purpose-built for exactly this scenario: it's created by partitioning CPU cores and memory from a Nitro-based parent EC2 instance into an isolated virtual machine that has no persistent storage and no external network connectivity of its own, communicating with its parent instance solely over a local vsock channel, and it can produce a cryptographic attestation document, signed by the Nitro Hypervisor, containing measurements of the enclave's code that an external service such as AWS KMS can evaluate as a condition before authorizing a decryption operation. A second, ordinary EC2 instance in a private subnet with no internet route can restrict inbound and outbound internet access, but it still has persistent EBS storage, a full general-purpose OS a compromised process could tamper with, and no built-in mechanism to cryptographically attest its own code integrity to KMS. Dedicated Host tenancy only changes which physical server underlies an instance for licensing or compliance purposes; it says nothing about that instance's storage persistence, network isolation, or ability to attest its code. An Auto Scaling warm pool's pooled instances are simply stopped EC2 instances waiting to be activated; they still have persistent EBS storage and no attestation capability, and the lack of an active network path is only a temporary side effect of being stopped, not a designed security property.