TerraForm을 활용하여 AWS infra 구축하기

AWS 인프라를 운영하다보면 VPC나 네트워크, 리소스 등 많은 반복작업이 필요할 경우가 있다. 물론 1회성 작업이라면 콘솔상에서 간편하게 작업이 가능하지만 만약 VPC 또는 리소스가 굉장히 많이 필요할 경우에는 수동 작업 시 시간이 매우 낭비된다. 이 포스팅은 Terraform을 활용하여 반복되거나 비슷한 인프라작업을 스크립트 실행하나로 자동화시켜주는 방법을 설명한다.

Terraform이 무엇인가요?

Terraform은 인프라 구축과 운영을 보다 쉽고 효율적으로  지원해주는 형상관리 오픈 소스 도구며, 아래와 같은 특징을 가진다.

  • Iac(Infrastructure as Code) : 인프라를 코드로 정의하고 배포,업데이트한다.
  • 코드로 관리되기 때문에 작업이 자동화되며 당연히 수동작업보다 속도가 훨씬 빠르다.
  • 코드 리뷰와 테스트가 가능하여 문제 또는 인적 실수를 어느 정도 예방할 수 있다.
  • git 등을 통해 형상 관리가 가능하여 인프라의 변경기록을 쉽게 볼 수도 있다. 또한 문서화가 되어 대규모 인프라 협업에도 매우 우수하다.
  • 한 번 구축해놓으면 그 후 반복되거나 추가되는 인프라 구성이 쉽다.

Terraform 설치

https://www.terraform.io/downloads
위 링크에서 운영체제에 맞게 다운로드 (windows, linux, mac 등 많은 os를 지원한다)

Terraform 사용하기

1. AWS Provider 설정

AWS infra를 관리하려면 당연히 AWS의 권한이 필요하다. AWS iam access key를 발급하고 terraform 사용목적에 맞는 권한을 추가한다. 

aws.tf  파일을 생성하여 액세스키와 리전을 정의한다.

				
					provider "aws" {
    access_key = "MY-ACCESS-KEY"
    secret_key = "MY-SECRET-KEY"
    region = "ap-northeast-2"
    }
				
			

그 후 테라폼 파일을 저장할 경로에서 아래 명령어로 provider를 선언한다.
#terraform init