Apply cloud design patterns to overcome real-world challenges by building scalable, secure, highly available, and cost-effective solutions Key Features Apply AWS Well-Architected Framework concepts to common real-world use cases Understand how to select AWS patterns and architectures that are best suited to your needs Ensure the security and stability of a solution without impacting cost or performance Book Description One of the most popular cloud platforms in the world, Amazon Web Services (AWS) offers hundreds of services with thousands of features to help you build scalable cloud solutions; however, it can be overwhelming to navigate the vast number of services and decide which ones best suit your requirements. Whether you are an application architect, enterprise architect, developer, or operations engineer, this book will take you through AWS architectural patterns and guide you in selecting the most appropriate services for your projects. AWS for Solutions Architects is a comprehensive guide that covers the essential concepts that you need to know for designing well-architected AWS solutions that solve the challenges organizations face daily. You'll get to grips with AWS architectural principles and patterns by implementing best practices and recommended techniques for real-world use cases. The book will show you how to enhance operational efficiency, security, reliability, performance, and cost-effectiveness using real-world examples. By the end of this AWS book, you'll have gained a clear understanding of how to design AWS architectures using the most appropriate services to meet your organization's technological and business requirements. What you will learn Rationalize the selection of AWS as the right cloud provider for your organization Choose the most appropriate service from AWS for a particular use case or project Implement change and operations management Find out the right resource type and size to balance performance and efficiency Discover how to mitigate risk and enforce security, authentication, and authorization Identify common business scenarios and select the right reference architectures for them Who this book is for This book is for application and enterprise architects, developers, and operations engineers who want to become well-versed with AWS architectural patterns, best practices, and advanced techniques to build scalable, secure, highly available, and cost-effective solutions in the cloud. Although existing AWS users will find this book most useful, it will also help potential users understand how leveraging AWS can benefit their organization. Table of Contents Understanding AWS Cloud Principles and Key Characteristics Leveraging the Cloud for Digital Transformation Storage in AWS – Choosing the Right Tool for the Job Harnessing the Power of Cloud Computing Selecting the Right Database Service Amazon Athena – Combining the Simplicity of Files with the Power of SQL AWS Glue – Extracting, Transforming, and Loading Data the Simple Way Best Practices for Application Security, Identity, and Compliance Serverless and Container Patterns Microservice and Event-Driven Architectures Domain Driven Design Data Lake Patterns – Integrating Your Data across the Enterprise Availability, Reliability and Scalability Patterns Hands on Lab and Use Cases Cover Title Page Copyright and Credits Dedication About Packt Contributors Table of Contents Preface Section 1: Exploring AWS Chapter 1: Understanding AWS Cloud Principles and Key Characteristics What is cloud computing? Cloud elasticity Cloud virtualization Definition of the cloud Private versus public clouds What is AWS cloud computing? The market share, influence, and adoption of AWS Basic cloud and AWS terminology Why is cloud computing so popular? Elasticity Security Availability Faster hardware cycles System administration staff The five pillars of a well-architected framework First pillar – security Second pillar – reliability Third pillar – performance efficiency Fourth pillar – cost optimization Fifth pillar – operational excellence Building credibility and getting certified AWS Certified Cloud Practitioner – Foundational AWS Certified Solutions Architect – Associate AWS Certified Developer – Associate AWS Certified SysOps Administrator – Associate AWS Certified Solutions Architect – Professional AWS Certified DevOps Engineer – Professional AWS Certified Advanced Networking – Specialty AWS Certified Security – Specialty AWS Certified Machine Learning – Specialty AWS Certified Alexa Skill Builder – Specialty AWS Certified Database – Specialty AWS Certified Data Analytics – Specialty Learning tips and tricks to obtain AWS certifications Focus on one cloud provider Focus on the Associate-level certifications Get experience wherever you can Some frequently asked questions about the AWS certifications What is the best way to get certified? How long will it take to get certified? What are some last-minute tips for the days of the exam? Summary Chapter 2: Leveraging the Cloud for Digital Transformation Learning about the AWS Global Infrastructure Regions, Availability Zones, and Local Zones Implementing a digital transformation program Cloud migration Migration assessment tools What exactly is a digital transformation? Digital transformation drivers Digital transformation examples Digital transformation tips Digital transformation pitfalls Summary Section 2: AWS Service Offerings and Use Cases Chapter 3: Storage in AWS – Choosing the Right Tool for the Job Understanding Amazon Elastic Block Storage General-purpose Solid State Devices (SSDs) Provisioned IOPS SSD Throughput Optimized HDD Cold HDD Amazon EBS Snapshots Investigating Amazon Elastic File System (EFS) Learning about Amazon Simple Storage Service (S3) S3 Standard Amazon S3 Intelligent-Tiering Amazon S3 Standard-IA Amazon S3 One Zone-IA Amazon S3 Glacier Amazon S3 Glacier Deep Archive Understanding the difference between block storage and object storage Versioning in Amazon S3 Exploring Amazon S3 best practices Enhancing Amazon S3 performance Protecting your data in Amazon S3 Summary Chapter 4: Harnessing the Power of Cloud Computing Brief introduction to cloud computing Comparing PaaS, IaaS, and SaaS Understanding IaaS Advantages of IaaS Disadvantages of IaaS Use cases for IaaS Examples of AWS IaaS services Examples of non-AWS IaaS computing and storage services Understanding PaaS Advantages of PaaS Disadvantages of PaaS PaaS use cases Examples of AWS PaaS services Examples of non-AWS PaaS Understanding SaaS Characteristics of SaaS Advantages of SaaS Disadvantages of SaaS Examples of AWS SaaS solutions Examples of third-party SaaS solutions Selection by use case of SaaS, PaaS, or IaaS Learning about Amazon EC2 EC2 instance types Amazon Machine Images Reviewing Amazon EC2 best practices Security Storage Resource management Limit management Backup, snapshots, and recovery Learning about Amazon storage services S3 Standard S3 Intelligent-Tiering S3 Standard-Infrequent Access S3 One Zone-Infrequent Access S3 Glacier S3 Glacier Deep Archive Summary Chapter 5: Selecting the Right Database Service A brief history of databases Different methods to classify databases Classifying databases by content Classifying databases by usage Classifying databases by transaction data consistency Classifying databases by use case Introducing different types of databases Relational databases Document and key-value databases Wide-column store databases Indexing and search services In-memory databases Graph databases Time-series databases Ledger databases Online Analytics Processing (OLAP) and business intelligence databases Choosing the right tool for the job Summary Chapter 6: Amazon Athena – Combining the Simplicity of Files with the Power of SQL Introduction to Amazon Athena Deep diving into Amazon Athena CSV files JSON files ORC files Apache Avro files Apache Parquet files Understanding how Amazon Athena works Using Amazon Athena Federated Query Data source connectors Learning about Amazon Athena workgroups Reviewing Amazon Athena's APIs Optimizing Amazon Athena Optimization of data partitions Data bucketing File compression File size optimization Columnar data store generation optimization Column selection Predicate pushdown ORDER BY clause optimization Join optimization group by clause optimization Approximate function use Summary Chapter 7: AWS Glue – Extracting, Transforming, and Loading Data the Simple Way Why is AWS Glue a cornerstone service? Introduction to AWS Glue Operating the AWS Glue console Cataloging with AWS Glue Data Catalog Crawling with AWS Glue crawlers Categorizing with AWS Glue classifiers Generating code with AWS Glue code generators AWS Glue serverless streaming ETL Putting it all together AWS Glue best practices Choosing the right worker type Optimizing file splitting Exceeding Yarn's memory overhead allocation Leveraging the Apache Spark UI Processing many small files Data partitioning and predicate pushdown Partitioning data while writing to Amazon S3 Summary Chapter 8: Best Practices for Application Security, Identity, and Compliance Understanding the importance of security, identity, and compliance on AWS Understanding the shared responsibility model Getting familiar with Identity and Access Management Managing resources, permissions, and identities using IAM Users Groups Roles Policies Permissions Learning about other AWS security services AWS Organizations AWS Control Tower Amazon GuardDuty AWS Shield AWS Web Application Firewall AWS Firewall Manager Amazon Cloud Directory Amazon Inspector Amazon Macie AWS Artifact Reports AWS Certificate Manager AWS CloudHSM AWS Directory Service AWS Key Management Service AWS Secrets Manager AWS Single Sign-On AWS Security Hub Summary Section 3: Applying Architectural Patterns and Reference Architectures Chapter 9: Serverless and Container Patterns Understanding containerization Advantages of containers Disadvantages of containers Virtual machines and virtualization Containers versus VMs Learning about Docker Docker components Learning about Kubernetes Kubernetes advantages Amazon Elastic Container Service for Kubernetes (Amazon EKS) Learning about AWS Fargate Learning about AWS Batch AWS Batch components Features of AWS Batch AWS Batch best practices Summary Chapter 10: Microservice and Event-Driven Architectures Understanding microservices Microservice architecture patterns Layered architecture Event-driven architecture Event-driven architecture models Benefits of event-driven architecture No more polling Disadvantages of Event-Driven Architecture Event-driven architectures are not a silver bullet When things go wrong Learning about microkernel architecture Microservices best practices Best practice #1: Decide whether microservices are the right tool Best practice #2: Clearly define the requirements and design of the microservice Best practice #3: Leverage Domain-Driven Design (DDD) to create microservices Best practice #4: Ensure buy-in from all stakeholders Best practice #5: Leverage logging and tracing tools Best practice #6: Think microservices first Best practice #7: Minimize the number of languages and technologies Best practice #8: Leverage RESTful APIs Best practice #9: Implement microservice communication asynchronously Best practice #10: Implement clear separation between microservice frontends and backends Best practice #11: Organize your team around microservices Best practice #12: Provision individual data stores for each individual microservice Best practice #13: Self-documentation and full documentation Best practice #14: Use a DevOps toolset Best practice #15: Invest in monitoring Best practice #16: Two pizzas should be enough to feed your team Best practice #17: Twelve-factor design Summary Chapter 11: Domain-Driven Design Domain-driven design History of domain-driven design Definition of a domain Reasons to use domain-driven design Challenges with domain-driven design Microservices Microservices and serverless technologies Monolithic architecture versus microservices architecture Advantages of microservices DDD and microservices Communication between microservices Microservices in AWS Fundamental services for creating microservices in AWS Microservice examples Using microservices to transform media files Text-to-speech microservice Summary Chapter 12: Data Lake Patterns – Integrating Your Data across the Enterprise Definition of a data lake What is a data lake? Purpose of a data lake Components of a data lake Landing or transient data zone Raw data zone Organized or trusted data zone Curated or refined data zone Sandboxes Characteristics of a data lake Google – the gold standard Data and metadata curation Web content homogeneity Enhancing document relevance based on document relationships Veracity and validity of data Locating documents across the enterprise using faceted search Security Maturity Data lake best practices Machine learning Natural language processing and natural language understanding Entity extraction Security The silo mentality Data governance Relevant metadata Key metrics in a data lake Metrics to gauge the success of your data lake Summary Chapter 13: Availability, Reliability, and Scalability Patterns Availability in cloud computing Reliability in cloud computing Scalability in cloud computing Architectures to provide high availability, reliability, and scalability Active architecture Active/passive architecture Sharding architecture Recovery Point Objective (RPO) and Recovery Time Objective (RTO) RTO RPO Recovery Point Actual and Recovery Time Actual Chaos engineering Scaling in and scaling out versus scaling up and scaling down Scaling up or vertical scaling Scaling out or horizontal scaling Advantages of cloud scalability Availability in AWS Availability for Amazon EC2 instances AWS high availability for Amazon RDS AWS high availability for storage services Amazon Elastic Load Balancing ELB rules Host-based routing Path-based routing Elastic Load Balancer types Classic Load Balancers Application Load Balancers Network Load Balancers CLB versus ALB versus NLB comparison CLB and ALB commonalities The best choice of ELB by use case Summary Section 4: Hands-On Labs Chapter 14: Hands-On Lab and Use Case An introduction to the use cases Reviewing the list of available AWS programming languages Interpretive versus compiled languages Java Python C++ .NET JavaScript Node.js Ruby Go PHP Swagger Deciding which is the best language Understanding the serverless AWS microservice architecture Setting up services AWS Command Line Interface AWS CloudFormation AWS Cloud Development Kit AWS CodeDeploy AWS Config AWS Elastic Beanstalk AWS Service Catalog Learning about frontend user interfaces (UX) Authenticating, authorizing, and managing users AWS Identity and Access Management Grasping CDN concepts Understanding the asynchronous communication service Amazon EventBridge Learning about file uploads Uploading to an AWS service via the AWS console Uploading with signed URLs Uploading files using the File Transfer Protocol Uploading to an AWS service via the CLI Uploading files to AWS via the AWS SDK Uploading files to AWS using REST Uploading files using AWS Snowball Covering the AWS API gateway Reviewing business APIs Business rules engine Understanding state-machine services Exploring backend persistence services Summary Other Books You May Enjoy Index **Apply cloud design patterns to overcome real-world challenges by building scalable, secure, highly available, and cost-effective solutions** * Apply AWS Well-Architected Framework concepts to common real-world use cases * Understand how to select AWS patterns and architectures that are best suited to your needs * Ensure the security and stability of a solution without impacting cost or performance One of the most popular cloud platforms in the world, Amazon Web Services (AWS) offers hundreds of services with thousands of features to help you build scalable cloud solutions; however, it can be overwhelming to navigate the vast number of services and decide which ones best suit your requirements. Whether you are an application architect, enterprise architect, developer, or operations engineer, this book will take you through AWS architectural patterns and guide you in selecting the most appropriate services for your projects. AWS for Solutions Architects is a comprehensive guide that covers the essential concepts that you need to know for designing well-architected AWS solutions that solve the challenges organizations face daily. You'll get to grips with AWS architectural principles and patterns by implementing best practices and recommended techniques for real-world use cases. The book will show you how to enhance operational efficiency, security, reliability, performance, and cost-effectiveness using real-world examples. By the end of this AWS book, you'll have gained a clear understanding of how to design AWS architectures using the most appropriate services to meet your organization's technological and business requirements. * Rationalize the selection of AWS as the right cloud provider for your organization * Choose the most appropriate service from AWS for a particular use case or project * Implement change and operations management * Find out the right resource type and size to balance performance and efficiency * Discover how to mitigate risk and enforce security, authentication, and authorization * Identify common business scenarios and select the right reference architectures for them This book is for application and enterprise architects, developers, and operations engineers who want to become well-versed with AWS architectural patterns, best practices, and advanced techniques to build scalable, secure, highly available, and cost-effective solutions in the cloud. Although existing AWS users will find this book most useful, it will also help potential users understand how leveraging AWS can benefit their organization. 1. Understanding AWS Cloud Principles and Key Characteristics 2. Leveraging the Cloud for Digital Transformation 3. Storage in AWS – Choosing the Right Tool for the Job 4. Harnessing the Power of Cloud Computing 5. Selecting the Right Database Service 6. Amazon Athena – Combining the Simplicity of Files with the Power of SQL 7. AWS Glue – Extracting, Transforming, and Loading Data the Simple Way 8. Best Practices for Application Security, Identity, and Compliance 9. Serverless and Container Patterns 10. Microservice and Event-Driven Architectures 11. Domain Driven Design 12. Data Lake Patterns – Integrating Your Data across the Enterprise 13. Availability, Reliability and Scalability Patterns 14. Hands on Lab and Use Cases Apply cloud design patterns to overcome real-world challenges by building scalable, secure, highly available, and cost-effective solutionsKey FeaturesApply AWS Well-Architected Framework concepts to common real-world use casesUnderstand how to select AWS patterns and architectures that are best suited to your needsEnsure the security and stability of a solution without impacting cost or performanceBook DescriptionOne of the most popular cloud platforms in the world, Amazon Web Services (AWS) offers hundreds of services with thousands of features to help you build scalable cloud solutions; however, it can be overwhelming to navigate the vast number of services and decide which ones best suit your requirements. Whether you are an application architect, enterprise architect, developer, or operations engineer, this book will take you through AWS architectural patterns and guide you in selecting the most appropriate services for your projects. AWS for Solutions Architects is a comprehens ive guide that covers the essential concepts that you need to know for designing well-architected AWS solutions that solve the challenges organizations face daily. You'll get to grips with AWS architectural principles and patterns by implementing best practices and recommended techniques for real-world use cases. The book will show you how to enhance operational efficiency, security, reliability, performance, and cost-effectiveness using real-world examples. By the end of this AWS book, you'll have gained a clear understanding of how to design AWS architectures using the most appropriate services to meet your organization's technological and business requirements.What you will learnRationalize the selection of AWS as the right cloud provider for your organizationChoose the most appropriate service from AWS for a particular use case or projectImplement change and operations managementFind out the right resource type and size to balance performance and efficiencyDiscover how to mitigate ris