연재 시리즈

테라폼으로 EKS만들기 프로젝트 4-1편 - VPC생성

악분 2023. 7. 3. 23:23
반응형

지금까지 어렴풋이 테라폼 동작을 이해했습니다. 이제 드디어 테라폼을 사용하여 EKS를 생성할 차례입니다. 안타깝지만 EKS를 바로 만들지 못합니다. 먼저 EKS가 동작하는 네트워크 환경을 만들어야 합니다.

 

네트워크 환경에는 VPC, 서브넷, NAT 게이트웨이 등을 구성해야 합니다. 이번 챕터부터 VPC부터 시작하여 서브넷 등을 테라폼코드로 작성합니다.

 

아키텍처

이번 챕터는 VPC를 생성합니다. cidr은 10.0.0.0/16을 사용합니다.

 

전제조건

AWS access key, secret key가 필요합니다.

 

예제코드 다운로드

예제 코드는 git repo에 공개되어 있습니다. vpc폴더가 이번 챕터 예제 코드입니다.

git clone https://github.com/choisungwook/terraform_practice.git example
cd example/vpc

 

AWS provider 생성

테라폼이 VPC 등 AWS리소스 생성을 위해 AWS provider를 사용합니다. AWS provider 테라폼 코드는 AWS provider문서에 있습니다.

 

복사한 코드는 provider.tf파일에 붙여넣습니다. 파일이름을 provider.tf라고 한 이유는, 이 코드가 provider 설정이 있다고 명확하게 말해주기 위해서입니다.

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "5.4.0"
    }
  }
}

provider "aws" {}

 

provider설정에 테라폼 버전도 같이 명시하면 좋습니다. required_version필드로 테라폼 버전을 설정합니다.

terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = "5.4.0"
    }
  }

  # 테라폼 버전 설정
  required_version = ">= 1.4"
}

provider "aws" {}

 

terraform init명령어를 실행하여 provider플러그인을 다운로드 받습니다.

terraform init

 

AWS 액세스키, 시크릿키 설정

aws provider는 aws API를 사용하므로 aws 인증정보가 필요합니다. 인증정보는 provider block에 설정할 수 있지만, 코드가 노출되면 보안사고가 발생합니다. 그래서 저는 aws 디폴트 프로파일 경로를 사용했습니다.

 

디폴트 프로파일은 aws CLI를 사용하여 설정합니다.

aws configure

 

코드 작성

VPC테라폼 코드는 AWS 레지스트리 문서에서 찾을 수 있습니다. 예제코드를 찾아 복사합니다.

 

main.tf파일을 만들고 복사한 코드를 붙여넣습니다.

 

코드 실행

terraform plan명령어를 실행하여 테라폼 결과를 미리 확인합니다. 테라폼으로 생성할 VPC가 현재 없으므로, VPC를 생성하는 +아이콘이 보입니다.

terraform plan

 

terraform apply명령어를 실행하여 aws에 vpc를 생성합니다.

terraform apply

 

aws console에 로그인하여 VPC가 실제로 생성되었는지 확인합니다.

 

리소스 삭제

VPC생성을 확인 한 후 terraform destroy명령어를 실행하여, VPC를 삭제합니다.

terraform destroy

 

다음 챕터

다음 챕터에서는 vpc tag Name을 설정합니다.

반응형