Giới thiệu
Chào mọi người, mình là Phong - Mentor các lớp AWS tại Cloud Mentor Pro (CMP), Founder hệ thống CloudExam.pro
Sau gần 5 năm làm việc với AWS và đã Mentor cho rất nhiều lớp AWS tại Cloud Mentor Pro, câu hỏi mình thường xuyên nhận được nhất từ các học viên mới là:
Mentor ơi, em chưa biết gì về AWS cả. Em cần chuẩn bị những gì trước khi bắt đầu khóa học?
Câu hỏi rất hợp lý, Vì khóa học tại Cloud Mentor Pro là khóa học Online - tương tác trực tiếp, trong quá trình học nếu có chỗ nào không hiểu có thể raise hand để QA với Mentor. Tuy nhiên nếu như có nhiều kiến thức cơ bản không biết quá cũng ảnh hưởng đến tốc độ tiếp thu cũng như nhịp độ của lớp sẽ chậm lại.
Bài blog này mình viết chủ yếu hướng đến các bạn học viên đã đăng ký khóa học tại CMP để các bạn đọc qua và chuẩn bị trước một vài công cụ, kiến thức để khi bắt đầu vào khóa học sẽ dễ tiếp thu hơn, việc học sẽ thú vị và hiệu quả hơn.
Tuy nhiên ko chỉ các học viên tại CMP mà các bạn khác - những người chuẩn bị tham gia khóa học AWS Solution Architect Associate hoặc Developer Associate cũng có thể đọc như một nguồn tham khảo.
Lưu ý quan trọng: Bài viết này KHÔNG yêu cầu bạn phải master tất cả những gì mình liệt kê. Mục đích là để bạn có overview và hiểu basic concepts, như vậy là đủ để bắt đầu khóa học một cách tự tin. Mình sẽ giải thích các khái niệm theo cách dễ hiểu nhất có thể, kết hợp với ví dụ thực tế.
Trước khi đi vào chi tiết, mình muốn nói rõ là các tools này không bắt buộc phải cài đặt tất cả ngay từ đầu. Tuy nhiên, có sẵn chúng sẽ giúp quá trình học của bạn trơn tru hơn rất nhiều, đặc biệt là khi làm hands-on labs.
VS Code (Visual Studio Code)

Tại sao cần: VS Code là code editor mình dùng hàng ngày, không chỉ cho AWS mà cho cả công việc development nói chung. Nó miễn phí, nhẹ, và có vô số extensions hữu ích.
Kinh nghiệm của mình: Ví dụ như mình dùng VS Code để viết CloudFormation templates, quá nhiều tính năng tuyệt vời như syntax highlighting, auto-complete, và integrated terminal. Và tuyệt vời hơn là bây giờ chúng ta có Claude Code for VS Code giúp code Infrastructure as Code (IaC) trở nên dễ dàng và nhanh chóng.
Extensions mình khuyên dùng cho AWS:
- AWS Toolkit: Connect trực tiếp với AWS account, quản lý Lambda functions, S3 buckets ngay trong VS Code
- CloudFormation Linter: Check lỗi CloudFormation templates trước khi deploy
- YAML: Format và validate YAML files
- Docker: Nếu bạn làm việc với containers
- GitLens: Xem history của Git commits rất trực quan
- Claude Code for VS Code: AI assistant giúp code Infrastructure as Code (IaC) nhanh chóng và hiệu quả
Download: https://code.visualstudio.com/
Git

Tại sao cần: Version control là kỹ năng không thể thiếu trong DevOps và Cloud Engineering. Trong quá trình học AWS, bạn sẽ viết rất nhiều CloudFormation templates, scripts, và configs. Git giúp bạn quản lý changes một cách chuyên nghiệp.
Kinh nghiệm của mình: Mình dùng Github để quản lý gần như toàn bộ code hạ tầng của hệ thống CloudExam.Pro, giúp mình tracking những thay đổi hạ tầng.
Download:
Bonus: Tạo tài khoản GitHub để lưu trữ code của bạn. Mình dùng GitHub để share code cho học viên và backup toàn bộ templates của các dự án.
AWS CLI

Tại sao cần: AWS CLI cho phép bạn tương tác với AWS services từ command line. Nhiều tác vụ sẽ nhanh hơn rất nhiều khi dùng CLI thay vì click chuột trên Console.
Ví dụ thực tế: Để list tất cả S3 buckets, bạn chỉ cần gõ aws s3 ls thay vì phải mở browser, login Console, click vào S3 service...
Lưu ý: Bạn đã setup AWS CLI ở Step 3 rồi. Kiểm tra xem nó đang hoạt động tốt không bằng cách chạy:
Nếu output hiển thị version và danh sách buckets (hoặc empty nếu chưa có bucket nào) thì bạn đã setup đúng rồi.
Download (nếu chưa cài): https://aws.amazon.com/cli/
Tại sao cần: Bạn sẽ làm việc với RDS (Relational Database Service) rất nhiều trong AWS. Cần một tool để connect và query database, tạo tables, insert data, v.v.
Kinh nghiệm của mình: Lúc đầu mình chỉ dùng command line để query MySQL trên RDS, sau này khi dự án lớn hơn, có nhiều tables phức tạp, mình mới thấy cần thiết phải có một GUI tool để visualize schema và relationships.
Các options mình khuyên dùng:
- DBeaver: Miễn phí, support nhiều loại database (MySQL, PostgreSQL, Oracle...), interface thân thiện
- MySQL Workbench: Tốt nếu bạn chỉ làm việc với MySQL
- Beekeeper Studio (mình đang dùng) : Gọn nhẹ, đẹp mắt

Postman hoặc Insomnia

Tại sao cần: Đặc biệt quan trọng cho DVA (Developer Associate). Bạn sẽ cần test API Gateway, Lambda functions, REST APIs. Postman/Insomnia giúp bạn gửi HTTP requests, xem responses, test authentication, v.v.
Ví dụ thực tế: Khi mình làm bài lab về API Gateway + Lambda, mình dùng Postman để test các endpoints với different HTTP methods (GET, POST, PUT, DELETE) và parameters. Rất tiện để debug khi có lỗi.
Download:
Tips: Postman có nhiều features hơn nhưng hơi nặng. Insomnia gọn nhẹ hơn. Mình dùng Postman vì quen rồi.
Docker Desktop (Optional - nhưng mình khuyên nên có)

Tại sao cần: Docker giúp bạn hiểu rõ hơn về containers - một khái niệm cực kỳ quan trọng khi học ECS, ECR, và Fargate trong AWS.
Ví dụ thực tế: Khi làm thực hành về ECS, bạn cần có môi trường docker để thực hiện Build docker image, push lên ECR. (Bạn cũng có thể thực hiện cài đặt docker trên EC2 Linux để thực hiện)
Lưu ý: Docker Desktop khá nặng (chiếm khoảng 2-3GB RAM khi chạy). Nếu máy bạn cấu hình yếu (dưới 8GB RAM) thì có thể skip phần này trong giai đoạn đầu, đợi đến khi học về ECS thì cài cũng được.
Download: https://www.docker.com/products/docker-desktop/
Tại sao cần: Bạn sẽ thường xuyên sử dụng command line để chạy AWS CLI, scripts, SSH vào EC2, troubleshooting, v.v.
Recommendations dựa trên OS:
Windows:
- Mình khuyên dùng WSL2 (Windows Subsystem for Linux). Nó cho phép bạn chạy Linux environment trực tiếp trên Windows, rất hữu ích khi làm việc với EC2 Linux instances.
- Hoặc dùng Git Bash (đi kèm khi cài Git) cho đơn giản hơn
Mac:
Linux:
- Terminal mặc định là hoàn hảo rồi
Phần 2: Kiến thức nền tảng cần nắm
Phần này mình sẽ giới thiệu những kiến thức cơ bản nhất mà bạn nên biết. Nhớ là không cần học sâu, chỉ cần hiểu concept là được.
Mình sẽ cố gắng giải thích bằng ngôn ngữ đời thường, tránh thuật ngữ quá kỹ thuật. Nếu có phần nào chưa rõ, bạn cứ note lại và tìm hiểu thêm sau.
Networking Fundamentals
IP Address và CIDR
IP Address giống như địa chỉ nhà của bạn vậy. Mỗi thiết bị trên mạng cần một địa chỉ duy nhất để các thiết bị khác có thể tìm thấy và gửi data đến.
Các khái niệm cơ bản:
IPv4: Gồm 4 số (mỗi số từ 0-255) ngăn cách bởi dấu chấm. Ví dụ: 192.168.1.100
Public IP vs Private IP:
- Public IP: Địa chỉ duy nhất trên Internet. Giống như địa chỉ nhà bạn phải unique trong cả thành phố vậy. Ví dụ:
13.250.100.50 - Private IP: Dùng trong mạng nội bộ (như VPC trong AWS). Giống như số phòng trong một tòa nhà, có thể trùng nhau ở các tòa nhà khác nhau. Ví dụ:
192.168.1.10
Private IP ranges phổ biến (cần nhớ):
10.0.0.0/8 (từ 10.0.0.0 đến 10.255.255.255)172.16.0.0/12 (từ 172.16.0.0 đến 172.31.255.255)192.168.0.0/16 (từ 192.168.0.0 đến 192.168.255.255)
CIDR (Classless Inter-Domain Routing): Cách biểu diễn một dải IP addresses.
Ví dụ dễ hiểu:
10.0.0.0/16
↓
Nghĩa là: "Tất cả IP từ 10.0.0.0 đến 10.0.255.255"
Tổng số IP: 65,536 addresses
10.0.1.0/24
↓
Nghĩa là: "Tất cả IP từ 10.0.1.0 đến 10.0.1.255"
Tổng số IP: 256 addresses
Con số sau dấu "/" nghĩa là gì?
- /16 = 16 bits cố định (2 số đầu), 16 bits linh hoạt → 2^16 = 65,536 IPs
- /24 = 24 bits cố định (3 số đầu), 8 bits linh hoạt → 2^8 = 256 IPs
- /32 = 32 bits cố định → Chỉ 1 IP duy nhất
Tại sao quan trọng trong AWS: Khi tạo VPC (Virtual Private Cloud), bạn phải chọn CIDR block. Ví dụ VPC với CIDR 10.0.0.0/16, bạn có thể tạo nhiều subnets bên trong như 10.0.1.0/24, 10.0.2.0/24, v.v.
Ví dụ thực tế từ CloudExam.pro: VPC của mình dùng CIDR 10.1.0.0/16, được thiết kế với Multi-AZ architecture, trong đó có:
Public Subnets (cho resources cần Internet access):
- Public subnet 1:
10.1.1.0/24 (AZ-a) - cho Load Balancers - Public subnet 2:
10.1.2.0/24 (AZ-c) - cho Load Balancers
Private App Subnets (cho application servers):
- Private App subnet 1:
10.1.11.0/24 (AZ-a) - cho ECS Tasks, Lambda - Private App subnet 2:
10.1.12.0/24 (AZ-c) - cho ECS Tasks, Lambda
Private DB Subnets (cho databases):
- Private DB subnet 1:
10.1.21.0/24 (AZ-a) - cho RDS primary - Private DB subnet 2:
10.1.22.0/24 (AZ-c) - cho RDS standby
Thiết kế này đảm bảo:
- High Availability: Resources được deploy trên 2 AZs (AZ-a và AZ-c)
- Security: Database hoàn toàn isolated trong Private DB subnets, không thể access trực tiếp từ Internet
- Scalability: Mỗi layer (Public, App, DB) có subnet riêng, dễ dàng scale và quản lý

Đây là kiến thức nâng cao có thể bạn sẽ chưa hiểu được, cứ đọc qua thôi nhé, mình sẽ giải thích rất kỹ trong khóa học.
TCP vs UDP
Đây là hai giao thức truyền dữ liệu chính trong mạng. Hiểu đơn giản:
TCP (Transmission Control Protocol):
- Giống như gửi thư bảo đảm: Đảm bảo dữ liệu đến đích, đúng thứ tự, không bị mất
- Chậm hơn UDP nhưng đáng tin cậy
- Dùng cho: HTTP/HTTPS (web browsing), SSH (remote access), Email, File transfer
- Port thường gặp: 80 (HTTP), 443 (HTTPS), 22 (SSH), 3306 (MySQL)
UDP (User Datagram Protocol):
- Giống như gửi bưu thiếp thường: Gửi đi không cần biết có đến đích không
- Nhanh hơn TCP
- Dùng cho: DNS, Video streaming, Gaming, VoIP
- Port thường gặp: 53 (DNS)
Tại sao quan trọng trong AWS: Khi config Security Groups và Network ACLs, bạn cần chọn protocol (TCP/UDP) và port range.
Ví dụ Security Group rule:
Type: HTTP
Protocol: TCP
Port: 80
Source: 0.0.0.0/0 (cho phép từ mọi nơi trên Internet)

DNS (Domain Name System)
DNS giống như "danh bạ điện thoại của Internet" - chuyển đổi tên domain (dễ nhớ) thành IP addresses (máy tính hiểu).
Flow cơ bản:
1. Bạn gõ: https://cloudexam.pro
2. Browser hỏi DNS: "cloudexam.pro là IP nào?"
3. DNS trả về: "13.250.100.50"
4. Browser connect đến IP 13.250.100.50
DNS Record types bạn cần biết:
- A Record: Trỏ domain → IPv4 address
- Ví dụ:
cloudexam.pro → 13.250.100.50
- CNAME: Alias từ domain này sang domain khác
- MX Record: Mail server records
- TXT Record: Text records (dùng cho verification, security)
Tại sao quan trọng trong AWS: Route 53 là DNS service của AWS. Bạn sẽ dùng nó để:
- Trỏ domain về Load Balancer
- Setup health checks
- Failover routing khi có sự cố
HTTP/HTTPS
HTTP (HyperText Transfer Protocol): Protocol để truyền data trên web. Đơn giản là cách browser và server nói chuyện với nhau.
HTTPS: HTTP + SSL/TLS encryption (bảo mật)
- Dữ liệu được mã hóa khi truyền
- Có biểu tượng khóa trên browser
- Bắt buộc cho websites hiện đại
HTTP Methods bạn cần nhớ:
GET - Lấy dữ liệu (read)
POST - Tạo mới resource (create)
PUT - Update toàn bộ resource (update all)
PATCH - Update một phần resource (update partial)
DELETE - Xoá resource (delete)
HTTP Status Codes thường gặp:
2xx - Success (thành công)
200 OK - Request thành công
201 Created - Resource được tạo thành công
204 No Content - Thành công nhưng không trả về data
3xx - Redirect (chuyển hướng)
301 Moved Permanently - URL đã chuyển vĩnh viễn
302 Found - Temporary redirect
4xx - Client Error (lỗi từ phía client)
400 Bad Request - Request sai format
401 Unauthorized - Chưa đăng nhập
403 Forbidden - Không có quyền truy cập
404 Not Found - Không tìm thấy resource
5xx - Server Error (lỗi từ phía server)
500 Internal Server Error - Lỗi server không xác định
502 Bad Gateway - Gateway/proxy lỗi
503 Service Unavailable - Service đang quá tải hoặc maintenance
Tại sao quan trọng trong AWS: API Gateway, Application Load Balancer, CloudFront đều làm việc với HTTP/HTTPS. Khi bạn troubleshoot, hiểu status codes giúp bạn biết lỗi ở đâu.
Security Basics
SSH (Secure Shell)

SSH là protocol để remote access vào servers một cách bảo mật. Đơn giản là cách để bạn "điều khiển từ xa" một máy chủ Linux.
Key concepts:
- SSH Key Pair: Gồm 2 files
- Public key: Đặt trên server (giống như ổ khóa)
- Private key: Giữ bí mật trên máy bạn (giống như chìa khóa)
- Port: Mặc định là 22
Ví dụ thực tế - Connect vào EC2 instance:
ssh -i "my-key.pem" ec2-user@ec2-13-250-100-50.ap-southeast-1.compute.amazonaws.com

Giải thích:
-i "my-key.pem": Dùng private key file my-key.pemec2-user: Username (mặc định cho Amazon Linux)ec2-13-250-100-50...: Public DNS của EC2 instance
Tại sao quan trọng: Đây là cách chính để connect vào EC2 instances (Linux). Bạn sẽ dùng SSH rất nhiều để:
- Cài đặt software trên EC2
- Check logs
- Troubleshoot issues
- Deploy applications
SSL/TLS
SSL (Secure Sockets Layer) và TLS (Transport Layer Security) là protocols để mã hóa dữ liệu khi truyền qua mạng.
Hiểu đơn giản:
- HTTPS = HTTP + SSL/TLS
- SSL certificate chứng minh "website này là thật, không phải giả mạo"
- Mã hóa data giữa browser và server để hacker không thể đọc được
Ví dụ: Khi bạn nhập thông tin thẻ tín dụng trên website mua hàng, SSL/TLS đảm bảo thông tin đó được mã hóa, người khác không thể đánh cắp.
Tại sao quan trọng trong AWS:
- AWS Certificate Manager (ACM) để tạo và quản lý SSL certificates miễn phí
- Dùng cho Load Balancers, CloudFront, API Gateway để enable HTTPS
Database Fundamentals
SQL vs NoSQL
Đây là hai loại database khác nhau về cách tổ chức và lưu trữ dữ liệu.
SQL (Relational Database):
- Dữ liệu được tổ chức trong tables (bảng) với rows (hàng) và columns (cột)
- Giống như Excel spreadsheet
- Schema cố định: Phải định nghĩa trước structure (columns, data types)
- Sử dụng SQL language để query
- Có relationships giữa tables (Foreign Keys)
- ACID compliance: Đảm bảo tính toàn vẹn dữ liệu
Ví dụ SQL table - Users:
| UserID | Name | Email | Age |
|--------|---------------|----------------------|-----|
| 1 | Phong Nguyen | phong@example.com | 28 |
| 2 | An Tran | an@example.com | 25 |
Ví dụ SQL databases: MySQL, PostgreSQL, Oracle, SQL Server
AWS Services: RDS (Relational Database Service), Aurora
NoSQL (Non-Relational Database):
- Flexible schema: Không cần định nghĩa trước structure
- Nhiều types: Key-Value, Document, Graph, Column-family
- Scale ngang (horizontal scaling) dễ dàng hơn
- Thường nhanh hơn cho simple queries
Ví dụ NoSQL document (JSON format):
{
"UserID": "1",
"Name": "Phong Nguyen",
"Email": "phong@example.com",
"Skills": ["AWS", "Docker", "Python"],
"Address": {
"City": "Hanoi",
"Country": "Vietnam"
}
}
Ví dụ NoSQL databases: MongoDB, Cassandra, Redis
AWS Services: DynamoDB, DocumentDB, ElastiCache
Khi nào dùng SQL vs NoSQL?
Dùng SQL khi:
- Cần ACID compliance (ví dụ: banking transactions)
- Dữ liệu có relationships phức tạp
- Cần complex queries với JOINs
- Schema ổn định, ít thay đổi
- Ví dụ: E-commerce order system, Financial systems
Dùng NoSQL khi:
- Cần scale nhanh, xử lý lượng data lớn
- Schema thay đổi thường xuyên
- Simple queries (lookup by key)
- High throughput, low latency
- Ví dụ: Session storage, Gaming leaderboards, IoT sensor data
Kinh nghiệm của mình: Trong hệ thống CloudExam.pro, mình dùng:
- RDS MySQL cho user accounts, course, atempt, history, orders, payment transactions (cần ACID)
Linux Basics
Phần lớn EC2 instances chạy Linux (vì rẻ hơn Windows và performance tốt hơn). Vì vậy bạn cần nắm một số commands cơ bản.
Essential Commands
Dưới đây là các lệnh bạn sẽ dùng thường xuyên nhất:
Navigation (Di chuyển):
pwd
ls
ls -la
cd /path/to/directory
cd ..
cd ~
File operations (Thao tác với files):
cat filename
nano filename
vim filename
cp source dest
mv source dest
rm filename
rm -rf directory
Development Concepts
REST API
REST (Representational State Transfer) là architectural style cho APIs. Đơn giản là "cách thiết kế APIs theo chuẩn".
Key principles:
- Stateless: Mỗi request độc lập, server không lưu state của client
- Client-Server: Tách biệt frontend và backend
- Uniform Interface: Sử dụng HTTP methods chuẩn (GET, POST, PUT, DELETE)
Example REST API endpoints:
GET /api/users # Lấy danh sách tất cả users
GET /api/users/123 # Lấy user có ID 123
POST /api/users # Tạo user mới
PUT /api/users/123 # Update toàn bộ thông tin user 123
PATCH /api/users/123 # Update một phần thông tin user 123
DELETE /api/users/123 # Xóa user 123
Tại sao quan trọng trong AWS:
- API Gateway cho phép bạn tạo RESTful APIs
- Lambda functions thường được trigger qua APIs
- Bạn sẽ làm rất nhiều bài lab về API Gateway + Lambda trong DVA
Ví dụ thực tế từ CloudExam.pro:
GET /api/courses/popular # Lấy danh sách các khóa học phổ biến
GET /api/courses/SAA # Lấy chi tiết khóa SAA
POST /api/course-test/start # Bắt đầu một bài test
POST /api/course-test/submit # Nộp bài test
JSON và YAML
Hai format phổ biến để lưu trữ configuration data.
JSON (JavaScript Object Notation):
{
"name": "Cloud Mentor Pro",
"courses": ["SAA", "DVA", "SOA", "MLA"],
"active": true,
"students": 567,
"pricing": {
"SAA": 500000,
"DVA": 500000
}
}
YAML (YAML Ain't Markup Language):
name: Cloud Mentor Pro
courses:
- SAA
- DVA
- SOA
- MLA
active: true
students: 567
pricing:
SAA: 500000
DVA: 500000
So sánh:
- JSON: Nhiều dấu ngoặc, khó đọc hơn nhưng được support rộng rãi
- YAML: Dễ đọc hơn, ít dấu ngoặc, nhưng nhạy cảm với indentation (khoảng trắng)
Tại sao quan trọng:
- CloudFormation templates có thể viết bằng JSON hoặc YAML (mình prefer YAML vì dễ đọc)
- Docker Compose files dùng YAML
- AWS configs, application configs đều dùng JSON hoặc YAML
CI/CD Concepts (Dành cho DVA)

CI/CD là practice quan trọng trong modern development, đặc biệt với DVA certification.
Continuous Integration (CI)
Là gì: Tự động build và test code mỗi khi có changes được push lên Git repository.
Mục đích: Phát hiện lỗi sớm, đảm bảo code mới không làm hỏng code cũ.
Typical flow:
1. Developer viết code
2. Push code lên Git (GitHub, GitLab, CodeCommit)
3. CI tool (CodeBuild, Jenkins) tự động trigger
4. Run automated tests
5. Build artifact (JAR file, Docker image, ZIP, etc.)
6. Notify developers về kết quả (success/fail)
Ví dụ thực tế: Trong dự án CloudExam.pro, mỗi khi mình push code lên GitHub, GitHub Actions tự động:
- Run unit tests
- Run linting (check code style)
- Build Docker image
- Push image lên ECR (Elastic Container Registry)
Continuous Deployment/Delivery (CD)
Continuous Delivery: Code luôn ở trạng thái ready to deploy, nhưng deploy là manual (cần approval).
Continuous Deployment: Tự động deploy code lên production sau khi pass tất cả tests (không cần approval).
Typical flow:
1. Code passed CI (build + test successful)
2. Deploy to staging environment
3. Run integration tests trên staging
4. Deploy to production
- Continuous Delivery: Cần manual approval
- Continuous Deployment: Tự động deploy
AWS Services cho CI/CD:
- CodeCommit: Git repository (giống GitHub nhưng trên AWS)
- CodeBuild: Build và test code
- CodeDeploy: Deploy application lên EC2, Lambda, ECS
- CodePipeline: Orchestrate toàn bộ CI/CD pipeline
Lưu ý: DVA có rất nhiều câu hỏi về CI/CD pipeline, đặc biệt là CodePipeline + CodeBuild + CodeDeploy.
Infrastructure as Code (IaC)

IaC là gì?
Infrastructure as Code là practice quản lý infrastructure (servers, networks, databases) bằng code files thay vì click chuột trên Console.
Ví dụ: Thay vì manually tạo EC2 instance từ Console, bạn viết một CloudFormation template (YAML/JSON file) mô tả EC2 instance, sau đó deploy template đó.
Benefits:
- Version control: Track changes qua Git, biết ai đã thay đổi gì, khi nào
- Reproducible: Tạo lại infrastructure dễ dàng (deploy lại template là có ngay)
- Consistent: Tránh human errors (quên click một option nào đó)
- Documentation: Code chính là documentation, không cần viết docs riêng
- Collaboration: Nhiều người có thể review, suggest changes qua Git Pull Requests
CloudFormation (AWS native):
Resources:
MyBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: cloudexam-static-assets
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
Terraform (Multi-cloud, rất phổ biến):
resource "aws_s3_bucket" "my_bucket" {
bucket = "cloudexam-static-assets"
tags = {
Name = "CloudExam Assets"
Environment = "Production"
}
}
AWS CDK (Code-based, dùng programming languages như TypeScript, Python):
const bucket = new s3.Bucket(this, 'MyBucket', {
bucketName: 'cloudexam-static-assets',
blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL
});
Other tools: Ansible, Pulumi
Tại sao quan trọng: SAA và DVA đều có nhiều câu hỏi về CloudFormation. Trong công việc thực tế, hầu như company nào cũng dùng IaC.
Kinh nghiệm của mình: Khi mình mới bắt đầu với AWS, mình tạo mọi thứ bằng Console. Khi cần recreate environment cho staging, mình phải nhớ lại tất cả steps và config - mất cả ngày, hoặc phải lưu lại các bước setting trong tài liệu. Sau khi chuyển sang CloudFormation, việc tạo môi trường mới chỉ mất 15-20 phút (deploy template là xong).
Load Balancer

Load Balancer là gì?
Load Balancer là một thiết bị/service phân phối traffic đến nhiều servers.
Mục đích:
- High Availability: Nếu 1 server chết, traffic tự động chuyển sang servers còn lại
- Scalability: Dễ dàng thêm/bớt servers khi cần
- Prevent Overload: Không để 1 server bị quá tải trong khi servers khác nhàn rỗi
Ví dụ đơn giản:
Load Balancer
│
┌────────────────┼────────────────┐
│ │ │
Server 1 Server 2 Server 3
(50 users) (50 users) (50 users)
Nếu không có Load Balancer:
Server 1: 150 users (quá tải, chậm)
Server 2: 0 users (nhàn rỗi)
Server 3: 0 users (nhàn rỗi)
Load Balancer types trong AWS
Application Load Balancer (ALB):
- Layer 7 (HTTP/HTTPS) - Hiểu được nội dung request
- Route dựa trên: URL path, hostname, headers, query parameters
- Best for: Web applications, microservices, APIs
- Support: WebSocket, HTTP/2
Ví dụ routing rules:
ALB nhận request và route như sau:
- /api/* → API Servers (port 3000)
- /images/* → Image Servers (port 8080)
- /* → Web Servers (port 80)
Network Load Balancer (NLB):
- Layer 4 (TCP/UDP) - Chỉ nhìn IP và port, không hiểu HTTP
- Ultra-high performance, low latency (hàng triệu requests/second)
- Static IP support
- Best for: Extreme performance requirements, gaming, IoT
Gateway Load Balancer (GWLB):
- Layer 3 (IP packets)
- Dùng cho third-party virtual appliances (firewall, IDS/IPS)
- Ít gặp trong SAA/DVA
Classic Load Balancer (CLB):
- Legacy, không recommend cho new applications
- AWS đang khuyến khích migrate sang ALB hoặc NLB
Tại sao quan trọng: Load Balancers là component thiết yếu trong mọi high-availability architecture. Bạn sẽ gặp rất nhiều câu hỏi về ALB và NLB trong SAA và DVA.
Ví dụ thực tế từ CloudExam.pro:
Sử dụng Application Load balancer để phân phối traffic đến nhiều docker container phía sau.

Phần 3: Lời khuyên
Sau khi đọc đến đây, có thể bạn đang cảm thấy hơi quá tải với khối lượng kiến thức. Đừng lo, đây là một số tips từ kinh nghiệm của mình:
Đừng cố gắng học tất cả một lúc
Danh sách trên trông dài, nhưng đừng stress. Bạn KHÔNG cần phải master tất cả trước khi bắt đầu khóa học.
Điều quan trọng là:
- Biết những khái niệm này tồn tại
- Hiểu basic concepts ở mức overview
- Biết đi tìm thông tin khi cần (Google, AWS docs, hỏi Mentor)
Kinh nghiệm của mình: Lúc đầu mình cũng không biết CIDR là gì, TCP/UDP, IaC hay Load Balancer là gì. Nhưng qua quá trình học và làm hands-on labs, những khái niệm này dần dần trở nên rõ ràng và "click" trong đầu.
Join cộng đồng
Học một mình rất khó, học cùng cộng đồng sẽ dễ dàng và vui hơn nhiều.
Nơi bạn nên tham gia:
- Cloud Mentor Pro - Membership: Group chỉ dành riêng cho học viên tại CMP, nhiều anh chị đã pass certs, sẵn sàng giúp đỡ.
- Vietnam AWS Exam Prep: Cộng đồng trao đổi liên quan đến học và chi chứng chỉ AWS
- AWS Study Group VN: Cộng đồng chia sẻ kiến thức AWS
- Reddit: r/AWSCertifications, r/aws
Lợi ích:
- Hỏi đáp khi gặp khó khăn
- Chia sẻ kinh nghiệm, tips
- Motivation để tiếp tục học
- Networking với people in the industry
Mindset quan trọng nhất
AWS là một hành trình marathon, không phải sprint. Certification chỉ là khởi đầu, không phải đích đến.
Điều quan trọng là xây dựng được:
- Problem-solving skills: Biết cách approach một vấn đề, tìm solutions
- Hands-on experience: Làm nhiều labs, build side projects
- Best practices awareness: Hiểu cách thiết kế solutions đúng cách, secure và cost-effective
Câu chuyện của mình: Sau khi pass SAA, mình tưởng mình đã biết nhiều về AWS. Nhưng khi bước vào dự án thực tế đầu tiên, mình mới nhận ra còn rất nhiều thứ phải học. Certifications chỉ chứng minh bạn có foundational knowledge, kinh nghiệm thực tế mới là thứ quan trọng nhất.
Vì vậy: Đừng chỉ học để pass exam. Học để hiểu, học để áp dụng vào công việc thực tế.
Kết luận
Vậy là chúng ta đã đi qua một chặng đường dài từ Step 1 đến Step 6.
Bạn đã:
- ✅ Tạo AWS account
- ✅ Setup billing alerts và budgets
- ✅ Config IAM users và groups
- ✅ Setup AWS CLI
- ✅ Tìm hiểu về credits và free tier
- ✅ Chuẩn bị tools và kiến thức nền tảng
Giờ đây, bạn đã sẵn sàng để bước vào chương trình học chính thức. Với tools và kiến thức nền tảng đã được chuẩn bị, mình tin rằng bạn sẽ có một trải nghiệm học tập hiệu quả và thú vị.
Nhớ rằng:
- Không cần biết hết tất cả mới bắt đầu
- Practice nhiều hơn đọc lý thuyết
- Đừng ngại hỏi khi gặp khó khăn
- AWS là marathon, không phải sprint
Next steps:
- Cài đặt các tools cần thiết (VS Code, Git, SQL Client, Postman)
- Đọc lại phần 2 một lần nữa, note lại những concepts chưa rõ
- Có thể xem trước 3-4 Video record các buổi đầu (Đối với các bạn đã đăng ký khóa học tại CMP)
- Chuẩn bị tinh thần để bắt đầu với Section 1 của khóa học
Một lời khuyên cuối: Hãy enjoy the journey! AWS rất thú vị. Mình hy vọng bạn sẽ yêu thích nó như mình đã và đang yêu thích.
Chúc bạn thành công trên con đường chinh phục AWS! 🚀
Hy vọng bài viết này hữu ích cho các bạn sắp bắt đầu hành trình với AWS.
Về tác giả: Mình là Phong - Hiện là Cloud Solutions Architect với hơn 10 năm kinh nghiệm trong lĩnh vực IT phần mềm, trong đó có hơn 5 năm chuyên triển khai các dự án cloud cho khách hàng Nhật Bản. Founder của CloudExam.pro - nền tảng luyện thi AWS Certifications hiệu quả cho người Việt.
🌐 Website: https://cloudexam.pro