About AWS Solution Architecture Associate — Part 1
10 years ago, building a system on-premise might still be the major solution. Since we all realized that the software world has already moved to the next stage — hybrid architecture (on-premise & cloud), I tried to get my first cloud certification before my trip to the U.S.
The reason I’m choosing AWS as a target is due to its market share. Although many competitors are striving, AWS still dominates the market in the cloud computing industry.
In this blog, I’m going to record down what I have learned, listing down few materials I used, and show the differences between using AWS and on-premise to establish a software system. Firstly, I would like to recommend the material written by Neal Davis. Even though the section’s topics are diverse, the notes simply summarized the structure of the test which gave me great help. Accordingly, down below I will list out the sections and describe some details that I have been deeply impressed with.
Instances management & Routing
Down below is the related components.
- EC2
- Elastic Load Balancer
Auto Scaling
- EC2
- RDS & Aurora (Database)
Network & Content Delivery
- VPC (Public & Private Subnets)
- NAT Gateway
- Security Group
- Cloud Front (CDN) & API Gateway
File Storage
- EFS, EBS (File System, Block System)
- S3
Data Storage
- RDS, Aurora, and DynamicDB
- ElasticCache
- SQS (Queue)
Security
- IAM (Identity Access Management)
- WAF and Shield (Network Traffic Filter & DDOS Protector)
Notifications
- SNS (Messages can be sent to email, other services, or systems)
Develop Environment
- Serverless (Lambda)
- ECS (Container Env.)
- EKS (Elastic Kubernetes Services)
Hybrid Development (on-premise or Diff. Systems)
- Direct Connect (Combine traffic with on-premise)
- Storage Gateway & FSx (Storages hybrid with on-premise services)
Instances management & Routing
EC2 vs On-premise Machine
While a huge part of the developers already experienced managing virtual machines on the cloud system, it still astonished me how easy to maintain instances and routing path on AWS.
Scalability
Horizontal scalability does save plenty of time!
Keywords — EC2, Image, AMI
During the first year of my career, I had to repeatedly set up machines step by step — installed Ubuntu OS, establishing Nginx routing path for multiple services, and so on. Avoiding repetitions, I tried to write tasks into bash scripts or even went further building Docker containers. In this case, using images technique to duplicate the same EC2 status to solve the problem. For instance, since I have moved to the U.S., I simply set up the same WordPress website from my original instance in Asia.
Related Documents:
1. Creating AMI
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html
Service Management
Diverse hardware, OS system, and pricing options with fast set-up
Basically, for a start-up company, most of the time we were not capable of owning a “sufficient” number of machines. Multiple services might be served on the same machine, using the same file systems and software tools, which would destabilize the services. Accordingly, implementing Docker is a compromise method, since it does virtually separate applications. However, using different machines will be definitely a better choice, so then developers come to open up different specification EC2 instances depend on different types of tasks.
- Machine hardware (CPU, GPU, Storage, Network…)
- Pricing Model for different usage
- On-demand (Temporary services or testings)
- Reserved
- Spot instance (Shortly rent an idle machine with a great deal)
Routing
Port & Path Routing
Keywords — ALB, NLB
While developing in an on-premise environment, Nginx takes care of the major routing by setting up rules that target the ports and path. On the other hand, NLB (Port — TCP, TLS, UDP) and ALB (TCP, SSL, HTTP, HTTPS) does the job. By using the AWS console, it will be absolutely easier when there is a large number of routing rules.
If you're interested in the details, check this medium written Zeeshan Baig by down below:
https://medium.com/datanextsolutions/path-based-routing-in-aws-application-load-balancer-b5a91a79d7f9
Load Balancing
Keywords — Routing, Health Check
Not only responsible for routing network traffic, but also able to apply health checks on target instances.
Related Documents:
1. ELB types
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html
2. ELB health check
https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html