Hướng Dẫn Chi Tiết Tạo EC2 Instance Bằng CloudFormation
1. Xác định Template CloudFormation
Để tạo EC2 instance bằng CloudFormation, bước đầu tiên là bạn cần tạo một file JSON hoặc YAML chứa thông tin mô tả các tài nguyên cần thiết. Dưới đây là một ví dụ về template YAML đơn giản:
yaml
AWSTemplateFormatVersion: '2010-09-09'
Resources:
MyEC2Instance:
Type: 'AWS::EC2::Instance'
Properties:
ImageId: ami-0c55b159cbfafe1f0 # ID của AMI bạn muốn sử dụng
InstanceType: t2.micro # Loại instance (ví dụ: t2.micro)
KeyName: MyKeyPair # Tên của key pair để truy cập instance
SecurityGroups:
- Ref: MySecurityGroup # Tham chiếu đến một security group đã tồn tại hoặc định nghĩa mới
UserData: # Cấu hình userdata cho instance
Fn::Base64: |
#!/bin/bash
echo "Hello, World!" > /var/www/html/index.html
Tags: # Thêm các tags cho instance
- Key: Name
Value: MyInstance
BlockDeviceMappings: # Cấu hình thiết bị lưu trữ
- DeviceName: /dev/sda1
Ebs:
VolumeSize: '20'
VolumeType: gp2
Monitoring: # Kích hoạt giám sát instance
Enabled: true
IamInstanceProfile: MyInstanceProfile # Tham chiếu đến một instance profile IAM
Placement: # Cấu hình vị trí khởi chạy của instance
AvailabilityZone: us-east-1a
NetworkInterfaces: # Cấu hình mạng
- AssociatePublicIpAddress: true
DeviceIndex: '0'
GroupSet:
- Ref: MySecurityGroup
SubnetId: subnet-12345678
Giải Thích Các Thành Phần Trong Template
- KeyName: Tên của key pair cần thiết để truy cập vào EC2 instance. Key pair này phải được tạo trước khi bạn tạo stack CloudFormation.
- SecurityGroups: Xác định một hoặc nhiều security group áp dụng cho EC2 instance, có thể tham chiếu đến một security group đã có hoặc tạo mới trong cùng template.
- UserData: Cấu hình các tác vụ tuỳ chỉnh sẽ được thực thi khi instance khởi động. Ví dụ, sử dụng lệnh để tạo file index.html trong thư mục /var/www/html.
- Tags: Thêm các tag cho instance để quản lý và phân loại tài nguyên hiệu quả hơn.
- BlockDeviceMappings: Cấu hình các thiết bị lưu trữ cho instance, cho phép xác định kích thước và loại ổ đĩa EBS.
- Monitoring: Kích hoạt giám sát để thu thập dữ liệu hiệu suất của instance.
- IamInstanceProfile: Tham chiếu đến một instance profile IAM để gắn kết với instance, giúp quản lý quyền hạn dễ dàng hơn.
- Placement: Xác định vị trí khởi chạy của instance, cụ thể là Availability Zone.
- NetworkInterfaces: Cấu hình mạng cho instance, bao gồm việc kết nối vào subnet public và sử dụng một hoặc nhiều security groups.
2. Tạo Stack CloudFormation
Bạn có thể tạo stack CloudFormation thông qua AWS Management Console hoặc AWS Command Line Interface (CLI). Đảm bảo rằng bạn có đủ quyền hạn để tạo các tài nguyên này.
Sử Dụng AWS Management Console
- Đăng nhập vào AWS Management Console.
- Truy cập dịch vụ CloudFormation.
- Chọn "Create stack" và tải lên template của bạn, sau đó theo dõi các hướng dẫn tiếp theo.
Sử Dụng AWS CLI
Nếu muốn sử dụng CLI, bạn có thể chạy lệnh sau:
aws cloudformation create-stack --stack-name MyEC2Stack --template-body file://path/to/your/template.yaml
3. Kiểm Tra Quá Trình Tạo
Sau khi yêu cầu tạo stack được gửi đi, bạn có thể theo dõi tiến trình thông qua AWS Management Console hoặc CLI. Khi stack chuyển sang trạng thái CREATE_COMPLETE, có nghĩa là tất cả các tài nguyên đã được tạo thành công.
4. Truy Cập Vào EC2 Instance
Khi stack đã được tạo thành công, bạn có thể truy cập vào EC2 instance bằng địa chỉ IP công cộng hoặc tên miền được cung cấp, tùy thuộc vào cấu hình của bạn.
Lưu Ý Quan Trọng
- Quyền Hạn IAM: Đảm bảo rằng vai trò IAM bạn đang sử dụng có đủ quyền hạn để tạo và quản lý các tài nguyên EC2.
- Chi Phí: Hãy nắm rõ các chi phí liên quan đến việc sử dụng EC2 và các tài nguyên khác mà bạn tạo bằng CloudFormation. Việc tạo instance EC2 có thể được mở rộng để bao gồm nhiều tùy chọn cấu hình và các dịch vụ khác của AWS.
Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn về cách tạo EC2 instance bằng CloudFormation.
source: viblo