Are you looking to learn more about AWS
EC2 placement groups? Well, then this video is for you.
Hi, my name is Michael Gibbs and I'm the founder and CEO of Go Cloud Architects,
an organization dedicated towards training cloud architects.
And in today's discussion, we're going to be talking about placement groups.
So, first, let's talk about what are placement groups? Now, placement groups are logical
groupings of your computing instances. And if you group your computing instances together,
in certain cases, you can really improve the performance specifically with regards to
high-performance, very low latency applications. Now, every one of these placement groups has
benefits and detractors. And we're going to talk about that. But what we're really talking about
is building a really high-performance computing cluster with low latency, high packets per second
performance, and high network throughput. So, how do you improve the performance of
applications? And that's exactly what we're going to be doing, high-performance computing workloads.
So let's talk first about the first cluster placement group. And I'll describe what it is.
And then, I'll give you an example in terms of how it works. So, when you're building a
high-performance computing cluster, the closer you can get your computing instances together,
the less latency will be. And even if your instances are spread via 1,000 miles via a 10
gig ethernet connection, you're still dealing with a few things that can cause latency. For example,
you have the speed of light for the fiber optic connection. And even though the light moves
very fast, in fact 186,000 miles a second, there's still time that it takes to cross that connection.
Now, the other things that would be involved in latency would be
the switches and routers that the packets have to traverse
because each one of these things along the way does build some latency, very minimal,
but it still builds some latency. And by reducing the distance and reducing the network connections,
and the cabling, and the switches and routers, you can substantially improve the performance in
a minute way for latency. But why would you do this? And then, we'll talk about what this is.
So, in my past, I designed a lot of high-performance computing system
for financial applications. And when you're designing a financial application,
let's say, you're designing a trading system, if you're purchasing 10,000 shares of a stock
and you have information based on what's going on in the current news,
for which everybody is going to be trying to purchase the stock, if you could purchase that
stock, say, one millisecond faster than the other people, you might get it cheaper. Same thing if
you were trying to sell a stock, if there was some bad news and you could sell one millisecond,
or one nanosecond faster than your competitors, even that would be a competitive advantage. So,
when we're talking about this kind of clustered placement group, we're talking about how do I take
nanoseconds or milliseconds out of the equation? And that's what cluster placement groups are.
So, when you're dealing with a cluster placement group, what you're really dealing with is you're
placing all of your computing instances, in most cases, on the same rack. And then, in some cases,
on this same physical server. And, obviously, it's going to be inside of an availability zone. And
by doing this, you're reducing the latency. So, let's say, you're dealing with a huge computing
instance. And you can put four of your servers, or four of your virtual machines inside of that
same big, big server that you're purchasing. By doing that, you're going to communicate across the
back plane of the server which, in many cases, is going to be faster than the network performance,
especially if you're dealing with a very high-performance server. And not only could
that be faster than the speeds that you would get through, say, a 10 gigabit ethernet connection
it's still going to be on the same back plane, so it's not even going to have to go into the switch,
out of the switch, and back into the same system. So, higher throughput, but also less latency.
Now, if you're going to put all your computing instances in the same rack
and maybe the same server, or maybe two or three servers in the same high-performance switch,
you've got some problems and some benefits. So, for example, if you've got a power failure
for the rack, all of your computing instances are effectively shut down,
you're out of business. I mean, you're completely down. So, when you're going
to build a cluster placement group, if you also have high availability requirements,
you're going to have to build a second customer placement group somewhere else.
So you getting the performance benefits of being in the same rack,
but you're also, could be in the same switch, or you don't might not even traverse the switch at
all if you're in the same server. But if anything were to happen to that server, for example,
or that network switch, or the power your cluster placement group is down. So, absolutely
no redundancy. So, good performance, but you're losing specifically in terms of availability and
redundancy. So, have a good plan, you're going to need to have a second set somewhere else.
So, the next concept is the concept of a partitioned placement group. And
instead of placing all your servers in the same rack, maybe you're going to
move it into two different racks, but still in the same availability zone. So, in many cases,
close to each other in that same availability zone. And the reason you're going to do this is
you're going to have some more redundancy than you would have with a cluster placement group,
but you're still grouping your instances in the same data center. By doing that,
you're [inaudible 00:05:08] really reduce the latency that would be associated with
communicating from data center to data center. So, that's what you're doing.
But this protects you good against a failure that would occur on a rack.
You got a rack power failure, you could have a network switch failure. So, any of those,
or if you're using a physical load balancer, which typically you're not in an AWS environment,
but you might dedicate one computing instance... I mean, one bare metal server
to multiple load balancers. And if that server were to go down, you'd still have challenges. So,
anytime you're dealing with anything in the same rack, you've got problems. So, think of this as
dividing it across racks inside of a data center. So, good performance, but with much less risk
and, obviously, less single points of failure than you'd have in a cluster placement group.
And you can see in this graphic that we've drawn for you, you can see how we've spread
our partitioned placement group across the data center. And so, partitioned,
we're taking the load and placing it in multiple places inside of our data center.
Now, the next concept is a spread placement group. And a spread placement group, really places your
instances across hardware. So, you're going to be on different racks. So, your servers are going to
be different, your PDEs, or power distribution environment's going to be different. So, you're
going to get a lot more protection. And you can spread these groups across multiple availability
zones if you need to. So, this is a place where you can still have high-performance, but now
you've added some redundancy. But with that, now you're going to spread your instances over a
larger distance and more rack and longer distance you're going to have higher latency. So, what are
your needs? But this does give you much higher availability and it's with a reduced cost. But the
side effect is reduced performance. So, the cost is performance. So, you can see in this diagram,
what we've drawn for you, we've set up a spread placement group across racks and across available
zones. So, this is going to put you in a position where you've got much better availability.
So, in summary, you've got a cluster placement group that's basically in the
same rack in a data center. You've got a spread placement group that's across
racks in the data center. And then, you've got a partitioned placement group,
which you can take it between availability zones, or otherwise known as data centers.
So, now, you understand all about cluster placement groups.
Please download our free AWS Certified Solution Architect Associate ebook, the link is in the
description below. And please download our free practice exam, if you're studying for
the AWS Certified Solution Architect or the AWS Certified Solution Architect Professional exam.
And every Monday we offer free 90 minute AWS Certified Solution Architect
mentorship, where you come, you ask us any kind of question you want,
and we'll answer those questions for you live on the call. We do a [inaudible 00:07:57] call. We
do it every Monday and it's completely free. It's a passion project of mine because I remember when
I started studying for certifications many years ago, I could afford books,
but not training. But there were areas for which I just really wish I understood better and could
ask someone questions. So, that's why I built this group. It's a study group that's available
free for all for the Certified Solution Architect Associate and it's every Monday, so please join.
I look forward to seeing you in the next video. And until then, study hard, stay safe.