- [Morgan] All right, let's wrap up this domain by taking some time to zoom out a little bit, and think about how to design high-performing architectures when working as an AWS solutions architect, and let's review the types of topics you should be reviewing for the exam. There are a few major layers to think about when designing high-performing solutions on AWS. You have the compute layer, the storage layer, the database layer, and the networking layer. There are, of course, other things, like security and authentication, but for now, let's just focus in on these four layers. For compute, it's critically important to remember to match your compute choice with your use case, and not the other way around. This is not only a big part of designing high-performing compute workloads, but it is also important for the exam. You will be presented with scenarios and requirements, and it'll be up to you to make a choice that is the best fit. Now, what qualifies as the best fit can also vary, depending on what you are optimizing for. For example, if you're optimizing for the least amount of operational overhead, you might choose a different service than if you were looking for a solution that requires the least amount of rework for a migration. Consider the scenario: You are architecting a solution for a company to migrate an existing backend web service to AWS. The application is currently running on web servers in an on-premises data center, and the company needs to migrate the application with the least amount of rework to the code as possible. What type of solution would you recommend for this? I would say a lift-and-shift solution to Amazon EC2 would require the least amount of effort. This is because I can choose the same operating system as the web service is currently running on, so little rework would be required. If you compare this to choosing to host this web service with a container service, or with AWS Lambda, doing a lift and shift would require the least amount of rework. In order to make decisions like this, it requires that you have a detailed knowledge about the use cases for each compute service, but also how they work, and how solutions are hosted on them. An application being hosted on AWS Lambda is likely different than an application that is hosted on Amazon EC2. Beyond knowing the differences between the compute services, you should also understand each service's scaling mechanisms, failover mechanisms, and how to set up the solution. You don't need to know the exact API calls for each service, but you should be comfortable knowing the general steps to get a solution up and running. For scaling, knowing how Amazon EC2 Auto Scaling works step by step, and how to troubleshoot it, is important when working with AWS. For other compute services, you should understand cluster scaling for container services, as well as concurrency rates for AWS Lambda. Getting to this level of depth in your understanding of the different compute services will allow you to pick the best fit for the use case provided, both for the exam and in real life. Then, to take it one step further, consider where the compute service you are considering lies within the AWS global infrastructure. Does using the service require the use of an AZ, multiple AZs, or an AWS Region? How could you facilitate communications between applications across AZs or Regions? The answers to these types of questions can change, depending on the service that you're looking at. This also extends beyond compute to the storage and database services, as well. Each service is designed with specific use cases in mind, and using a storage or database service that is written specifically for your use case can simplify the operations needed to run that solution. For storage, oftentimes, the types of data you're storing and the performance requirements will determine what service you choose. So, you should know what services are for block storage, which are for object storage, and which are for file storage. Then, ensure you look into how these services impact performance for reading and writing data, the durability of that data, and how to back up data for each storage service. For example, knowing how to take and manage EBS volume snapshots is an important part of setting up block-storage solutions. Ensure that you are comfortable with this topic. Diving deep into how each storage solution is set up, and how to operate it, will help you make more informed decisions when architecting on AWS. Now, when it comes to databases, you should also know how to offload request to caches, whether you are using read replicas for Amazon RDS, DynamoDB Accelerator for DynamoDB, or Amazon ElastiCache for Redis, or for Memcached. For read replicas, understand which database engines allow for read replicas across Regions or AZs, and know which ones do not. This is the level of detail you should be studying when prepping for this exam. Now, for networking, you should strive to understand networking at the same level of depth that I just described for the other layers. This means understanding the use cases for each networking service or concept, the general steps in setting up and operating the network solutions, and how to mitigate issues by taking advantage of things like a Multi-AZ or multi-Region deployment for failover and disaster recovery. This means really studying how the AWS global infrastructure is set up, and how all of it works together. For example, some services are available at the edge locations, and others are not. You should know the bounds for services from an infrastructure point of view. Networking can be a complicated topic, but you should challenge yourself to understand the basics, as it will not only help you on this exam, but it will also help you understand and design better solutions on AWS in general. This means understanding Amazon Route 53, the different types of records you can create, the different routing methods, and knowing how Regional failover works with Route 53. Then, there's the VPC related features and services, like how to create a VPC, creating subnets, using network access control lists, or security groups, routing tables, and knowing when and how to use the different gateways that you can attach to a VPC for connectivity. Now, speaking of connectivity, knowing the use cases for VPN connections, versus Direct Connect, versus using services like Transit Gateway or VPC peering, is also important. This can help you architect hybrid or multi-account architectures. On the connectivity front, I would also suggest that you understand AWS PrivateLink and VPC endpoints. This can help you select solutions that meet compliance standards, which is another part of architecting on AWS. All right, lots to think about here, and by no means was this video an exhaustive roundup of everything that you should study. However, this should give you an idea of the scope and the depth of services you should be comfortable with. And remember, the AWS documentation is going to be your friend as you're studying. Ensure you are reading up on any services that you are not familiar with, or that you haven't worked with yet.