베하~~안녕하세요 BETTERMONDAY 입니다! 이번 포스팅 부터는 테라폼을 사용하여 AWS에서 3tier 를 구축할 것입니다.
코드를 정리해두시면 굉장히 쏠쏠하니 다같이 열심히 해봅시다! 그럼~슈우우웃~!
0. 아키텍쳐
저희가 생성해볼 인프라의 아키텍쳐는 다음과 같습니다.
1. VPC 및 IP, Gateway 생성
먼저 VPC 입니다. 인프라를 생성하기 위해선 먼저 VPC가 있어야겠죠?
아주 간단하게 다음과 같은 코드로 생성 가능합니다.
resource "aws_vpc" "tier" {
cidr_block = "10.0.0.0/16"
tags = {
"Name" = "tier-vpc"
}
}
위와 같이 10.0.0.0/16 대역에 VPC를 생성해주고,쉬운 관리를 위하여 태그까지 달아 주도록 하겠습니다.
그 다음은 외부통신을 위한 InternetGateway 생성입니다.
또한 Bastion에 달아줄 EIP가 필요하기때문에 같이 생성해주겠습니다.
WEB,WAS가 yum등 설치가 필요하기 때문에 NatGateway도 생성해주겠습니다.
#Internet GateWay 생성
resource "aws_internet_gateway" "tier-igw" {
vpc_id = aws_vpc.tier.id
tags = {
"Name" = "tier-igw"
}
}
#eip 생성
resource "aws_eip" "tier-eip" {
vpc = true
tags = {
"Name" = "tier-eip"
}
}
#Nat Gateway 생성
resource "aws_nat_gateway" "tier-nat" {
allocation_id = aws_eip.tier-eip.id
subnet_id = aws_subnet.public-a.id
tags = {
"Name" = "tier-nat"
}
}
2.Subnet 생성
Bastion, WEB, WAS, DB는 각각의 서브넷이 필요합니다. 따라서 생성해주도록 하겠습니다.
#=============================================public=========================================#
#Public Subnet a 생성 (Nat,Bastion)
resource "aws_subnet" "public-a" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.1.0/24"
availability_zone = "ap-northeast-2a"
tags = {
"Name" = "tier-public-a"
}
}
#Public Subnet b 생성
resource "aws_subnet" "public-c" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.2.0/24"
availability_zone = "ap-northeast-2c"
tags = {
"Name" = "tier-public-c"
}
}
#===================================================web======================================#
#Web Subnet a 생성 (Web-a)
resource "aws_subnet" "web-sub-a" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.3.0/24"
availability_zone = "ap-northeast-2a"
tags = {
"Name" = "tier-web-sub-a"
}
}
#Web Subnet b 생성 (Web-c)
resource "aws_subnet" "web-sub-c" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.4.0/24"
availability_zone = "ap-northeast-2c"
tags = {
"Name" = "tier-web-sub-c"
}
}
#=============================================was=========================================#
#Was Subnet a 생성 (Was)
resource "aws_subnet" "was-sub-a" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.5.0/24"
availability_zone = "ap-northeast-2a"
tags = {
"Name" = "tier-was-sub-a"
}
}
#Was Subnet b 생성 (Was)
resource "aws_subnet" "was-sub-c" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.6.0/24"
availability_zone = "ap-northeast-2c"
tags = {
"Name" = "tier-was-sub-c"
}
}
#=========================================DB==============================================#
#DB Subnet a 생성 (DB)
resource "aws_subnet" "db-sub-a" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.7.0/24"
availability_zone = "ap-northeast-2a"
tags = {
"Name" = "tier-db-sub-a"
}
}
#DB Subnet b 생성 (DB)
resource "aws_subnet" "db-sub-c" {
vpc_id = aws_vpc.tier.id
cidr_block = "10.0.8.0/24"
availability_zone = "ap-northeast-2c"
tags = {
"Name" = "tier-db-sub-c"
}
}
이번 주 해볼 내용은 여기까지입니다! 코드를 작성하기 전 프로바이더 설정이나, AWS계정을 연결시키는 작업또한 필요하지만, 이 부분은 테라폼을 사용하기위해 너무나 기초 작업이기 때문에 다루지 않았습니다.
다음 포스팅에서는 SecurityGroup생성에 대하여 다뤄보도록 하겠습니다. 감사합니다! 베바~~~~~~~~
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
AWS Terraform 3tier (3) (0) | 2022.12.19 |
---|---|
AWS Terraform 3tier (2) (0) | 2022.12.19 |
AWS Outposts (0) | 2022.12.19 |
[AWS] CloudWatch (0) | 2022.12.17 |
AWS Shield (0) | 2022.12.16 |
댓글