Terraform 배포 문제 해결 - AWS Transfer Family

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Terraform 배포 문제 해결

이 섹션에서는 Terraform을 사용하여 Transfer Family 리소스를 배포하는 것과 관련된 문제에 대해 가능한 해결 방법을 설명합니다. Transfer Family용 Terraform 모듈에 대한 일반적인 내용은 섹션을 참조하세요Transfer Family Terraform 모듈.

Terraform 리소스 생성 실패 문제 해결

설명

Terraform을 사용하여 Transfer Family 리소스를 생성하려고 하면 다음과 같은 오류가 발생합니다.

Error: error creating Transfer Server: InvalidRequestException: The request is not valid. Error: error creating Transfer User: InvalidRequestException: Unable to create the user because the server endpoint type is incompatible with the home directory type.

원인

이러한 오류는 일반적으로 호환되지 않는 구성 파라미터 또는 Terraform 구성의 종속성 누락으로 인해 발생합니다. 일반적인 원인은 다음과 같습니다.

  • 호환되지 않는 엔드포인트 유형 및 스토리지 구성

  • 필수 IAM 역할 또는 정책 누락

  • 잘못된 보안 정책 사양

  • VPC 엔드포인트 구성 문제

솔루션

Terraform 배포 문제를 해결하려면:

  • Terraform 구성이 호환되는 파라미터 조합을 사용하는지 확인합니다.

    • 퍼블릭 엔드포인트의 경우 스토리지에 Amazon S3를 사용하고 있는지 확인합니다.

    • VPC 엔드포인트의 경우 적절한 VPC 및 보안 그룹 구성을 확인합니다.

  • depends_on 속성과 함께 명시적 종속성을 사용하여 리소스가 올바른 순서로 생성되도록 합니다.

  • 모든 IAM 역할에 필요한 신뢰 관계 및 권한이 있는지 확인합니다.

  • 최신 버전의 Terraform용 AWS 공급자를 사용하여 모든 Transfer Family 기능과의 호환성을 보장합니다.

  • 복잡한 배포 및 간단한 사용 사례의 경우 https://github.com/aws-ia/terraform-aws-transfer-family GitHub에서 제공되는 공식 Transfer Family Terraform 모듈을 사용하는 것이 좋습니다. 이 모듈은 간단하고 복잡한 고객 사용 사례를 다루는 광범위한 예제를 제공하고, AWS 모범 사례를 따르며, 코드형 인프라(IaC) 구성에 도움이 필요한 고객을 위해 배포를 간소화할 수 있습니다.

Terraform 상태 관리 문제 해결

설명

Terraform 외부에서 Transfer Family 리소스를 변경한 후(콘솔 또는를 통해 AWS CLI) terraform plan 또는를 실행할 때 상태 드리프트 또는 오류가 발생합니다terraform apply.

원인

Terraform은 관리하는 리소스를 추적하는 상태 파일을 유지합니다. Terraform 외부에서 변경하면 상태 파일이 실제 리소스와 동기화되지 않아 후속 Terraform 작업 중에 오류 또는 예기치 않은 동작이 발생합니다.

솔루션

Transfer Family 리소스와 관련된 Terraform 상태 관리 문제를 해결하려면

  1. terraform import를 사용하여 기존 리소스를 Terraform 관리로 가져옵니다.

    terraform import <transfer_family_server.example> s-<server-id> terraform import <transfer_family_server.example> s-<server-id>/username
  2. terraform refresh를 사용하여 현재 실제 인프라로 상태 파일을 업데이트합니다.

  3. 가져올 수 없거나 복잡한 상태 문제가 있는 리소스의 경우 terraform state rm를 사용하여 상태 파일에서 리소스를 제거한 다음 Terraform으로 다시 생성하는 것이 좋습니다.

  4. 미래 상태 드리프트를 방지하기 위해 Terraform을 통해서만 Transfer Family 리소스를 관리하는 정책을 구현합니다.

  5. 잠금과 함께 원격 상태 스토리지를 사용하여 팀에서 작업할 때 동시 수정 방지