- aws cli 버전 2 설치
sudo apt update -y
sudo apt install -y unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
aws-cli/2.7.6 Python/3.9.11 Linux/5.13.0-1025-aws exe/x86_64.ubuntu.20 prompt/off
- aws 정책 설정 (IAM)
- aws 사용자 설정 (IAM)
액세스 키ID 와 비밀 액세스 키를 저장해 둔다. (창 닫기면 다시 확인불가)
- AWS CLI를 통한 configure(ap-northeast-2' 는 서울 region)
aws configure
AWS Access Key ID [None]: AAAABBBCCC3333EFFFF
AWS Secret Access Key [None]: AAEFFFE23432432432432423432423
Default region name [None]: ap-northeast-2
Default output format [None]: json
aws lightsail get-bundles --region ap-northeast-2
aws lightsail get-bundles --region ap-northeast-2 --query 'bundles[].{price:price,cpuCount:cpuCount,ramSizeInGb:ramSizeInGb,diskSizeInGb:diskSizeInGb,bundleId:bundleId,instanceType:instanceType,supportedPlatforms:supportedPlatforms[0]}' --output table
aws lightsail get-bundles --region eu-west-1 --query 'bundles[].{price:price,cpuCount:cpuCount,ramSizeInGb:ramSizeInGb,diskSizeInGb:diskSizeInGb,bundleId:bundleId,instanceType:instanceType,supportedPlatforms:supportedPlatforms[0]}' --output table
- 액세스 키, 시크릿 키 환경변수에 등록
export AWS_ACCESS_KEY_ID=AAABBBCC324324324234
export AWS_SECRET_ACCESS_KEY=AAABFDSAFDSBBCC3FDSAF24324324234
- versions.tf 파일 작성
mkdir terraform-prac
cd terraform-prac/
- vi versions.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}
provider "aws" {
access_key = ""
secret_key = ""
region = "ap-northeast-2"
}
terraform init
terraform version
- ssh key 생성
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): ./lightsail_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./lightsail_key.
Your public key has been saved in ./lightsail_key.pub.
- vi main.tf
resource "aws_lightsail_key_pair" "lightsail-test" {
name = "lightsail-test"
public_key = file("./lightsail_key.pub")
}
resource "aws_lightsail_instance" "lightsail_test" {
name = "lightsail-test-instance"
availability_zone = "ap-northeast-2a" # seoul regin 'a'
blueprint_id = "ubuntu_18_04"
bundle_id = "micro_2_0"
key_pair_name = aws_lightsail_key_pair.lightsail-test.name
user_data = <<-EOF
#! /bin/bash
sudo mkdir -p /home/ubuntu/test
echo "<h1>Hello, World.</h1>" | sudo tee /ubuntu/test/hello
EOF
tags = {
Name = "my-lightsail"
}
}
resource "aws_lightsail_instance_public_ports" "lightsail_firewall_test" {
instance_name = aws_lightsail_instance.lightsail_test.name
# port information
port_info {
protocol = "tcp"
from_port = 80
to_port = 0
}
port_info {
protocol = "tcp"
from_port = 22
to_port = 0
}
port_info {
protocol = "tcp"
from_port = 3306
to_port = 0
}
}
- ssh 접속 테스트
terraform plan # 테스트
terraform apply # 수행
[AWS화면에서 인스턴스 생성확인]
ssh -i ./lightsail_key ubuntu@10.11.11.11 # SSH 접속
[인스턴스 삭제]
terraform destroy
[참고]
https://not-to-be-reset.tistory.com/440
'Infra Structure > Terraform' 카테고리의 다른 글
[Terraform] Terraform 설치 (0) | 2022.06.05 |
---|