1. Xác định Template CloudFormation Tạo một file JSON hoặc YAML chứa mô tả các tài nguyên bạn muốn tạo. Ví dụ, dưới đây là một template YAML đơn giản:
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
Trong ví dụ trên:
KeyName: Xác định tên của key pair mà bạn muốn sử dụng để truy cập vào instance EC2. Key pair cần phải được tạo trước khi tạo stack CloudFormation.
SecurityGroups: Xác định một hoặc nhiều security groups áp dụng cho instance EC2. Bạn có thể tham chiếu đến một security group đã tồn tại hoặc tạo một security group mới trong cùng một template CloudFormation.
UserData: Cho phép bạn cấu hình các tác vụ tùy chỉnh được thực thi khi instance khởi động. Trong ví dụ này, chúng ta sử dụng lệnh echo để tạo một tập tin index.html trong thư mục /var/www/html.
Tags: Cho phép bạn thêm các tag cho instance để dễ dàng quản lý và phân loại tài nguyên.
BlockDeviceMappings: Định cấu hình các thiết bị lưu trữ cho instance. Bạn có thể xác định kích thước và loại ổ đĩa EBS.
Monitoring: Cho phép bạn kích hoạt giám sát instance để thu thập các dữ liệu về hiệu suất.
IamInstanceProfile: Tham chiếu đến một instance profile IAM để gắn kết với instance. Instance profile này có thể chứa các phân quyền IAM được gắn kết với instance.
Placement: Cho phép bạn xác định vị trí khởi chạy của instance, bao gồm Availability Zone.
NetworkInterfaces: Định cấu hình mạng cho instance, bao gồm việc kết nối vào public subnet và sử dụng một hoặc nhiều security groups.
2. Tạo Stack CloudFormation
Sử dụng AWS Management Console hoặc AWS Command Line Interface (CLI) để tạo một stack CloudFormation từ template bạn đã xác định. Đảm bảo bạn có đủ quyền hạn để tạo các tài nguyên.
AWS Management Console: Đăng nhập vào AWS Management Console, đi đến dịch vụ CloudFormation, chọn "Create stack", sau đó tải lên hoặc nhập vào template của bạn và tiếp tục với các bước hướng dẫn. AWS CLI: Sử dụng lệnh create-stack, ví dụ:
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 tạo stack, bạn có thể theo dõi tiến trình tạo thông qua AWS Management Console hoặc CLI. Stack sẽ chuyển sang trạng thái CREATE_COMPLETE khi tất cả các tài nguyên đã được tạo thành công.
4. Truy cập vào Instance EC2 Sau khi stack được tạo thành công, bạn có thể truy cập vào instance EC2 bằng cách sử dụng địa chỉ IP công cộng hoặc tên miền được cấp phát, tùy thuộc vào cấu hình của bạn.
Lưu ý: Quyền hạn IAM: Đảm bảo 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í: Đảm bảo bạn hiểu 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 bằng CloudFormation có thể được mở rộng để bao gồm nhiều tùy chọn cấu hình và các tài nguyên khác như tường lửa, cụm EC2, và các dịch vụ khác của AWS.