본문 바로가기
CSP (Cloud Service Provider)/AWS

AWS Terraform 3tier (3)

by BTC_신지웅 2022. 12. 19.

안녕하세요! BETTERMONDAY 입니다! 저번 포스팅에 이어 이번에도 달려볼까요?? 이번에는 EC2 생성입니다! 그럼~~슈우우우우웃!


1. Bastion 생성

Bastion을 생성해줍니다. 앞서했던 부분이 아파트의 기둥이나 외벽 등 기초공사였다면, 이젠 안에 집을 지어야 겠죠!

#Bastion 생성
resource "aws_instance" "tier-ec2-bastion" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2a"

  subnet_id = aws_subnet.public-a.id
  key_name  = "tier-bastion-key"
  vpc_security_group_ids = [
    aws_security_group.tier-sg-pub-bastion.id
  ]
  tags = {
    "Name" = "tier-bastion"
  }
}

2. Web 생성

Web또한 생성을 해줍니다. 사실 Terraform Code로도 Key를 생성할 수 있지만, 굉장히 복잡하기 때문에 편의상 Key만 콘솔에서 제작 후 진행하였습니다.

#Web,DB 이중화 구성
# Availability Zona A 에 ec2생성
resource "aws_instance" "tier-ec2-pri-a-web1" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2a"

  subnet_id = aws_subnet.web-sub-a.id
  key_name  = "tier-web-key"
  vpc_security_group_ids = [
    aws_security_group.tier-sg-pri-web.id
  ]
  tags = {
    "Name" = "web1"
  }
}
#Availability Zona C 에 ec2 생성
resource "aws_instance" "tier-ec2-pri-web2" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2c"

  subnet_id = aws_subnet.web-sub-c.id
  key_name  = "tier-web-key"
  vpc_security_group_ids = [
    aws_security_group.tier-sg-pri-web.id
  ]
  tags = {
    "Name" = "web2"
  }
}

3. Was

was는 똑같이 이중화 구성을 해주되, EBS 를 추가적으로 붙여줍니다.

# was 역시 이중화 구성이지만 ebs를 추가적으로 붙여준다.

# was
resource "aws_instance" "tier-ec2-pri-a-was1" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2a"

  subnet_id = aws_subnet.was-sub-a.id
  key_name  = "tier-was-key"


  # ebs 추가적으로 구성
  ebs_block_device {
    device_name = "/dev/sdb"
    volume_size = "8"
  }


  vpc_security_group_ids = [
    aws_security_group.tier-sg-pri-was.id
  ]
  tags = {
    Name = "was1"
  }
}


resource "aws_instance" "tier-ec2-pri-c-was2" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2c"

  subnet_id = aws_subnet.was-sub-c.id
  key_name  = "tier-was-key"


  ebs_block_device {
    device_name = "/dev/sdb"
    volume_size = "8"
  }

  vpc_security_group_ids = [
    aws_security_group.tier-sg-pri-was.id
  ]
  tags = {
    Name = "was2"
  }
}

4. DB

DB는 RDS 를 사용하지 않고 EC2에 설치하여 사용할 것입니다.

#db
resource "aws_instance" "tier-ec2-pri-a-db1" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2a"

  subnet_id = aws_subnet.db-sub-a.id
  key_name  = "tier-db-key"
  vpc_security_group_ids = [
    aws_security_group.tier-sg-pri-db.id
  ]
  tags = {
    Name = "db1"
  }
}


resource "aws_instance" "tier-ec2-pri-c-db2" {
  ami               = "ami-006e2f9fa7597680a"
  instance_type     = "t2.micro"
  availability_zone = "ap-northeast-2c"

  subnet_id = aws_subnet.db-sub-c.id
  key_name  = "tier-db-key"
  vpc_security_group_ids = [
    aws_security_group.tier-sg-pri-db.id
  ]
  tags = {
    Name = "db2"
  }
}

네 오늘은 3tier에 필요한 EC2들을 모두 생성해보았습니다. 다음 포스팅에선 LB생성에대해 다뤄보도록 하겠습니다.

그럼 베바~~

 

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

AWS Snow Family  (2) 2022.12.19
AWS Terraform 3tier (4)  (0) 2022.12.19
AWS Terraform 3tier (2)  (0) 2022.12.19
AWS Terraform 3tier (1)  (0) 2022.12.19
AWS Outposts  (0) 2022.12.19

댓글