흰 스타렉스에서 내가 내리지

Terraform의 -parallelism 옵션: 더 빠르고 효율적인 인프라 관리 방법 본문

DevOps

Terraform의 -parallelism 옵션: 더 빠르고 효율적인 인프라 관리 방법

주씨. 2024. 9. 5. 17:32
728x90

Terraform 은 인프라로 코드를 관리할 수 있는 강력한 도구로, 코드만으로 클라우드 인프라를 배포, 업데이트, 삭제할 수 있는 유연성을 제공합니다. 

하지만 규모가 커지고 리소스가 복잡해질수록 인프라 배포 속도는 중요한 문제가 됩니다. 

이때 Terraform 의 -parallelism 옵션을 활용하면 속도와 효율성을 동시에 높일 수 있습니다. 

 

 

# -parallelism 옵션이란?

-parallelism 옵션은 Terraform 이 리소스를 병렬로 처리할 수 있는 작업 수를 설정하는 옵션입니다. 

기본적으로 Terraform 은 10개의 리소스를 동시에 처리하는데, 이 옵션을 사용하면 더 많은 리소스를 동시에 처리할 수 있도록 병렬 작업 수를 늘릴 수 있습니다

 

terraform plan -parallelism=30

 

위 명령어는 Terraform 이 기본값(10) 대신 30개의 리소스를 병렬로 처리하도록 지시합니다. 

병렬로 처리할 수 있는 리소스가 많을 수록 plan, apply 작업의 속도가 빨라집니다. 

 

 

# -parallelism 옵션을 사용할 때의 이점

1. 배포 속도 향상 

병령 작업 수가 많아지면 동시에 처리할 수 있는 리소스의 수가 늘어나기 때문에 전체 실행 시간이 줄어듭니다. 특히 독립적인 리소스가 많거나, 규모가 큰 인프라를 관리하는 경우 이 옵션을 활용하면 실행 속도를 크게 향상시킬 수 있습니다. 

 

2. 대규모 인프라에서 유리

수십개에서 수백개의 리소스를 한 번에 배포해야 할 때, -parallelism 옵션을 사용하면 빠른 배포가 가능합니다. 예를 들어, 수백 개의 가상머신(VM), 네트워크 리소스, 또는 데이터베이스 인스턴스를 관리하는 경우, 더 많은 병렬 작업을 허용함으로써 배포 시간을 단축할 수 있습니다. 

 

3. 리소스 병목 현상 완화

Terraform 은 기본적으로 리소스 간의 의존성을 파악해 순차적으로 처리하지만, 의존성이 없는 리소스는 병렬로 처리할 수 있다. 

-parallelism 옵션을 통해 병렬 처리를 늘리면 리소스 간 병목 현상을 줄일 수 있다. 서로 의존성이 없는 리소스가 많을 수록 병렬 처리의 이점이 극대화된다. 

 

 

# -parallelism 옵션이 유용한 활용 사례

1. 대규모 클라우드 인프라 배포 

 

2. 독립적인 리소스가 많은 환경 

배포할 리소스들 간에 의존성이 거의 없을 때, -parallelism 옵션은 특히 유용합니다. 서로 의존성이 없는 리소스는 병렬로 처리해도 문제가 없기 때문에, 이를 한 번에 처리하도록 설정하면 시간을 크게 절약할 수 있습니다. 

 

예를 들어, 여러 개의 VPC, 서브넷, 네트워크 관련 리소스를 병렬로 생성하는 상황에서 이 옵션을 사용하면 작업이 훨씬 빨라집니다. 

 

 

# 주의사항 

1. API Rate Limiting

많은 요청을 동시에 보내면, API Rate Limit 에 걸릴 가능성이 있습니다. 

AWS, GCP, Azure 와 같은 클라우드 제공자들은 API 호출에 제한을 두고 있기 때문에, 병렬 작업 수를 너무 높이면 한도를 초과하여 오류가 발생할 수 있습니다. 병렬 처리 수를 조정할 때 클라우드 제공자의 API 제한을 고려하는 것이 중요합니다. 

 

2. 시스템 리소스 사용량 증가

병렬 처리 수를 늘리면 Terraform 을 실행하는 로컬 시스템 또는 CI/CD 파이프라인에서 CPU, 메모리 등의 리소스 사용량이 증가할 수 있습니다. 시스템 리소스가 충분하지 않다면 오히려 성능 저하를 초래할 수 있으므로, 시스템 상태에 맞게 병렬 처리 수를 설정해야 합니다.