blog-blueprint 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BlueprintTemplate/.editorconfig +17 -0
- package/BlueprintTemplate/.gitlab-ci.yml +34 -0
- package/BlueprintTemplate/DESIGN.txt +37 -0
- package/BlueprintTemplate/README.md +78 -0
- package/BlueprintTemplate/angular.json +101 -0
- package/BlueprintTemplate/gitignore +42 -0
- package/BlueprintTemplate/package.json +58 -0
- package/BlueprintTemplate/public/assets/lessons/aws/aws-overview.md +139 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-aurora-guide.md +181 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-dynamodb-guide.md +139 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-ec2-guide.md +152 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-eventbridge-guide.md +152 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-iam-guide.md +132 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-lambda-guide.md +129 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-rds-guide.md +193 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-s3-guide.md +158 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-sns-guide.md +163 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-sqs-guide.md +173 -0
- package/BlueprintTemplate/public/assets/lessons/core/aws-vpc-guide.md +145 -0
- package/BlueprintTemplate/public/assets/lessons/groups/aws-application-integration-overview.md +194 -0
- package/BlueprintTemplate/public/assets/lessons/groups/aws-compute-architecture-overview.md +187 -0
- package/BlueprintTemplate/public/assets/lessons/groups/aws-database-architecture.md +104 -0
- package/BlueprintTemplate/public/assets/lessons/groups/aws-networking-architecture.md +97 -0
- package/BlueprintTemplate/public/assets/lessons/groups/aws-security-architecture.md +88 -0
- package/BlueprintTemplate/public/assets/lessons/groups/aws-storage-architecture.md +116 -0
- package/BlueprintTemplate/public/assets/lessons/index.json +202 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-caching-strategy.md +61 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-disaster-recovery-strategies.md +117 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-event-driven-architecture.md +77 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-ha-ft-scalability.md +98 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-hybrid-cloud.md +82 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-microservices-vs-monolithic.md +77 -0
- package/BlueprintTemplate/public/assets/lessons/theory/aws-well-architected-framework.md +174 -0
- package/BlueprintTemplate/public/favicon.ico +0 -0
- package/BlueprintTemplate/public/robots.txt +23 -0
- package/BlueprintTemplate/public/sitemap.xml +11 -0
- package/BlueprintTemplate/src/app/app.config.server.ts +12 -0
- package/BlueprintTemplate/src/app/app.config.ts +16 -0
- package/BlueprintTemplate/src/app/app.html +36 -0
- package/BlueprintTemplate/src/app/app.routes.server.ts +8 -0
- package/BlueprintTemplate/src/app/app.routes.ts +11 -0
- package/BlueprintTemplate/src/app/app.scss +71 -0
- package/BlueprintTemplate/src/app/app.ts +50 -0
- package/BlueprintTemplate/src/app/core/models/lesson.model.ts +8 -0
- package/BlueprintTemplate/src/app/core/services/lesson.service.ts +46 -0
- package/BlueprintTemplate/src/app/core/services/seo.service.ts +68 -0
- package/BlueprintTemplate/src/app/features/about/about.html +14 -0
- package/BlueprintTemplate/src/app/features/about/about.scss +4 -0
- package/BlueprintTemplate/src/app/features/about/about.ts +23 -0
- package/BlueprintTemplate/src/app/features/lesson-detail/lesson-detail.html +4 -0
- package/BlueprintTemplate/src/app/features/lesson-detail/lesson-detail.scss +0 -0
- package/BlueprintTemplate/src/app/features/lesson-detail/lesson-detail.ts +55 -0
- package/BlueprintTemplate/src/app/features/lesson-list/lesson-list.html +13 -0
- package/BlueprintTemplate/src/app/features/lesson-list/lesson-list.scss +0 -0
- package/BlueprintTemplate/src/app/features/lesson-list/lesson-list.ts +59 -0
- package/BlueprintTemplate/src/app/shared/facades/event-abstract.facade.ts +18 -0
- package/BlueprintTemplate/src/app/shared/facades/pages.facade.ts +55 -0
- package/BlueprintTemplate/src/app/shared/utils/common.utils.ts +3 -0
- package/BlueprintTemplate/src/index.html +35 -0
- package/BlueprintTemplate/src/main.server.ts.bak +7 -0
- package/BlueprintTemplate/src/main.ts +6 -0
- package/BlueprintTemplate/src/server.ts.bak +68 -0
- package/BlueprintTemplate/src/styles.scss +36 -0
- package/BlueprintTemplate/tsconfig.app.json +17 -0
- package/BlueprintTemplate/tsconfig.json +34 -0
- package/README.md +22 -0
- package/create.js +92 -0
- package/package.json +21 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Chiến lược Disaster Recovery trên AWS: Hướng dẫn toàn diện cho SAA
|
|
2
|
+
|
|
3
|
+
Disaster Recovery (DR) là yếu tố quan trọng trong kiến trúc hệ thống để đảm bảo ứng dụng luôn sẵn sàng và dữ liệu không bị mất khi xảy ra sự cố. AWS cung cấp nhiều mô hình DR khác nhau, từ phương án tiết kiệm chi phí đến phương án full active-active. Bài viết này sẽ phân tích 4 chiến lược DR phổ biến trên AWS.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Backup & Restore
|
|
8
|
+
|
|
9
|
+
**Khái niệm:** Lưu trữ dữ liệu định kỳ để phục hồi thủ công khi sự cố xảy ra. Đây là phương án rẻ nhất nhưng chậm nhất.
|
|
10
|
+
|
|
11
|
+
**AWS Services:** S3, Glacier, RDS Snapshot, EBS Snapshot
|
|
12
|
+
|
|
13
|
+
**RTO:** Cao (phục hồi lâu)
|
|
14
|
+
**RPO:** Trung bình, tùy vào tần suất backup
|
|
15
|
+
**Chi phí:** Thấp nhất
|
|
16
|
+
|
|
17
|
+
**Khi nào dùng:**
|
|
18
|
+
- Ứng dụng không yêu cầu phục hồi nhanh
|
|
19
|
+
- Ưu tiên tiết kiệm chi phí
|
|
20
|
+
|
|
21
|
+
**Cách thực hiện:**
|
|
22
|
+
- Backup định kỳ, phục hồi khi cần
|
|
23
|
+
- Sử dụng S3 Cross-Region nếu muốn DR khác region
|
|
24
|
+
|
|
25
|
+
**Ví dụ trực quan:**
|
|
26
|
+
“Backup & Restore giống như có bản sao dữ liệu trong kho. Khi nhà cháy, bạn quay lại kho để lấy và xây lại nhà từ đầu. Rẻ, dễ làm, nhưng mất thời gian.”
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. Pilot Light
|
|
31
|
+
|
|
32
|
+
**Khái niệm:** Chạy sẵn phần lõi của hệ thống ở region dự phòng. Khi sự cố xảy ra, bật thêm các phần còn lại để khởi động nhanh hơn.
|
|
33
|
+
|
|
34
|
+
**AWS Services:**
|
|
35
|
+
- DynamoDB Global Table hoặc backup
|
|
36
|
+
- S3 replicated data
|
|
37
|
+
- Minimal EC2/ASG, AMI để launch khi DR
|
|
38
|
+
|
|
39
|
+
**RTO:** Khá thấp
|
|
40
|
+
**RPO:** Tốt
|
|
41
|
+
**Chi phí:** Thấp đến trung bình
|
|
42
|
+
|
|
43
|
+
**Khi nào dùng:**
|
|
44
|
+
- Cần phục hồi nhanh hơn Backup & Restore
|
|
45
|
+
- Muốn tiết kiệm chi phí nhưng vẫn có hệ thống chạy sẵn
|
|
46
|
+
|
|
47
|
+
**Cách thực hiện:**
|
|
48
|
+
- DB và message queue chạy sẵn
|
|
49
|
+
- App server chỉ khởi động khi DR xảy ra
|
|
50
|
+
|
|
51
|
+
**Ví dụ trực quan:**
|
|
52
|
+
“Pilot Light giống như để lửa mồi nhỏ trong bếp. Khi cần nấu ăn, bạn chỉ mở to lửa và nấu ngay. Vừa tiết kiệm gas vừa khởi động nhanh.”
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 3. Warm Standby
|
|
57
|
+
|
|
58
|
+
**Khái niệm:** Hệ thống chạy sẵn ở mức tối thiểu tại region dự phòng, failover gần như lập tức khi sự cố.
|
|
59
|
+
|
|
60
|
+
**AWS Services:**
|
|
61
|
+
- RDS read replica hoặc Multi-AZ + cross-region
|
|
62
|
+
- EC2 chạy ở low capacity
|
|
63
|
+
- ASG nhỏ, scale lên khi DR
|
|
64
|
+
|
|
65
|
+
**RTO:** Thấp
|
|
66
|
+
**RPO:** Thấp
|
|
67
|
+
**Chi phí:** Trung bình
|
|
68
|
+
|
|
69
|
+
**Khi nào dùng:**
|
|
70
|
+
- Muốn DR nhanh
|
|
71
|
+
- Không cần full active-active
|
|
72
|
+
|
|
73
|
+
**Cách thực hiện:**
|
|
74
|
+
- Toàn bộ ứng dụng chạy sẵn nhưng ở capacity nhỏ
|
|
75
|
+
- Khi DR xảy ra → route traffic qua region dự phòng → scale lên
|
|
76
|
+
|
|
77
|
+
**Ví dụ trực quan:**
|
|
78
|
+
“Warm Standby giống như quán ăn mở cửa nhưng chỉ để vài bàn. Khi khách đông, bạn mở thêm bàn và phục vụ đầy đủ ngay.”
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 4. Multi-Site / Active–Active
|
|
83
|
+
|
|
84
|
+
**Khái niệm:** Hai region chạy full công suất cùng lúc. Nếu một bên lỗi, traffic tự chuyển ngay lập tức.
|
|
85
|
+
|
|
86
|
+
**AWS Services:**
|
|
87
|
+
- Route 53 latency/geo routing
|
|
88
|
+
- DynamoDB Global Tables
|
|
89
|
+
- Aurora Global Database
|
|
90
|
+
- S3 CRR
|
|
91
|
+
|
|
92
|
+
**RTO:** Gần như 0
|
|
93
|
+
**RPO:** Gần như 0
|
|
94
|
+
**Chi phí:** Cao nhất
|
|
95
|
+
|
|
96
|
+
**Khi nào dùng:**
|
|
97
|
+
- Ứng dụng yêu cầu luôn luôn hoạt động
|
|
98
|
+
- SLAs rất cao
|
|
99
|
+
|
|
100
|
+
**Cách thực hiện:**
|
|
101
|
+
- Deploy toàn bộ hệ thống ở cả 2 region
|
|
102
|
+
- Cả 2 region phục vụ người dùng song song
|
|
103
|
+
- Route 53 điều phối traffic
|
|
104
|
+
|
|
105
|
+
**Ví dụ trực quan:**
|
|
106
|
+
“Multi-Site giống như 2 cửa hàng mở cùng lúc. Nếu 1 cửa đóng, khách vẫn còn cửa bên kia. Rất an toàn nhưng tốn tiền nhất.”
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 5. Bảng so sánh nhanh
|
|
111
|
+
|
|
112
|
+
| Strategy | RTO | RPO | Chi phí | Tốc độ phục hồi | Mô tả trực quan |
|
|
113
|
+
|------------------------|------------|------------|---------------|----------------|-----------------------------------------|
|
|
114
|
+
| Backup & Restore | Cao | Trung bình | Thấp | Chậm | Nhà cháy → xây lại từ bản sao dữ liệu |
|
|
115
|
+
| Pilot Light | Trung bình | Thấp | Thấp–TB | Nhanh vừa | Lửa mồi → bật to là chạy |
|
|
116
|
+
| Warm Standby | Thấp | Thấp | Trung bình | Rất nhanh | Quán mở sẵn vài bàn |
|
|
117
|
+
| Multi-Site Active-Active | Gần như 0 | Gần như 0 | Cao nhất | Nhanh nhất | Hai cửa hàng mở full |
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Kiến trúc Event-Driven trên AWS: Hướng dẫn toàn diện cho SAA
|
|
2
|
+
|
|
3
|
+
Event-Driven Architecture (EDA) là mô hình kiến trúc ứng dụng dựa trên sự kiện, giúp hệ thống **decoupled, scalable và fault-tolerant**. Khi một sự kiện xảy ra, nó được đẩy vào router và các consumer xử lý tương ứng. Bài viết này phân tích chi tiết các thành phần và pattern quan trọng của EDA trên AWS.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Event Producers
|
|
8
|
+
|
|
9
|
+
**Khái niệm:** Là nơi phát sinh sự kiện.
|
|
10
|
+
|
|
11
|
+
**Các dịch vụ AWS:**
|
|
12
|
+
- **Applications:** Backend tạo event khi user hành động, ví dụ: `OrderCreated`, `UserSignedUp`.
|
|
13
|
+
- **Lambda:** Chạy xong publish event lên EventBridge.
|
|
14
|
+
- **IoT Core:** Gửi sensor data (nhiệt độ, GPS…) vào pipeline.
|
|
15
|
+
- **Kinesis (Producer):** App push streaming data như log, clickstream, IoT, metrics.
|
|
16
|
+
|
|
17
|
+
**Mục đích:** Producers tạo thông báo về các hành động, dữ liệu hoặc trạng thái mới trong hệ thống để consumer có thể xử lý.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Event Routers
|
|
22
|
+
|
|
23
|
+
**Khái niệm:** Thành phần trung gian chuyển tiếp sự kiện đến các consumer.
|
|
24
|
+
|
|
25
|
+
**Các dịch vụ AWS:**
|
|
26
|
+
- **EventBridge:** Rule-based routing, lọc event, đổi định dạng, gửi đến target, hỗ trợ SaaS integrations.
|
|
27
|
+
- **SNS (Pub/Sub):** Fan-out, push notifications tới nhiều hệ thống.
|
|
28
|
+
- **Kinesis Data Streams:** Stream data realtime, shard-based high throughput, consumer đọc theo thứ tự trong shard.
|
|
29
|
+
- **SQS:** Queue cho async decoupling, FIFO hoặc Standard, đảm bảo delivery, retry, DLQ.
|
|
30
|
+
|
|
31
|
+
**Mục đích:** Event routers quyết định event sẽ đi đâu, hỗ trợ phân phối, đảm bảo thứ tự và độ bền của dữ liệu.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 3. Event Consumers
|
|
36
|
+
|
|
37
|
+
**Khái niệm:** Nơi xử lý sự kiện.
|
|
38
|
+
|
|
39
|
+
**Các dịch vụ AWS:**
|
|
40
|
+
- **Lambda:** Xử lý event nhỏ, logic nhẹ, auto-scale, zero admin.
|
|
41
|
+
- **Step Functions:** Orchestration nhiều bước, workflow dài.
|
|
42
|
+
- **ECS:** Xử lý event cần nhiều CPU/RAM, batch jobs, ML inference, heavy processing.
|
|
43
|
+
|
|
44
|
+
**Mục đích:** Consumers nhận nhiệm vụ từ producers thông qua router và thực thi logic xử lý, tính toán hoặc cập nhật dữ liệu.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 4. Các Pattern Quan Trọng
|
|
49
|
+
|
|
50
|
+
### Pub/Sub (Publish-Subscribe)
|
|
51
|
+
- SNS và EventBridge dùng mô hình này.
|
|
52
|
+
- Producer không biết consumer là ai, consumer đăng ký nhận event push.
|
|
53
|
+
- Ví dụ: “Giống như đăng ký nhận tin từ fanpage Facebook. Fanpage post bài → ai follow đều nhận.”
|
|
54
|
+
|
|
55
|
+
### Fan-out Pattern
|
|
56
|
+
- Một event → đẩy đến nhiều consumer.
|
|
57
|
+
- Dùng SNS → SQS queues → Lambda/ECS.
|
|
58
|
+
- Giúp tách workflow, tránh coupling.
|
|
59
|
+
- Ví dụ: “Một tin gửi tới nhiều đích cùng lúc.”
|
|
60
|
+
|
|
61
|
+
### FIFO Messaging
|
|
62
|
+
- SQS FIFO hoặc Kinesis giữ thứ tự + exactly-once delivery.
|
|
63
|
+
- Dùng khi thứ tự quan trọng (payment, trading).
|
|
64
|
+
- Ví dụ: “Xếp hàng mua vé, ai tới trước được phục vụ trước.”
|
|
65
|
+
|
|
66
|
+
### Async Decoupling
|
|
67
|
+
- Producers gửi event mà không chờ consumer xử lý.
|
|
68
|
+
- SQS, Kinesis, SNS, EventBridge hỗ trợ.
|
|
69
|
+
- Tăng resilience và khả năng scale.
|
|
70
|
+
- Ví dụ: “Một cái hộp thư, bỏ thư vào → người nhận tới lúc nào cũng được.”
|
|
71
|
+
|
|
72
|
+
### Event vs Message
|
|
73
|
+
- **Event:** Thông báo chuyện đã xảy ra, stateless, không mong đợi trả lời. Ví dụ: `OrderCreated`.
|
|
74
|
+
- **Message:** Nhiệm vụ cần xử lý, gửi trực tiếp đến một consumer. Ví dụ: `ProcessPayment(orderId)`.
|
|
75
|
+
- Điểm phân biệt quan trọng để thiết kế kiến trúc chính xác.
|
|
76
|
+
|
|
77
|
+
---
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# High Availability, Fault Tolerance và Scalability trên AWS: Hướng dẫn toàn diện
|
|
2
|
+
|
|
3
|
+
Trong kiến trúc AWS, ba khái niệm quan trọng là **High Availability (HA)**, **Fault Tolerance (FT)** và **Scalability**. Bài viết này giải thích chi tiết các thành phần, cách triển khai và patterns quan trọng.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. High Availability (HA)
|
|
8
|
+
|
|
9
|
+
**Khái niệm:** Hệ thống luôn hoạt động, dù một Availability Zone (AZ) bị lỗi. Người dùng gần như không nhận ra sự cố.
|
|
10
|
+
|
|
11
|
+
**Các thành phần và cách triển khai:**
|
|
12
|
+
|
|
13
|
+
- **Multi-AZ:**
|
|
14
|
+
- Triển khai tài nguyên trên ít nhất 2 AZ độc lập về điện và mạng.
|
|
15
|
+
- Dùng cho: RDS, EC2, ElastiCache, ALB targets.
|
|
16
|
+
- Lưu ý: Multi-AZ chỉ chống lỗi trong cùng region, không phải multi-region.
|
|
17
|
+
|
|
18
|
+
- **ALB (Application Load Balancer):**
|
|
19
|
+
- Phân phối lưu lượng giữa nhiều EC2 / ECS / Lambda.
|
|
20
|
+
- Health check tự động route về instance khỏe.
|
|
21
|
+
- Hỗ trợ path routing và host routing.
|
|
22
|
+
|
|
23
|
+
- **Aurora Replicas:**
|
|
24
|
+
- Reader Replicas trong cùng region (multi-AZ).
|
|
25
|
+
- Failover tự động < 30s, tách đọc/ghi tăng performance.
|
|
26
|
+
|
|
27
|
+
- **Auto Scaling Group (ASG):**
|
|
28
|
+
- Nếu instance chết → ASG tạo instance mới.
|
|
29
|
+
- Duy trì số lượng EC2 healthy, kết hợp ALB tạo HA hoàn chỉnh.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. Fault Tolerance (FT)
|
|
34
|
+
|
|
35
|
+
**Khái niệm:** Hệ thống vẫn hoạt động ngay cả khi cả region gặp sự cố.
|
|
36
|
+
|
|
37
|
+
**Các thành phần và cách triển khai:**
|
|
38
|
+
|
|
39
|
+
- **Multi-Region Deployment:**
|
|
40
|
+
- Active-active hoặc active-passive.
|
|
41
|
+
- Route 53 routing policy để failover.
|
|
42
|
+
- Dữ liệu replicate giữa regions.
|
|
43
|
+
|
|
44
|
+
- **Global DynamoDB:**
|
|
45
|
+
- Multi-region, multi-master.
|
|
46
|
+
- Ghi và đọc từ bất kỳ region, replicate trong vài ms.
|
|
47
|
+
- Dùng cho ứng dụng global low-latency.
|
|
48
|
+
|
|
49
|
+
- **S3 Cross-Region Replication (CRR):**
|
|
50
|
+
- Tự động replicate object sang region khác.
|
|
51
|
+
- Versioning phải bật, chỉ replicate object mới.
|
|
52
|
+
|
|
53
|
+
- **Route 53 Failover Routing:**
|
|
54
|
+
- Health check, nếu region A chết → chuyển sang B.
|
|
55
|
+
- Dùng cho active-passive hoặc active-active.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. Scalability
|
|
60
|
+
|
|
61
|
+
**Khái niệm:** Khả năng tăng hoặc giảm tài nguyên khi load thay đổi.
|
|
62
|
+
|
|
63
|
+
**Các cách triển khai:**
|
|
64
|
+
|
|
65
|
+
- **Horizontal vs Vertical Scaling:**
|
|
66
|
+
- Vertical (Scale-up): Tăng kích thước server, giới hạn bởi phần cứng.
|
|
67
|
+
- Horizontal (Scale-out): Thêm nhiều instance, không giới hạn, cần app stateless.
|
|
68
|
+
|
|
69
|
+
- **Auto Scaling:**
|
|
70
|
+
- Tăng giảm EC2 theo CPU / request ALB / queue length SQS.
|
|
71
|
+
- Target tracking tốt nhất, step scaling dùng khi cần tùy chỉnh.
|
|
72
|
+
|
|
73
|
+
- **Lambda (Serverless Scaling):**
|
|
74
|
+
- Tự động scale theo request, không cần quản lý server.
|
|
75
|
+
- Hỗ trợ 1000+ concurrent invocations.
|
|
76
|
+
- Provisioned Concurrency nếu cần tốc độ cao.
|
|
77
|
+
|
|
78
|
+
- **Serverless Scaling:**
|
|
79
|
+
- Dịch vụ tự động scale: Lambda, DynamoDB, SQS, SNS, API Gateway, Fargate.
|
|
80
|
+
- Không cần quản lý server, scaling tự động.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 4. AWS Patterns thường gặp
|
|
85
|
+
|
|
86
|
+
- **Stateless Application:**
|
|
87
|
+
- Server không giữ session, session data lưu ở DynamoDB, ElastiCache, S3.
|
|
88
|
+
- Giúp dễ scale-out.
|
|
89
|
+
|
|
90
|
+
- **Loose Coupling:**
|
|
91
|
+
- Dịch vụ không phụ thuộc trực tiếp vào nhau.
|
|
92
|
+
- Dùng SQS, SNS, EventBridge để tránh synchronous coupling.
|
|
93
|
+
|
|
94
|
+
- **Multi-AZ + Multi-Region Architecture:**
|
|
95
|
+
- App tier: Multi-AZ (ASG + ALB).
|
|
96
|
+
- DB tier: Multi-AZ (RDS/Aurora).
|
|
97
|
+
- Multi-region DR: Route 53 failover.
|
|
98
|
+
- Multi-AZ = HA, Multi-region = Fault Tolerance.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Hybrid Cloud trên AWS: VPN, Direct Connect và các patterns kết nối On-Premise
|
|
2
|
+
|
|
3
|
+
Hybrid Cloud là giải pháp kết nối hệ thống **On-Premise** với AWS qua **VPN** hoặc **Direct Connect (DX)**. Hai phương thức này giúp doanh nghiệp vừa tận dụng hạ tầng tại chỗ, vừa mở rộng lên AWS, tối ưu chi phí và hiệu suất.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. VPN (Site-to-Site VPN)
|
|
8
|
+
|
|
9
|
+
**IPSec VPN**
|
|
10
|
+
- Kết nối mã hóa qua Internet.
|
|
11
|
+
- Tạo bằng Virtual Private Gateway (VGW).
|
|
12
|
+
- Sử dụng IPSec Tunnel, thường có 2 tunnel để đảm bảo redundancy.
|
|
13
|
+
|
|
14
|
+
**Site-to-Site VPN**
|
|
15
|
+
- Kết nối router on-prem ↔ AWS.
|
|
16
|
+
- Dễ dựng trong vài phút, giá rẻ.
|
|
17
|
+
- Thích hợp cho PoC, Dev hoặc DR.
|
|
18
|
+
|
|
19
|
+
**Routing**
|
|
20
|
+
- Hỗ trợ static routing hoặc BGP dynamic routing.
|
|
21
|
+
- BGP giúp tự động failover.
|
|
22
|
+
- Có thể kết hợp với Transit Gateway.
|
|
23
|
+
|
|
24
|
+
**Lưu ý:**
|
|
25
|
+
- VPN thường có throughput thấp hơn Direct Connect.
|
|
26
|
+
- Latency biến động, không phù hợp workload lớn hoặc yêu cầu băng thông cao.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. Direct Connect (DX)
|
|
31
|
+
|
|
32
|
+
**Dedicated vs Hosted**
|
|
33
|
+
- **Dedicated DX:** AWS cấp cổng vật lý riêng, tốc độ 1/10/100 Gbps, phù hợp doanh nghiệp lớn.
|
|
34
|
+
- **Hosted DX:** Thuê từ partner, tốc độ 50 Mbps → 10 Gbps, dễ tiếp cận hơn.
|
|
35
|
+
|
|
36
|
+
**DX Gateway**
|
|
37
|
+
- Cho phép kết nối DX với nhiều VPC.
|
|
38
|
+
- Cross-region được phép.
|
|
39
|
+
- Thích hợp khi nhiều VPC cần share cùng DX.
|
|
40
|
+
|
|
41
|
+
**Private VIF vs Public VIF**
|
|
42
|
+
- **Private VIF:** Kết nối on-prem → VPC, dùng để truy cập private subnet, DB, app servers.
|
|
43
|
+
- **Public VIF:** Kết nối on-prem → AWS public services (S3, DynamoDB) mà không đi qua Internet.
|
|
44
|
+
|
|
45
|
+
**Lưu ý:**
|
|
46
|
+
- Direct Connect ổn định, tốc độ cao, thích hợp production traffic.
|
|
47
|
+
- Chi phí cao hơn VPN, setup phức tạp hơn.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 3. VPN + DX Redundancy
|
|
52
|
+
|
|
53
|
+
- **DX primary:** Tốc độ cao, latency ổn định, dùng cho production traffic.
|
|
54
|
+
- **VPN backup:** Failover tự động nhờ BGP, đảm bảo hệ thống hoạt động liên tục khi DX gặp sự cố.
|
|
55
|
+
- Kết hợp DX + VPN giúp vừa nhanh vừa có dự phòng chi phí thấp.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 4. Patterns kết nối On-Premise → AWS
|
|
60
|
+
|
|
61
|
+
**Active Directory Integration**
|
|
62
|
+
- AWS Managed AD hoặc AD Connector.
|
|
63
|
+
- Hybrid identity (on-prem AD ↔ AWS).
|
|
64
|
+
|
|
65
|
+
**Database Migration**
|
|
66
|
+
- DMS + SCT, hỗ trợ replication, CDC.
|
|
67
|
+
- Hỗ trợ migrate Oracle, SQL Server, MySQL, …
|
|
68
|
+
|
|
69
|
+
**VPC ↔ On-Prem Routing**
|
|
70
|
+
- Qua VPN hoặc DX.
|
|
71
|
+
- Sử dụng VGW hoặc Transit Gateway (TGW) cho routing phức tạp, multi-VPC, multi-region.
|
|
72
|
+
|
|
73
|
+
**Common Hybrid Patterns**
|
|
74
|
+
- Web tier trên AWS, DB on-prem.
|
|
75
|
+
- Active-Passive DR.
|
|
76
|
+
- On-prem main workload + AWS burst capacity.
|
|
77
|
+
- Analytics trên AWS (copy data từ on-prem).
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
**Tóm tắt:**
|
|
82
|
+
Hybrid Cloud giúp doanh nghiệp chạy một phần ứng dụng tại on-prem và phần còn lại trên AWS. VPN nhanh, giá rẻ nhưng throughput thấp; Direct Connect tốc độ cao, ổn định; kết hợp DX + VPN cung cấp cả hiệu suất lẫn dự phòng. Các pattern hybrid như database migration, AD integration và routing TGW giúp quản lý môi trường phức tạp dễ dàng.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Microservices vs Monolithic: So sánh kiến trúc ứng dụng và triển khai trên AWS
|
|
2
|
+
|
|
3
|
+
Trong phát triển phần mềm, hai kiến trúc phổ biến là **Monolithic** và **Microservices**. Hiểu rõ ưu nhược điểm và cách triển khai trên AWS giúp bạn xây dựng hệ thống dễ mở rộng, resilient và maintainable.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Microservices
|
|
8
|
+
|
|
9
|
+
### Ưu điểm
|
|
10
|
+
- **Scale riêng từng service:** Chỉ cần scale phần service cần thiết, không scale toàn bộ ứng dụng.
|
|
11
|
+
- **Resilience:** Một service gặp lỗi không làm sập toàn bộ hệ thống.
|
|
12
|
+
- **Deploy độc lập:** Các team có thể deploy riêng rẽ mà không ảnh hưởng các phần khác.
|
|
13
|
+
- **Technology freedom:** Mỗi service có thể dùng công nghệ phù hợp (Java, Node.js, Python…).
|
|
14
|
+
|
|
15
|
+
### Nhược điểm
|
|
16
|
+
- **Networking phức tạp:** Cần service discovery, routing, retries, circuit breaker.
|
|
17
|
+
- **Observability khó:** Cần tracing, logs, metrics tập trung (AWS X-Ray, CloudWatch, OpenTelemetry).
|
|
18
|
+
- **Complexity của hệ thống phân tán:** Data consistency, event ordering, idempotency.
|
|
19
|
+
|
|
20
|
+
### Dịch vụ AWS đi kèm
|
|
21
|
+
- **Lambda:** Serverless microservices, scale tự động.
|
|
22
|
+
- **API Gateway:** Entry point cho microservices, hỗ trợ rate limiting, auth, routing.
|
|
23
|
+
- **ECS / EKS:** Chạy container-based microservices, hỗ trợ service discovery.
|
|
24
|
+
- **EventBridge:** Event-driven microservices, giúp loose coupling.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Monolithic Architecture
|
|
29
|
+
|
|
30
|
+
### Ưu điểm
|
|
31
|
+
- **Đơn giản để bắt đầu:** Một codebase duy nhất, dễ deploy.
|
|
32
|
+
- **Dễ maintain ở giai đoạn đầu:** Dev mới vào hiểu nhanh.
|
|
33
|
+
- **Debug đơn giản:** Tất cả trong cùng một process.
|
|
34
|
+
|
|
35
|
+
### Nhược điểm
|
|
36
|
+
- **Khó scale:** Muốn scale 1 tính năng phải scale toàn app.
|
|
37
|
+
- **Deploy chậm:** Thay đổi 1 dòng code → build và deploy toàn bộ ứng dụng.
|
|
38
|
+
- **Low resilience:** Một lỗi nhỏ có thể làm crash toàn hệ thống.
|
|
39
|
+
|
|
40
|
+
### Dịch vụ AWS đi kèm
|
|
41
|
+
- **EC2:** Chạy nguyên một ứng dụng lớn.
|
|
42
|
+
- **ELB (ALB/NLB):** Load balancer phân phối traffic, scale phía trước.
|
|
43
|
+
- **Auto Scaling Group:** Scale cả ứng dụng, không theo service.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. Anti-Patterns (thường gặp khi triển khai Microservices)
|
|
48
|
+
|
|
49
|
+
- Dùng **chung database** giữa nhiều service → tạo coupling.
|
|
50
|
+
- Tạo **quá nhiều microservices quá sớm** → "distributed monolith", phức tạp hơn monolithic.
|
|
51
|
+
- Không có **observability** → logs không tập trung, khó debug.
|
|
52
|
+
- Không có **API contract** rõ ràng → thay đổi một service ảnh hưởng service khác.
|
|
53
|
+
- Internal services gọi nhau theo chuỗi dài → tạo latency và failure cascade.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 4. Khi nào nên chuyển từ Monolithic sang Microservices
|
|
58
|
+
|
|
59
|
+
**Nên chuyển khi:**
|
|
60
|
+
- Team lớn hơn.
|
|
61
|
+
- Ứng dụng bắt đầu scale không đều.
|
|
62
|
+
- Một phần hệ thống quá nặng.
|
|
63
|
+
- Release chậm và dễ tạo lỗi.
|
|
64
|
+
- Workload tăng và cần resilient hơn.
|
|
65
|
+
|
|
66
|
+
**Không nên chuyển nếu:**
|
|
67
|
+
- Product chưa ổn định.
|
|
68
|
+
- Team nhỏ.
|
|
69
|
+
- Traffic chưa cao.
|
|
70
|
+
- Không có nhu cầu scale độc lập.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
**Tóm tắt:**
|
|
75
|
+
- **Monolithic:** Dễ bắt đầu, debug đơn giản, nhưng khó scale, deploy chậm, low resilience.
|
|
76
|
+
- **Microservices:** Scale linh hoạt, resilient, deploy độc lập, nhưng quản lý phức tạp, networking và observability khó.
|
|
77
|
+
- Lựa chọn kiến trúc phù hợp dựa trên quy mô team, workload và nhu cầu mở rộng.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# AWS Well-Architected Framework: 6 Pillars cho hệ thống Cloud tối ưu
|
|
2
|
+
|
|
3
|
+
AWS Well-Architected Framework giúp xây dựng, triển khai và vận hành các hệ thống Cloud một cách hiệu quả, bảo mật, bền vững và tối ưu chi phí. Framework gồm 6 Pillars chính:
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Operational Excellence (Vận hành hiệu quả)
|
|
8
|
+
|
|
9
|
+
### Nguyên tắc chính
|
|
10
|
+
- Giám sát (Observer) mọi thứ
|
|
11
|
+
- Tự động hóa (Automate)
|
|
12
|
+
- Ghi lại quy trình (Document)
|
|
13
|
+
- Cải tiến liên tục (Continuous improvement)
|
|
14
|
+
|
|
15
|
+
### Best Practices
|
|
16
|
+
- IaC: CloudFormation, CDK
|
|
17
|
+
- Deployment: CI/CD (CodePipeline, CodeDeploy)
|
|
18
|
+
- Monitoring: CloudWatch logs, metrics, alarms
|
|
19
|
+
- Config + Audit: AWS Config, CloudTrail
|
|
20
|
+
- Game days: mô phỏng sự cố để test
|
|
21
|
+
|
|
22
|
+
### Lỗi phổ biến
|
|
23
|
+
- Không log → không biết lỗi ở đâu
|
|
24
|
+
- Cấu hình thủ công thay vì IaC
|
|
25
|
+
- Chỉ monitor health check ELB → thiếu metrics ứng dụng
|
|
26
|
+
- Chạy cron script bằng EC2 thay vì EventBridge
|
|
27
|
+
|
|
28
|
+
### Dịch vụ liên quan
|
|
29
|
+
CloudWatch, CloudTrail, AWS Config, Lambda, Systems Manager, CodePipeline, CodeDeploy
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. Security (Bảo mật)
|
|
34
|
+
|
|
35
|
+
### Nguyên tắc chính
|
|
36
|
+
- Least privilege
|
|
37
|
+
- Encryption everywhere
|
|
38
|
+
- Identity first
|
|
39
|
+
- Detect & respond
|
|
40
|
+
|
|
41
|
+
### Best Practices
|
|
42
|
+
- IAM boundaries, roles, MFA
|
|
43
|
+
- Encryption at rest (KMS) + in transit (TLS)
|
|
44
|
+
- Secrets Manager / Parameter Store
|
|
45
|
+
- Security Groups + NACL
|
|
46
|
+
- GuardDuty, Detective, Security Hub
|
|
47
|
+
|
|
48
|
+
### Lỗi phổ biến
|
|
49
|
+
- Lưu password DB trong EC2 user-data
|
|
50
|
+
- Cho phép inbound 0.0.0.0/0 vào private resources
|
|
51
|
+
- S3 public read/write
|
|
52
|
+
- Không bật versioning
|
|
53
|
+
- Chọn KMS nhưng quên bật key rotation
|
|
54
|
+
|
|
55
|
+
### Dịch vụ liên quan
|
|
56
|
+
IAM, KMS, Secrets Manager, ACM, WAF, Shield, GuardDuty, Inspector, Cognito
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 3. Reliability (Độ tin cậy)
|
|
61
|
+
|
|
62
|
+
### Nguyên tắc chính
|
|
63
|
+
- Fault tolerance
|
|
64
|
+
- Automatic recovery
|
|
65
|
+
- Multi-AZ, Multi-Region
|
|
66
|
+
- Backup, DR, snapshots
|
|
67
|
+
- Test recovery
|
|
68
|
+
|
|
69
|
+
### Best Practices
|
|
70
|
+
- Health checks (ALB, Route 53)
|
|
71
|
+
- Auto Scaling
|
|
72
|
+
- Multi-AZ cho RDS, EC2, ElastiCache
|
|
73
|
+
- S3 cross-region replication
|
|
74
|
+
- RDS snapshots, backup retention
|
|
75
|
+
- SQS để xử lý retry
|
|
76
|
+
|
|
77
|
+
### Lỗi phổ biến
|
|
78
|
+
- Single-point-of-failure (DB 1 AZ, 1 EC2)
|
|
79
|
+
- Tự viết retry logic thay vì dùng SQS/Lambda
|
|
80
|
+
- Không cấu hình Route 53 failover
|
|
81
|
+
- Tắt Multi-AZ để tiết kiệm chi phí
|
|
82
|
+
|
|
83
|
+
### Dịch vụ liên quan
|
|
84
|
+
Auto Scaling, Route 53 health checks, S3 versioning + replication, RDS Multi-AZ, DynamoDB global tables, SQS retry & DLQ
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 4. Performance Efficiency (Hiệu năng)
|
|
89
|
+
|
|
90
|
+
### Nguyên tắc chính
|
|
91
|
+
- Chọn đúng công cụ (Right resource)
|
|
92
|
+
- Serverless first
|
|
93
|
+
- Optimize storage
|
|
94
|
+
- Caching, CDN
|
|
95
|
+
- Parallelization
|
|
96
|
+
|
|
97
|
+
### Best Practices
|
|
98
|
+
- Compute: Lambda, Fargate, EC2 right-sizing
|
|
99
|
+
- Caching: CloudFront, ElastiCache
|
|
100
|
+
- Database: Aurora, DynamoDB
|
|
101
|
+
- Storage: S3, EBS, EFS
|
|
102
|
+
- Auto Scaling (horizontal > vertical scaling)
|
|
103
|
+
|
|
104
|
+
### Lỗi phổ biến
|
|
105
|
+
- Chọn EC2 quá lớn → tốn tiền, không scale được
|
|
106
|
+
- Không dùng caching cho workload đọc nhiều
|
|
107
|
+
- Dùng RDS cho workload NoSQL
|
|
108
|
+
- Chạy batch processing bằng EC2 thay vì Lambda + SQS
|
|
109
|
+
|
|
110
|
+
### Dịch vụ liên quan
|
|
111
|
+
Auto Scaling, CloudFront, DynamoDB, Aurora, Lambda, Fargate, ElastiCache
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 5. Cost Optimization (Tối ưu chi phí)
|
|
116
|
+
|
|
117
|
+
### Nguyên tắc chính
|
|
118
|
+
- Avoid unnecessary resources
|
|
119
|
+
- Pay-per-use
|
|
120
|
+
- Measure and monitor cost
|
|
121
|
+
- Use right sizing
|
|
122
|
+
- Use Spot / Savings Plans
|
|
123
|
+
|
|
124
|
+
### Best Practices
|
|
125
|
+
- EC2 Spot instances
|
|
126
|
+
- Savings Plans / Reserved Instances
|
|
127
|
+
- S3 lifecycle (Infrequent Access, Glacier)
|
|
128
|
+
- Auto Scaling để không chạy dư
|
|
129
|
+
- Lambda (pay-per-request)
|
|
130
|
+
|
|
131
|
+
### Lỗi phổ biến
|
|
132
|
+
- EC2 chạy 24/7 khi không cần
|
|
133
|
+
- Không dùng S3 lifecycle policies
|
|
134
|
+
- Lưu log không giới hạn → CloudWatch cost cao
|
|
135
|
+
- Dùng provisioned capacity thay vì serverless
|
|
136
|
+
|
|
137
|
+
### Dịch vụ liên quan
|
|
138
|
+
AWS Budgets, Cost Explorer, Compute Optimizer, S3 lifecycle, Savings Plans / RI
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 6. Sustainability (Bền vững)
|
|
143
|
+
|
|
144
|
+
### Nguyên tắc chính
|
|
145
|
+
- Optimize resource usage
|
|
146
|
+
- Reduce compute waste
|
|
147
|
+
- Serverless = less idle resources
|
|
148
|
+
- Use efficient architectures
|
|
149
|
+
|
|
150
|
+
### Best Practices
|
|
151
|
+
- Dùng ARM-based Graviton
|
|
152
|
+
- Tối ưu storage (giảm dữ liệu rác)
|
|
153
|
+
- Tối ưu network (gần vùng người dùng)
|
|
154
|
+
- Dùng managed services thay vì tự quản lý server
|
|
155
|
+
|
|
156
|
+
### Lỗi phổ biến
|
|
157
|
+
- Over-provision resources
|
|
158
|
+
- Lưu dữ liệu không cần thiết
|
|
159
|
+
- Chạy workload xa khách hàng → tốn băng thông + năng lượng
|
|
160
|
+
- Dùng instance cũ/family không tối ưu
|
|
161
|
+
|
|
162
|
+
### Dịch vụ liên quan
|
|
163
|
+
Lambda, Fargate, Graviton instances, CloudFront, S3 Intelligent-Tiering
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
**Tóm tắt 6 Pillars của AWS Well-Architected Framework**
|
|
168
|
+
|
|
169
|
+
1. Operational Excellence: Giám sát, tự động hóa, ghi log, CI/CD
|
|
170
|
+
2. Security: Least privilege, encryption, giám sát, cảnh báo
|
|
171
|
+
3. Reliability: Multi-AZ, backup, auto recovery, fault tolerance
|
|
172
|
+
4. Performance Efficiency: Chọn đúng công cụ, caching, scale tự động
|
|
173
|
+
5. Cost Optimization: Right-sizing, Spot, Savings Plans, Auto Scaling
|
|
174
|
+
6. Sustainability: Giảm lãng phí tài nguyên, dùng serverless, tối ưu storage/network
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
User-agent: *
|
|
2
|
+
Allow: /
|
|
3
|
+
|
|
4
|
+
# Allow search engines, disallow AI training
|
|
5
|
+
Content-signal: search=yes, ai-train=no
|
|
6
|
+
|
|
7
|
+
# Block AI training bots
|
|
8
|
+
User-agent: GPTBot
|
|
9
|
+
Disallow: /
|
|
10
|
+
|
|
11
|
+
User-agent: Google-Extended
|
|
12
|
+
Disallow: /
|
|
13
|
+
|
|
14
|
+
User-agent: ClaudeBot
|
|
15
|
+
Disallow: /
|
|
16
|
+
|
|
17
|
+
User-agent: CCBot
|
|
18
|
+
Disallow: /
|
|
19
|
+
|
|
20
|
+
User-agent: Bytespider
|
|
21
|
+
Disallow: /
|
|
22
|
+
|
|
23
|
+
Sitemap: https://awsedu.io.vn/sitemap.xml
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
|
|
2
|
+
import { provideServerRendering, withRoutes } from '@angular/ssr';
|
|
3
|
+
import { appConfig } from './app.config';
|
|
4
|
+
import { serverRoutes } from './app.routes.server';
|
|
5
|
+
|
|
6
|
+
const serverConfig: ApplicationConfig = {
|
|
7
|
+
providers: [
|
|
8
|
+
provideServerRendering(withRoutes(serverRoutes))
|
|
9
|
+
]
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const config = mergeApplicationConfig(appConfig, serverConfig);
|