Terraform

22.07.15

가로선 2022. 7. 15. 15:18

 

   목차   

 

1. Terraform 운용

 - Internet Gateway 생성

 - Routing Table 생성

 - Subnet 연결(IGW)

 - Elastic IP 할당

 - NAT Gateway 생성

 - NAT Routing Table 생성

 - Subnet 연결(NGW)

 - Security Group 생성 및 오류해결

 - EC2 생성

 - Load Balancer 생성

 - Target Group 생성


   Terraform 운용   

 - 재사용 가능한 모듈(tf, ansible)을 만들기 위해 변수처리가 필요

    - 아직은 변수처리 전단계가 더 중요!

 

   Internet Gaetway 생성   

 - registry.terraform.io에서 aws_internet_gateway 확인

 

전 시간에 설정한 vpc id로 설정

 

AWS Console에서 IGW 생성 확인 및 VPC에 바로 연결되어있는 것 까지 확인

 

   Routing Table 생성   

 - registry.terraform.io에서 aws_route_table 확인

 

인터넷 게이트웨이를 연결한 라우팅 테이블 라우팅

    - AWS에서 늘 하던대로 하는 것이다!

    - 기본으로 주는 10.0.0.0/16 (Local)은 설정안해도 존재!

    - Default Routing table을 사용할 수도 있으나 새롭게 생성하는 것이 좋다

 

라우팅 테이블 생성 확인

 

라우팅 설정 확인

 

   Subnet 연결(IGW)   

 - registry.terraform.io에서 aws_route_table_association 확인

 

생성한 라우팅 테이블에 서브넷 연결

 

AWS Console에서 명시적 서브넷 연결 확인

 

   Elastic IP 할당   

 - registry.terraform.io에서 aws_eip 확인

 - 인스턴스에 붙이는 것이 아니기 때문에 instance 구문은 생략

 

NAT 게이트웨이에 할당을 위한 EIP 할당

 

   NAT Gateway 생성   

 

registry.terraform.io에서 aws_nat_gateway 확인

    - depends_on 확인

        - 이것을 생성하기 위한 필수 조건

        - IGW의 경우 미리 생성했으므로 생략이 가능하다

 

EIP 할당 및 NGW가 위치할 서브넷 지정

 

AWS Console에서 NGW 생성 확인

 

   NAT Routing Table 생성   

 - registry.terraform.io에서 aws_route_table 확인

 

NGW를 사용하여 NGW용 라우팅 테이블 생성

 

AWS Console에서 라우팅 테이블 생성 확인

 

   Subnet 연결(IGW)   

 

Private Subnet 전부 연결

 

AWS Console에서 연결 확인

 

   Security Group 생성 및 오류해결   

 - registry.terraform.io에서 aws_security_group 확인

 

생성한 vpc에 대한 보안그룹 생성

 

22, 80번 포트 개방

    - ingress : 들어오는 연결

    - egress : 나가는 연결

 

ICMP, 3306 포트 개방

 

FTP 포트 개방

 

나가는 연결은 모두 개방

    - -1 : 값 지정 x
    - 0 : 모든 것을 의미

 

plan 후 apply 시 생기는 오류 확인

 

오류 내용에 나온대로 내용 보완 진행

    - 각 보안그룹 항목별로 전부 추가해 주면 오류해결이 가능하다

 

문제 없이 plan이 되는 것을 확인

 

AWS Console에서 보안그룹 생성 확인

 

   EC2 생성   

 - registry.terraform.io에서 aws_instance 확인

 

내용에 맞게 설정 진행

    - 완전 자동화를 위해 AWS Machine Image Version2를 검색해 가져온다

 

amzn2 id를 이용하여 인스턴스 생성 진행

 

할당 받은 Public IP 확인을 위해 해당 라인 추가

 

plan 후 apply 확인

 

AWS Console에서 EC2 생성 확인

 

할당 받은 Public IP로 접속 확인

 

   Load Balancer 생성   

 - registry.terraform.io에서 aws_lb 확인

 

로드 밸런서 생성

    - internal을 false로 설정하여 외부에 공개하는 Load Balancer로 설정

 

AWS Console에서 로드밸런서 생성 확인

   Target Group 생성   

 - registry.terraform.io에서 aws_lb_target_group 확인

 

Target 그룹 생성

    - enabled : 상태확인 활성화 여부(default : true)

    - healthy_threshold : 비정상적인 대상을 정상으로 간주하기 전

                                               필요한 연속상태확인 성공횟수(default : 3)

    - interval : 대상에 대한 상태 확인 사이 시간(최소 5초 ~ 최대 300초)

    - matcher : 대상의 정상적인 응답을 확인할 때 사용하는 응답 코드(200은 정상 페이지 처리)

    - path : Health Check 요청 대상

    - timeout : 응답이 없는 상대가 상태 확인에 실패했음을 의미하는 시간

    - unhealthy_threshold : 대상을 비정상으로 간주하기 전 필요한 연속적인 상태 확인 실패 횟수

 

AWS Console에서 대상 그룹 생성 확인

 

   ALB Listener 생성   

 - FrontEnd 부분인 Listener 부분 설정

 - registry.terraform.io에서 aws_lb_listener 확인

 

alb에 리스너를 연결하고 내부 타켓쪽으로 포워딩하는 설정

'Terraform' 카테고리의 다른 글

22.07.20  (0) 2022.07.20
22.07.14  (0) 2022.07.14