AWS : VPC, S3, Route53 Part 3
1. VPC
VPC là gì?? Tại sao nên dùng VPC??
- VPC cho phép người dùng chạy các resource AWS trong mạng ảo do mình tự định nghĩa
- VPC thuộc 1 region và có thể là multiAZ
- Mỗi VPC thì độc lập về mặt logic so với các VPC khác
- Lý do nên dùng VPC:
- Dễ dàng quản lý các resource, bảo mật, có thể tự mình tùy chỉnh các config
- Có thể connect trực tiếp đến internet
- Có thể connect đến internet thông qua NAT khi không muốn kết nối trực tiếp từ instance đến internet
- Có thể connect đến data center của bạn
- Có thể connect đến các VPC khác (VPC Peer-to-peer)
- CÓ thể connect private AWS resource khác: S3, DynamoDB,.. thông qua VPC Endpoint
- Có thể connect private đến các service ở account khác
Các thành phần cơ bản trong VPC
1.Subnet
Subnet là tập hợp range của IP address trong VPC. Người dùng sử dụng AWS resource trong các subnet.
Mỗi subnet trong VPC thì được deploy vào từng AZs riêng biệt (tực là tồn tại một cách độc lập và tách biệt địa lý)
1 Subnet chỉ thuộc 1 AZ
Subnet gồm có
- Public subnet: Resource trong subnet có thể connect internet
- Private subnet Resource trong subnet không thể connect internet
2.Route Table
Route Table là bảng bao gồm các rule quy định luồng traffic trong VPC
Có main route table và custom route tables
3.Internet gateway
Là VPC component giúp cho những resource ở trong VPC có thể connect với internet
4.NAT (Network Address Translation)
Dùng NAT có thể giúp cho instance ở private subnet connect được đến Internet
NAT device sẽ forward traffic từ instances trong private subnet đến Internet và các AWS service khác, và gửi lại response tới instances
Có 2 loại: NAT Gateway và NAT Instance -> AWS recommend dùng NAT Gateway
5.VPC Peering:
Là network connection giữa 2 VPC, cho phép kết nối 2 bên một cách private
VPC Peering có thể kết nối 2VPC khác region, khác account
6.VPC VPN:
Kết nối VPC với remote network, data-center on-premises
7.Security: Security Groups và Network ACLs
- Security Groups:
- Như là Firewall, quy định inbound/outbound traffic
- Stateful: Nếu send 1 request từ instance, thì response của request đó trả về sẽ vẫn nhận được, không quan tâm đến Inbound và ngược lại
- Không có deny
- Network ACLs:
- Là 1 tầng Firewall cho subnet
- Mỗi subnet bắt buộc phải gắn vs 1 network ACLs
- 1 Network ACLs có thể gắn với nhiều subnet nhưng 1 subnet chỉ có thể gắn với 1 Network ACLs tại 1 thời điểm
- Có inbound và outboud, có deny rule
- Stateless: request và response đều phải thông qua inbound và outbound
-> Case 1: VPC đơn giản kết nối Internet
-> Case 2: VPC bao gồm private và public subnet với NAT
2. S3
S3 là gì?
- Là dịch vụ lưu trữ dữ liệu, có thể lưu trữ và truy xuất dữ liệu mọi nơi, mọi lúc
- Lý do nên dùng S3:
- Rẻ: Dùng bao nhiêu trả bấy nhiêu, có thêm options lưu trữ (Glacier)
- Tốc độ truy xuất nhanh, có thể read-after-write
- Đơn giản: có management console, full RESTAPI và SDK
- Ổn định: 99.999999999% durability (standard), 99.99% availability
- Permission: Set quyền truy cập để upload, download data
- File lưu trữ từ 0 Byte -> 5TB
- Là unlimited storage
Data Consistency
- Read-after-write consistency cho PUT new object
- Eventual Consistency cho việc overwrite PUT and DELETE (mất 1 thời gian để xử lý việc truyền thông tin)
Bucket:
- Nơi chứa các object trong S3
- S3 gồm nhiều bucket
- Tên của bucket phải là unique với tất cả các bucket của AWS S3
- Mỗi bucket sẽ có Access Control Policy:
- Resource-based policy: Policy được gắn vào resource: bucket policy, access control list
- User-based policy: Policy được gắn vào user
Object:
- Amazon S3 lưu trữ dữ liệu như các object trong các bucket. Một object gồm:
- Key: Tên của object
- Value: Data của object
- Metadata: Data mô tả cho object
- VersionID: dùng cho versioning
- Mỗi object trong S3 sẽ có Storage Class:
- Versioning: Giúp user quản lý file theo multi-version
-> keep đc history- Một khi bật versioning thì không thể hủy, mà chỉ có thể suspend
Cross-region replication:
- Tự động copy đồng bộ data từ 1 bucket -> 1 bucket ở region khác
Quản lý Lifecycle:
- Quản lý lifecycle của object trong S3 bằng những rule do tự user tạo ra
-> chủ động quản lý resource, giảm thiểu chi phí
Route53
Route 53 là gì?
- Là DNS serivce được cung cấp bởi AWS, quản lý DNS, connect request của user đến các cơ sở hạ tầng (infra) trong AWS (EC2, ELB) hoặc cũng có thể đến các infra ngoài AWS
- Lý do nên dùng Route53:
- Cung cấp healthy để kiểm tra service của bạn còn hoạt động hay không rất là tiện lợi cho việc cấu hình load balancer(Healthy and Weighted Routing Policy)
- Cung cấp các policy(chính sách) điều hướng lượng trafic đến các service của bạn
- Phân giải tên miền trong mạng nội bộ (Private DNS)
- Bạn có thể mua domain từ Route 53(Domain Registration)
- Cung cấp các tính năng vùng miền trên thế giới để điều hướng người dùng tương ứng( Geolocation Routing Policy)
Củng cố lại kiến thức về network:
- DNS: Domain server name: Hệ thống phân giải tên miền -> IP address (IPv4: 32bit, IPv6: 128bit)
- TLD: Top-level domain: phần sau cùng của url: .com, .vn, .jp (https://www.iana.org/domains/root/db)
- Domain name: tên miền giúp user dễ nhớ để truy cập internet
- Subdomain: phần mở rộng của một tên miền
- Fully Qualified Domain Name (FQDN): tên đầy đủ của
Quy trình phân giải tên miền DNS:
- Ở mỗi DNS đều có Zone file, quy định việc mapping giữa Domain name và IP address. Trong zone file là các Resource Records:
Đăng ký Domain Name mới:
- Hosted Zone: chưa tập hợp các Resouce records được host bởi Route 53, có 2 loại:
- Private hosted zone: chứa thông tin về route traffic của domain hoặc subdomain các VPC
- Public hosted zone: chứa thông tin về route traffic trên Internet của domain hoặc subdomain
- Khi register domain, Route 53 sẽ tự động tạo hosted zone cho domain đó, trong đó sẽ chứa thông tin về route traffic của domain
- Có thể tùy biến các thông tin về Resource Record
Health checks:
- Kiếm tra trạng thái của resource
- Có thể setting gửi thông báo khi Health check không nhận được notification
Routing policies:
- Biểu thị cách Route53 sẽ phản hồi các queries
- Simple routing policy – Dùng cho những resource đơn lẻ, ví dụ như một web server phục vụ trang web có url là example.com
- Failover routing policy – Điều hướng khi resource unvailable, khi healthy check fail
- Geolocation routing policy – Điều hướng traffic theo vị trí địa lý của user
- Geoproximity routing policy – Điều hướng traffic theo vị trí địa lý của resource
- Latency routing policy – Khi có resource ở nhiều vị trí địa lý (multiple locations) và muốn điều hướng traffic đến nơi gần nhất.
- Weighted routing policy – Điều hướng traffic theo trọng số độ ưu tiên