우선 테라폼의 가장 기본적인 3가지 절차입니다 Write -> Plan -> Apply입니다. Write과정에서는 해당 인프라 코드를 작성하고, Plan단계에서는 해당 인프라를 검증하고, Apply단계에서는 검증된 결과를 바탕으로 실제 인프라에 반영하게 됩니다.
Write
Write과정에서는 오른쪽과 같이 HCL코드를 통해 간결하게 인프라를 정의할 수 있습니다. 오른쪽 경우는 aws infra를 만든 예시입니다.
Plan
terraform plan을 통해서 검증을 하게되는데, 아래 결과를 보면 1개가 추가되고, 0개가 변하고 0개가 없어진다는 것입니다. 그리고 과정중에 +을 통해 추가되는 인프라의 상세정보도 확인할 수 있습니다.
Apply
Apply는 이제 검증된 결과를 바탕으로 실제 인프라에 적용하는 단계입니다. 그리고 Apply단계는 Provider Agonostic하다고 말 합니다. 예를 들어서 terraform코드로 GCP, AWS, Azure인프라도 다 만들 수 있는 거냐라고 의문을 가질 수 있습니다. terraform은 여러 provider를 지원합니다. terraform은 해당 provider에 맞는 코드를 작성해서 provider에 해당하는 인프라를 관리할 수 있게 되는 것입니다.
Terraform Registry
https://registry.terraform.io/
Terraform Registry
registry.terraform.io
일단 Browser Provider는 AWS, GCP, Azure, KSS등 여러개가 존재합니다. 각 provider를 사용하면 각 서비스의 인프라를 사용할 수 있습니다. 그리고 옆에 있는 Browser Modules는 인프라 리소스 그룹 템플릿이라고 보시면 됩니다.
예를 들어 OpenVPN AWS EC2인스턴스를 만들려고 하는데, security group, ebs volumn...등 필요한 것들을 모듈화해서 재사용하면서 많이 찍어낼 수 있게 되는 것입니다.
그래서 커뮤니티에서 많은 provider를 찾아보고 modules을 활용할 때 Terraform Registry를 사용하게 됩니다.
Terraform Docs
https://www.terraform.io/intro
What is Terraform | Terraform by HashiCorp
Terraform is an infrastructure as code tool that lets you build, change, and version cloud and on-prem resources safely and efficiently.
www.terraform.io
그리고 테라폼 독스를 들어가면 다양한 종류의 탭이 있는데, 우리는 Configuration Language를 가장 많이 활용할 것입니다. 이는 테라폼을 위한 HCL으로서, 많이 찾아봐야 하는 정보이기 때문입니다.
그리고 테라폼을 보면 git에서 CI pipeline을 통해 PR요청을 approve하는 등 협업을 위한 기능들을 많이 제공합니다.
'DevOps > AWS Architecture' 카테고리의 다른 글
[ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 기초 문법 (0) | 2022.07.21 |
---|---|
[ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 다루어보기 (0) | 2022.07.21 |
[ DevOps ] - 엔서블 설치 (0) | 2022.07.20 |
[ DevOps ] - 패커 설치 및 기본 설정 (0) | 2022.07.20 |
[ DevOps ] - 테라폼 설치 및 기본 설정 (0) | 2022.07.20 |