The designing requirements are shown in the following diagram:
Availability, capacity, and performance are key properties that we should consider when preparing for production. When gathering the functional requirements for your cluster, it can help to categorize which requirements imply some consideration of these properties.
It is important to understand that it might not be possible to optimize for all three properties without making some trade-offs. For example, for applications that depend on very high network performance, AWS provides a tool called a cluster placement group. This ensures that the best network performance is available by provisioning the EC2 VMs in such a way that fast network interconnections are available between them (presumably by locating them in close proximity within an AWS data center). By provisioning instances this way...