본문으로 바로가기
반응형

Intro

업무를 하다보면 특히 금융권에서는 내부 시스템에서 인터넷으로 나가는것이 자유롭지 못할 수 있습니다.
특정 proxy를 반드시 거쳐야한다거나, 통신이 필요한 URL을 명확히 인지하고 요청해야합니다

atlantis의 경우 terraform 명령어를 날려야하는데 부득이하게 외부 인터넷으로 네트워크 통신이 되어야하는 몇가지 목록이 있는데요.
오늘은 해당 목록을 정리해보려고 합니다.

이슈

terraform은 내부적으로 provider를 외부 인터넷에서 받아 오도록 설계되어 있습니다. 만약 외부와 통신이 불가능하면 아래와 같은 에러가 발생 합니다.

╷
│ Error: Failed to query available provider packages
│ 
│ Could not retrieve the list of available versions for provider
│ hashicorp/aws: could not connect to registry.terraform.io: failed to
│ request discovery document: Get
│ "https://registry.terraform.io/.well-known/terraform.json": http: server
│ gave HTTP response to HTTPS client
│ Error: Failed to install provider
│ 
│ Error while installing hashicorp/aws v5.83.1: could not query provider
│ registry for registry.terraform.io/hashicorp/aws: failed to retrieve
│ authentication checksums for provider: the request failed after 2 attempts,
│ please try again later: Get
│ "https://releases.hashicorp.com/terraform-provider-aws/5.83.1/terraform-provider-aws_5.83.1_SHA256SUMS":
│ http: server gave HTTP response to HTTPS client

외부 오픈해야하는 URL

따라서 아래 2개의 URL에는 접근이 가능해야 합니다.

https://registry.terraform.io/
https://releases.hashicorp.com/

외부 통신 또 없을까?

만약 s3와 dynamodb를 이용해서 tfstate와 lock관리를 하도록 구성했다면 s3와 dynamodb와 통신이 가능해야하는데요. 이는 aws 의 private link를 구성해서 외부 인터넷으로 나가지 않고 aws 내부에서 통신하도록 설정이 가능합니다.

반응형