[패스트캠퍼스 챌린지 5일차] '76가지 DevOps 모의 실무 예제: AWS 기반 인프라 구축부터 재해복구, 보안까지' 강의 후기 본문
[패스트캠퍼스 챌린지 5일차] '76가지 DevOps 모의 실무 예제: AWS 기반 인프라 구축부터 재해복구, 보안까지' 강의 후기
ITst 2025. 4. 5. 22:49본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
※ 챌린지 URL: https://abit.ly/lisbva
이번 Terraform 실습에서는 count, for_each, for와 같은 반복문 요소와 조건문을 활용한 인프라 구성 방식을 학습하였다. 이전까지는 리소스를 하나하나 명시적으로 선언하여 구성했지만, 이번 실습을 통해 리소스를 동적으로 생성하고 보다 유연하게 인프라를 관리할 수 있는 방법을 익힐 수 있었다.
먼저, count는 동일한 형태의 리소스를 여러 개 생성할 때 유용하게 사용할 수 있었다. 예를 들어, 동일한 스펙의 EC2 인스턴스를 여러 개 배포할 경우, 각 블록을 반복 작성하지 않고 단일 블록 내에서 count 속성을 통해 효율적으로 관리할 수 있었다. 이로 인해 코드의 중복이 줄어들고, 관리 측면에서도 훨씬 수월해졌다는 점이 인상 깊었다.
다음으로 for_each는 맵(map)이나 셋(set)과 같은 자료구조를 기반으로 다양한 속성을 가진 리소스를 반복 생성할 때 유용했다. 실습에서는 IAM 유저를 예시로, 유저 이름이 포함된 맵 데이터를 기반으로 각각의 리소스를 생성하였다. 이를 통해 보다 동적인 리소스 생성을 가능하게 하며, 실무 환경에서 사용자별 태그, 정책 등을 다르게 적용할 수 있는 유용한 방식임을 확인할 수 있었다.
또한 for 표현식을 사용하여 리스트 내의 값을 조건에 따라 필터링하거나 변환하는 등의 로직을 적용할 수 있었다. 단순히 인프라를 선언하는 수준을 넘어서, 프로그래밍적인 로직을 Terraform 코드 내에 녹여낼 수 있다는 점이 인상 깊었다.
이번 실습의 마지막 주제는 조건문이었다. 특히 환경에 따라 퍼블릭 서브넷 생성 여부를 다르게 구성한 예제가 현실적인 시나리오로 느껴졌다. env 변수를 기준으로 개발 환경에서는 퍼블릭 서브넷을 생성하지 않고, 운영 환경에서는 생성하도록 구성함으로써, 하나의 코드베이스로 다양한 환경을 지원할 수 있는 구조를 구현할 수 있었다. 이를 통해 환경에 따라 인프라 구조를 유연하게 조정할 수 있는 방법을 익혔다.
이번 실습을 통해 Terraform이 단순한 선언형 도구를 넘어, 반복문과 조건문 등 프로그래밍적 요소를 활용하여 더욱 정교하고 유연한 인프라 구성 방식을 제공한다는 점을 체감할 수 있었다. 앞으로 실제 환경에 적용할 때 이러한 기능들을 적절히 활용하면, 보다 효율적이고 유지보수성이 높은 인프라 코드를 작성할 수 있을 것으로 기대된다.