With reference to the AWS architecture, what are the fundament building block when setting up a cloud service?
To deploy services on AWS, we need to take several factors into account which include Reliability, Security, Sustainability, Operational Excellence and Cost Optimization. Below are the key building blocks to consider when deploying any services on AWS infrastructure.
Networking Layer:
1. AWS Virtual Private Cloud (VPC) for isolated network environments.
2. AWS Route 53 for DNS management.
3. AWS Transit Gateway to simplify your network with VPCs & On-Premise networks connected to a single gateway.
4. Elastic Load Balancing (ELB) to distribute traffic between instances.
5. AWS CloudFront for Content Delivery Network (CDN) services.
Compute Layer:
1. AWS EC2 to spin up a Virtual Machine and host your application in a secure and resizable manner.
2. AWS ECS to run containers in a scalable way(host it on EC2 or AWS Fargate).
3. AWS Lambda for serverless computing.
4. AWS EKS to build and run K8s clusters(container orchestration), host it on EC2 or AWS Fargate.
Storage Layer:
1. Amazon Simple Storage Service (S3) for object storage.
2. Amazon Elastic Block Store (EBS) for block storage.
3. Amazon Elastic File System (EFS) for file storage.
Database Layer:
1. AWS Relational Database Service (RDS) for managed relational databases.
2. AWS Elasticache and Redis for In-Memory DB management like caching, session management etc.
3. AWS DynamoDB for NoSQL databases.
4. AWS Redshift for Data Warehousing.
5. AWS Neptune for Graph Database.
Security Layer:
1. AWS Identity and Access Management (IAM) for access control to AWS resources.
2. AWS Security Groups and NaCL to deploy network security across your VPCs and EC2 instances.
3. AWS Shield to safeguard AWS Applications against DDoS attacks.
4. AWS ACM to provision, manage and Deploy TLS/SSL certificates.
5. AWS Firewall Manager to centrally configure & manage firewall rules.
Here is the reference architecture: