Triển Khai Laravel Lên AWS Qua Console (Phần 0): Chuẩn Bị — Tài Khoản AWS, IAM & Billing

· 10 min read

Series này hướng dẫn triển khai Laravel lên AWS hoàn toàn qua giao diện AWS Console — không cần terminal, không cần CLI. Mọi thao tác đều click-by-click trên trình duyệt.

Nếu bạn đã xem series Triển Khai Laravel Lên AWS (phiên bản CLI), kiến trúc và kết quả cuối cùng hoàn toàn giống nhau. Khác biệt duy nhất là cách thực hiện: Console thay vì command line.

Ai nên đọc series này? Bạn thích giao diện trực quan, muốn nhìn thấy từng thiết lập trước khi tạo, hoặc đơn giản chưa quen terminal. Series này dành cho bạn.

1. Tạo Tài Khoản AWS

  1. Mở trình duyệt, truy cập aws.amazon.com
  2. Click "Create an AWS Account" (nút cam, góc phải trên)
  3. Điền thông tin:
    • Email: Dùng email công việc hoặc email riêng cho AWS (không dùng email cá nhân chung)
    • Account name: Ví dụ My Laravel Production
  4. Xác nhận email qua mã OTP gửi về hộp thư
  5. Đặt mật khẩu cho root user (mật khẩu mạnh, lưu vào password manager)
  6. Chọn Personal hoặc Business account (cả hai đều dùng được)
  7. Nhập thông tin thanh toán (thẻ tín dụng/debit — sẽ không bị trừ nếu ở Free Tier)
  8. Xác minh số điện thoại (SMS hoặc cuộc gọi)
  9. Chọn Basic Support - Free
  10. Hoàn tất — chờ vài phút để tài khoản kích hoạt

Free Tier — 12 Tháng Miễn Phí

Dịch vụ Giới hạn Free Tier
EC2 750 giờ/tháng t2.micro hoặc t3.micro
RDS 750 giờ/tháng db.t3.micro
S3 5 GB lưu trữ
CloudFront 1 TB data transfer
ElastiCache 750 giờ cache.t3.micro

Cảnh báo: Bất cứ gì vượt Free Tier sẽ bị tính phí. Chúng ta sẽ cài cảnh báo billing ở phần sau.

2. Bảo Mật Tài Khoản Root

Tài khoản root có quyền truy cập không giới hạn. Không bao giờ dùng root cho công việc hàng ngày.

Bật MFA Cho Root

  1. Đăng nhập AWS Console bằng root email
  2. Click tên tài khoản (góc phải trên) → Security credentials
  3. Kéo xuống phần Multi-factor authentication (MFA)
  4. Click "Assign MFA device"
  5. Đặt tên: root-mfa
  6. Chọn Authenticator app
  7. Click "Show QR code"
  8. Mở ứng dụng authenticator (Google Authenticator, Authy, v.v.) trên điện thoại → quét mã QR
  9. Nhập hai mã MFA liên tiếp (đợi mã đầu hết hạn, nhập mã thứ hai)
  10. Click "Add MFA"

Root đã được bảo vệ. Từ giờ mỗi lần đăng nhập root sẽ yêu cầu mã MFA.

Nguyên tắc: Chỉ dùng root cho quản lý billing và tạo IAM user. Mọi thao tác khác dùng IAM user.

3. Tạo IAM User

IAM (Identity and Access Management) cho phép tạo user với quyền hạn cụ thể.

3a. Vào IAM Console

  1. Ở thanh tìm kiếm trên cùng, gõ "IAM" → click IAM (không phải IAM Identity Center)
  2. Menu bên trái → Users
  3. Click "Create user"

3b. Thông Tin User

Thiết lập Giá trị
User name laravel-deployer
Provide user access to the AWS Management Console ✅ Tick
Console password Custom password (lưu vào password manager)
Users must create a new password at next sign-in ❌ Bỏ tick

Click Next.

3c. Gán Quyền

  1. Chọn "Attach policies directly"
  2. Trong ô tìm kiếm, tìm và tick từng policy:
Policy Mục đích
AmazonEC2FullAccess Quản lý EC2 instances
AmazonRDSFullAccess Quản lý RDS databases
AmazonS3FullAccess Quản lý S3 buckets
AmazonVPCFullAccess Quản lý VPC, subnets
ElasticLoadBalancingFullAccess Quản lý ALB
CloudFrontFullAccess Quản lý CDN
AmazonRoute53FullAccess Quản lý DNS
AmazonElastiCacheFullAccess Quản lý Redis cache
AWSCertificateManagerFullAccess Quản lý SSL certificates
  1. Click NextCreate user

Mẹo production: Trong môi trường thực tế, nên dùng custom policy với quyền tối thiểu (least privilege). Các policy FullAccess tiện cho học tập nhưng quá rộng.

3d. Lưu Thông Tin Đăng Nhập Console

Sau khi tạo xong, AWS hiện trang xác nhận với:

  • Console sign-in URL: https://123456789012.signin.aws.amazon.com/console
  • User name: laravel-deployer
  • Password: Mật khẩu bạn vừa đặt

Lưu Console sign-in URL — từ giờ bạn sẽ đăng nhập bằng URL này thay vì trang chủ AWS.

3e. Bật MFA Cho IAM User

  1. Vào IAM → Users → laravel-deployer
  2. Tab Security credentials
  3. Phần Multi-factor authentication (MFA)Assign MFA device
  4. Đặt tên: deployer-mfa
  5. Làm tương tự như root: quét QR, nhập hai mã
  6. Xong

3f. Đăng Nhập Lại Bằng IAM User

  1. Đăng xuất root
  2. Truy cập Console sign-in URL (bước 3d)
  3. Nhập Account ID (12 chữ số), User name: laravel-deployer, Password
  4. Nhập mã MFA
  5. Bạn đang trong Console với quyền IAM user

Từ giờ về sau trong toàn series, mọi thao tác đều thực hiện bằng IAM user laravel-deployer.

4. Thiết Lập Cảnh Báo Billing

Đừng để bất ngờ bởi hóa đơn AWS.

4a. Bật Quyền Billing Cho IAM User

Mặc định, chỉ root mới xem được billing. Hãy mở quyền:

  1. Đăng nhập bằng root
  2. Click tên tài khoản → Account
  3. Kéo xuống phần IAM user and role access to Billing information
  4. Click Edit → tick Activate IAM AccessUpdate

4b. Tạo Budget

  1. Đăng nhập lại bằng IAM user laravel-deployer
  2. Thanh tìm kiếm → gõ "Budgets" → click AWS Budgets
  3. Click "Create budget"
  4. Chọn template: "Zero spend budget"
    • Budget name: zero-spend-alert
    • Email recipients: email của bạn
  5. Click "Create budget"

Budget này sẽ gửi email ngay khi có bất kỳ chi phí nào phát sinh.

4c. Tạo Thêm Budget Giới Hạn (Tùy chọn)

  1. Create budget"Monthly cost budget"
  2. Budget amount: $50 (hoặc số tiền bạn chấp nhận)
  3. Ngưỡng cảnh báo:
    • 50% → email
    • 80% → email
    • 100% → email
  4. Create budget

5. Chọn Region

Trước khi tạo bất kỳ tài nguyên nào, hãy chọn đúng region:

  1. Nhìn góc phải trên của Console, bên cạnh tên tài khoản
  2. Click vào tên region hiện tại
  3. Chọn region phù hợp:
Region Code Khi nào chọn
Tokyo ap-northeast-1 Người dùng ở Nhật, Đông Á
Singapore ap-southeast-1 Người dùng ở Đông Nam Á
N. Virginia us-east-1 Rẻ nhất, nhiều dịch vụ nhất
Ireland eu-west-1 Người dùng ở châu Âu

Series này dùng ap-northeast-1 (Tokyo). Hãy chọn đúng region này trước khi tiếp tục.

Quan trọng: Mỗi region là độc lập. Tài nguyên tạo ở Tokyo sẽ không hiện khi bạn chuyển sang Singapore. Luôn kiểm tra region trước khi tạo bất cứ gì.

6. Các Khái Niệm AWS Cốt Lõi

Trước khi vào Phần 1, hãy hiểu các thành phần cơ bản:

Region & Availability Zone (AZ)

AWS Cloud
├── ap-northeast-1 (Tokyo Region)
│   ├── ap-northeast-1a (AZ-a)  ← Một data center vật lý
│   ├── ap-northeast-1c (AZ-c)  ← Data center khác
│   └── ap-northeast-1d (AZ-d)
├── us-east-1 (Virginia Region)
│   ├── us-east-1a
│   └── ...
└── ...
  • Region: Khu vực địa lý. Dịch vụ và dữ liệu nằm trong region bạn chọn.
  • AZ: Các data center cách ly trong cùng một region. Dùng nhiều AZ = tính sẵn sàng cao.

VPC (Virtual Private Cloud)

Mạng riêng của bạn bên trong AWS. Tưởng tượng nó như tòa nhà văn phòng — bạn kiểm soát ai được vào, phòng nào kết nối với nhau, và phòng nào tiếp xúc internet.

Subnet

Một "phòng" bên trong VPC:

  • Public subnet: Có truy cập internet (load balancers, web servers)
  • Private subnet: Không truy cập internet trực tiếp (databases, cache — bảo mật hơn)

Security Group

Tường lửa ảo cho mỗi resource. Quy tắc định nghĩa traffic nào được phép vào và ra:

Security Group cho EC2:
  Inbound:  Port 80 chỉ từ ALB
  Inbound:  Port 22 chỉ từ IP của bạn
  Outbound: Tất cả traffic

Security Group cho RDS:
  Inbound:  Port 3306 chỉ từ EC2
  Outbound: Không cần

IAM Role (vs IAM User)

  • IAM User: Dành cho con người (bạn). Mật khẩu hoặc access key lâu dài.
  • IAM Role: Dành cho dịch vụ AWS (EC2, Lambda). Credentials tạm thời, tự động xoay vòng. Bảo mật hơn.

Trong series này, EC2 sẽ dùng IAM Role để truy cập S3 — không cần lưu access key trên server.

Checklist Trước Phần 1

  • Tài khoản AWS đã tạo và kích hoạt
  • MFA đã bật cho root
  • IAM user laravel-deployer đã tạo với quyền cần thiết
  • MFA đã bật cho IAM user
  • Đã đăng nhập Console bằng IAM user
  • Cảnh báo billing đã thiết lập
  • Region đặt đúng (ap-northeast-1)
  • Đã hiểu: Region, AZ, VPC, Subnet, Security Group

Sẵn sàng? Hãy bắt đầu xây dựng mạng.


Điều hướng Series:

Bình luận