-
[T102 2주차] (2) 테라폼의 기본 문법(스터디 실습 (VPC + 보안그룹 + EC2 배포)테라폼(Terraform) 스터디 2023. 7. 15. 22:01
cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 2주차 정리입니다.
1. VPC 배포 : vpc.tf ( 테라폼 파일생성)
provider "aws" {region = "ap-northeast-2"}
resource "aws_vpc" "myvpc" {cidr_block = "10.10.0.0/16"
tags = {Name = "t101-study"}}테라폼 초기화 & 실행계획 & 적용
terraform init && terraform plan && terraform apply -auto-approvecs #결과
2. 보안그룹 생성 및 배포: sg.tf ( 테라폼 파일생성)
resource "aws_security_group" "mysg" {vpc_id = aws_vpc.myvpc.idname = "T101 SG"description = "T101 Study SG"}
resource "aws_security_group_rule" "mysginbound" {type = "ingress"from_port = 80to_port = 80protocol = "tcp"cidr_blocks = ["0.0.0.0/0"]security_group_id = aws_security_group.mysg.id}
resource "aws_security_group_rule" "mysgoutbound" {type = "egress"from_port = 0to_port = 0protocol = "-1"cidr_blocks = ["0.0.0.0/0"]security_group_id = aws_security_group.mysg.id}3. :EC2 생성: ec2.tf 파일 생성 ( 테라폼 파일생성)
data "aws_ami" "my_amazonlinux2" {most_recent = truefilter {name = "owner-alias"values = ["amazon"]}
filter {name = "name"values = ["amzn2-ami-hvm-*-x86_64-ebs"]}
owners = ["amazon"]}
resource "aws_instance" "myec2" {
depends_on = [aws_internet_gateway.myigw]
ami = data.aws_ami.my_amazonlinux2.idassociate_public_ip_address = trueinstance_type = "t2.micro"vpc_security_group_ids = ["${aws_security_group.mysg.id}"]subnet_id = aws_subnet.mysubnet1.id
user_data = <<-EOF#!/bin/bashmv busybox-x86_64 busyboxchmod +x busyboxRZAZ=$(curl http://169.254.169.254/latest/meta-data/placement/availability-zone-id)IID=$(curl 169.254.169.254/latest/meta-data/instance-id)LIP=$(curl 169.254.169.254/latest/meta-data/local-ipv4)echo "<h1>RegionAz($RZAZ) : Instance ID($IID) : Private IP($LIP) : Web Server</h1>" > index.htmlnohup ./busybox httpd -f -p 80 &EOF
user_data_replace_on_change = true
tags = {Name = "t101-myec2"}}
output "myec2_public_ip" {value = aws_instance.myec2.public_ipdescription = "The public IP of the Instance"}테라폼 초기화 & 실행계획 & 적용( sg.tf &ec2.tf 한번에 실행)
terraform init && terraform plan && terraform apply -auto-approvecs #결과 =>EC2 생성 확인
- 삭제(실습으로 만들어 둔 AWS 리소스 삭제):
terraform destroy -auto-approve
'테라폼(Terraform) 스터디' 카테고리의 다른 글
[T102 4주차] (2)테라폼 모듈(Module) (0) 2023.07.30 [T102 4주차] (1)테라폼 state (0) 2023.07.30 [T102 3주차] (1) 테라폼 프로비저너 (0) 2023.07.22 [T102 2주차] (1) 테라폼의 기본 문법(리소스, 변수) (0) 2023.07.15 [T102 1주차] (1) 테라폼의 정의 및 Terraform(테라폼) 환경구축(Window10) (0) 2023.07.08