Concepts & Projects.
The Placement Groups
• Sometimes twtech wants control over its EC2 Instance with placement strategy.
• That strategy can be defined using placement groups.
• When twtech creates a placement group, twtech may specify
one of the following strategies for the group:
• Cluster strategy: twtech-placement-group-clusters instances have a
low-latency group in a single Availability Zone.
• Spread strategy: twtech-placement-group-spreads instances are spread across underlying hardware (max 7
instances per group per AZ)
• Partition strategy: twtech-placement-group-partition instances are
provision on different partitions (which rely on different sets of Racks) within an AZ. twtech
can scales up to 100s of its EC2 instances per group.
AWS Placement Groups and
how twtech creates them.
let's
break this down simply:
What is an AWS Placement Group?
A
Placement Group in AWS controls how
EC2 instances are placed on underlying hardware for performance
or availability goals. There are three types:
- Cluster
Placement Group:
- Packs
instances close together in a single AZ.
- Best
for high-performance workloads that need low
latency and high network throughput
(like HPC, big data).
- Spread
Placement Group:
- Spreads
instances across different hardware racks.
- Best
for high availability — if hardware fails,
only one instance is affected.
- Partition
Placement Group:
- Divides
instances into partitions, and
each partition is isolated from the others (separate racks).
- Best
for large, distributed systems like
Hadoop, Kafka clusters.
How to Create a Placement Group
Using AWS Console:
- Go to the
EC2 Dashboard.
- In the
left menu, click Placement Groups
under "Instances & Images."
- Click Create
placement group.
- Enter:
- Name
(must be unique within your account).
- Strategy
(Cluster, Spread, or Partition).
- Number
of partitions (only if twtech chooses Partition
strategy).
- Click Create.
Once
created, when you launch an EC2 instance, twtech can select
this Placement Group under Advanced
settings.
Using AWS CLI:
Create
a Cluster placement group, for example:
# bash
aws ec2 create-placement-group
--group-name twtech-cluster-group --strategy cluster
or:
aws ec2 create-placement-group \
--group-name twtech-cluster-group \
--strategy cluster
Or
a Spread placement group:
# bash
aws ec2 create-placement-group
--group-name twtech-spread-group --strategy spread
or:
aws ec2 create-placement-group \
--group-name twtech-spread-group \
--strategy spread
Or
a Partition placement group with 3 partitions:
# bash
aws ec2 create-placement-group
--group-name twtech-partition-group --strategy partition --partition-count 5
or:
aws ec2 create-placement-group \
--group-name twtech-partition-group \
--strategy partition \
--partition-count 5
Benefits or aws placement groups and their risks
Benefits of AWS Placement
Groups
1. Improved Network Performance (Cluster)
- Super low
latency and high throughput because instances are physically close.
- Ideal for
applications like HPC (High Performance Computing), distributed databases,
or big data analytics.
2. Higher Availability (Spread & Partition)
- Spread
and Partition groups isolate instances across racks and hardware.
- If one
server fails, the others continue running, improving fault tolerance.
3. Control Over Infrastructure Layout
- twtech
gets more control over instance placement — which can help with
compliance, performance tuning, and architecture decisions.
4. Scalability for Big Systems (Partition)
- Partition groups allow
twtech to scale large distributed systems across multiple hardware partitions
with minimal impact if a partition fails.
5. Optimized Resource Utilization
- Placement
groups help maximize networking resources and optimize hardware usage,
especially for tightly-coupled applications.
Risks or
Limitations of AWS Placement Groups
1. Instance Type Restrictions (Cluster)
- All
instances must be in the same AZ and often the same instance type or
family to achieve optimal performance.
2. Launch Failures
- In Cluster
groups, if AWS doesn't have enough capacity in the AZ at that time,
instance launches can fail.
- (twtech
might need to retry or use Capacity Reservations.)
3. No Cross-AZ Placement
- Placement
groups are AZ-scoped — twtech can't spread them across multiple AZs
automatically. (Spread across AZs would be a manual architecture
decision.)
4. Harder Scaling in Cluster Groups
- Adding
instances later can be tricky if there’s no more room in the physical
hardware group (you might have to relaunch the group).
5. Cost Implications
- Placement
groups themselves don't cost extra, but the instance
types twtech typically use inside (like C5n, P4d, HPC
instances) are premium-priced.
6. Design Complexity
- Managing
Partition groups (like keeping track of partitions and mapping partitions
to instance groups) adds complexity to system design.
7, Restricts number of instances per group/AZ:
·
max 7 instances per group per AZ
twtech Tip:
- Use
Cluster for high-speed communication
(e.g., ML training, HPC).
- Use
Spread for maximum fault tolerance
(e.g., critical small apps).
- Use
Partition for big distributed systems
(e.g., HDFS, Cassandra, Kafka).
Placement Groups: Cluster
Placement Groups: Cluster strategy
A Placement Group is a way to
control how Amazon EC2 instances are placed on the underlying hardware to meet
specific needs like high availability, low network latency, or high throughput.
There are three types of
placement strategies:
- Cluster
- Spread
- Partition
Cluster Placement Group specifically means:
- Instances are physically close together on the same rack or very nearby racks in a single
Availability Zone.
- Very low network latency and high network throughput between instances.
- Ideal for workloads that need high-performance
computing (HPC) or big data jobs where speed of communication
between servers is critical.
Key points about Cluster:
- All instances must be launched in the same AZ
(Availability Zone).
- Best for applications that benefit from very fast
communication — like distributed databases, ML training, or HPC
applications.
- There’s a higher risk: if the rack fails, all
instances could fail at once (because they’re so close together).
Example AWS CLI to create a Cluster
Placement Group:
# bash
aws ec2 create-placement-group --group-name twtech-cluster-group
--strategy cluster
Then, when launching instances, you
reference that placement group:
# bash
aws ec2 run-instances --image-id ami-12345678 --count 3 --instance-type c5n.18xlarge --placement GroupName=twtech-cluster-group
• Pros: Great network (10
Gbps bandwidth between instances with Enhanced Networking enabled -
recommended)
• Cons: If the AZ fails, all
instances fails at the same time
Use case:
Big Data job that
needs to complete fast
• Application that needs extremely low latency and high
network throughput.
Placement Groups: Spread
Placement Groups: Spread strategy
A Spread Placement Group
means:
- Instances are placed on different racks, with separate power, networking, and hardware.
- Each instance is isolated from the others to reduce
the risk of simultaneous failure.
- Best for high availability and resilience
— if one rack has an issue, only one instance is affected.
Key points about Spread:
- Great for critical applications where you can’t
afford multiple instance failures at the same time.
- You can have up to 7 running instances per
Availability Zone in a single spread group.
- It's more about reliability than about fast
network speed.
- Works across multiple AZs if you want, but
typically it's per AZ.
Example AWS CLI to create a Spread
Placement Group:
# bash
aws ec2 create-placement-group --group-name twtech-spread-group --strategy
spread
When launching instances into it:
# bash
aws ec2 run-instances --image-id ami-12345678 --count 3 --instance-type t3.medium --placement GroupName=twtech-spread-group
Summary - Quick View:
Strategy |
Focus |
Good for |
Cluster |
Performance & Low Latency |
HPC, big data, ML |
Spread |
Fault Tolerance |
Critical apps needing maximum
uptime |
• Pros:
• They can be provisioned across Availability Zones (AZ)
• This spread of instances across AZ , reduced the risk to simultaneous failure.
• EC2 Instances are spread across different physical hardware.
• Cons:
• Limited to 7 instances per AZ per placement group
• Use case:
• Application that needs to maximize high availability
• Critical Applications where each instance must be
isolated from failure from each other.
Placements Groups: Partition
Now about Placement Groups —
Partition strategy:
A Partition Placement Group
is designed for large distributed applications like Hadoop, Kafka,
or Cassandra, where you need many instances but still want to reduce
correlated failures.
How it works:
- Instances are divided into partitions.
- Each partition is isolated from the others — different
racks, different hardware, etc.
- Within a partition, instances may share racks.
- If one partition fails (e.g., power or network issue), only
that partition’s instances are impacted, not the whole group.
Key points about Partition:
- Best for large, scalable, distributed workloads.
- You control how many partitions you want (AWS lets you
pick the number when you create it).
- Supports hundreds of instances (way bigger than
Spread groups).
- Each partition can span different hardware — to
limit failure domains.
Example AWS CLI to create a
Partition Placement Group:
# bash
aws ec2 create-placement-group --group-name twtech-partition-group
--strategy partition --partition-count 3
(Here, you’re asking AWS to make 3
partitions.)
When launching instances:
# bash
aws ec2 run-instances --image-id ami-12345678 --count 6
--instance-type m5.large --placement GroupName=twtech-partition-group
AWS automatically places instances
into partitions, or you can manually specify.
• Up to 7 partitions per AZ
• Provisioned across multiple AZs in the same region
• An AZ can host up to 100 EC2 instances
• The instances in a partition do not share racks with the instances in the other partitions
• A partition failure can affect many EC2 but won’t affect other partitions
• EC2 instances get access to the partition information as metadata
• Use cases:
special for : HDFS, HBase, Cassandra, Kafka
twtech-Summary Table - All Three
Types stategies:
Strategy |
Focus |
Use Case |
Cluster |
Low Latency, High Throughput |
HPC, ML training, Big Data |
Spread |
Max Fault Tolerance |
Critical small apps (<=7
instances) |
Partition |
Isolate failure domains |
Large distributed systems |
twtech Concrete recommendations:
- Kafka brokers:
m5.xlarge,
m5.2xlarge,
i3.xlarge
- HBase Masters/RegionServers: r5.xlarge, r5.2xlarge
- Cassandra nodes:
r6i.xlarge,
r6g.xlarge
- HDFS datanodes:
i3.xlarge,
i3en.xlarge
(if you need super storage throughput)
Important:
When you use a placement group (cluster strategy), AWS tries to put all
the instances close together on the network.
So choosing fast network-enabled instances is critical (at least 10
Gbps networking).
Project:
How
twtech creates Placement Group strategies for its instances
Go to aws ec2 services, and navigate to Placement Groups (under Network & Security)
Click
on Create placement group
Select a strategy
for the placement group: Cluster.
Instances are very close to each
other, with maximum stability and communication.
Name:
twtech-placement-group-cluster
Strategy:
Cluster
Also follow the same approach to create a placement
group with Spread strategy.
This strategy allows instances to be distributed as much
as possible.
Name: twtech-placement-group-spread
Strategy: Spread
Allow the spread level to default: Rack (No
restrictions)
Then,
create a placement group with: Partition Strategy
Name:
twtech-placement-group-partition
Strategy:
Partition
Choose number of partitions between: 1-7
twtech partitions choice for this project: 5
Go to Advanced details and navigate down to, Placement group name:
Select the placement group of
choice from exiting strategies already created or create one.
Launch instance:
Troubleshooting wrong choice of instance: check the list of supported instances below.
The error
"Cluster placement groups
are not supported by the 't2.medium' instance type"
means twtech tried launching a t2.medium EC2 instance inside a placement group with strategy
= cluster, but t2.medium does not support placement groups (especially
"cluster" ones that need low-latency networking).
Solutions:
- Option 1:
Use an instance type that does support cluster placement groups —
like c5, m5, r5, c6g, etc. (Basically, newer, compute-optimized or
network-optimized families.)
- Option 2:
Remove the placement group from the instance launch configuration
if twtech must use t2.medium.
Edit instance configurations:
From: t2.medium
To : c5.large
twtech-insights
* Supported families: C, M, R, P, G, H, I, Inf, D, F, etc.
* Unsupported families: T (like t2.medium, t3.micro, etc.) because they're burstable, and not high-performance
No comments:
Post a Comment