클라우드 시대가 되면서 인프라 엔지니어는 서버실에서 벗어나게 되었습니다. AWS 콘솔에서 클릭 몇 번으로 서버를 배포하고, 명령어 한 줄로 다양한 인프라를 구축할 수 있게 되었습니다. 더 나아가 인프라를 더 빠르고, 안전하게 관리하는 방법이 등장합니다.
IaC란?
코드형 인프라(Infrastructure as Code, IaC)는 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로 비저닝하는 것입니다. 우리가 원하는 네트워크, 서버, 스토리지 등을 모두 코드로 저장하고 관리합니다. 이렇게 하면 코드를 공유하고, 테스트하고, 재사용할 수 있기 때문에 더 생산성 있게 인프라를 관리할 수 있습니다.
테라폼은 무엇인가요?
테라폼은 IaC 중에 가장 유명한 도구입니다. AWS, GCP, Azure 같은 클라우드뿐만 아니라 사내 솔루션까지 모두 관리할 수 있는 장점이 있습니다. 또한 원하는 최종 결과를 정의하는 선언형(declarative) 방식을 사용하기 때문에 결과를 예측하기 쉽고 코드를 재사용하더라도 같은 결과를 보장할 수 있습니다.
terraform plan
을 하면 AWS에서 어떻게 생성될지에 대한 구체적인 계획을 세우고, terraform apply
를 통해 실제 적용합니다. 그리고 테라폼을 통해 생성된 리소스에 대한 정보를 tfstate라는 JSON 파일로 관리합니다.
테라폼을 어떻게 사용하나요?
테라폼은 여러 키워드들을 통해 유저의 입력을 받아, 리소스를 생성하고, 실행한 결과를 CLI 상에 출력하는 기능을 제공합니다. 여기서는 몇 가지 기본 키워드를 알아봅시다.
Provider
프로바이더는 리소스 유형을 구현하는 플러그인입니다. AWS, GCP 같이 사용하는 클라우드 플랫폼 및 서비스에 대한 프로바이더를 찾아 구성에 추가한 다음 해당 리소스를 사용하여 인프라를 프로비저닝할 수 있습니다.
provider "aws" {
region = "ap-northeast-2"
}