AWS Infrastructure as Code에 대한 설명서
최근에 terraform IaC를 구축하는 동안 API 게이트웨이가 Lambda로 제대로 라우팅되지 않는 것을 발견했습니다. 콘솔을 사용할 때 AWS는 게이트웨이가 Lambda에 필요한 권한을 자동으로 할당하지만 terraform의 IaC를 사용하면 명시 적으로 할당해야합니다.
위의 내용은 이해할 수 있지만 초보자에게는 AWS와 terraform 모두에게 혼란 스럽습니다.
위와 같이 인프라 연결 내에 필요한 구성 요소를 설명하는 문서가 있습니까?
저는 AWS 문서와 terraform 문서가 특히 잘 고려되어 있다는 것을 알고 있지만 실제로는 특정 리소스가 특정 (일반적이거나 모호한) 설정에 필요하다는 것을 실제로 설명하지 않습니다. 일반적인 검색에서 이러한 연결을 추론하는 것은 훌륭한 대체가 아닙니다.
답변
하나의 페이지 / 영역에 "모든 필수 구성 요소"를 나열하는 문서가 없다고 생각합니다. 그러나 다른 문서에서 다른 정보를 얻을 수 있으며, 언급했듯이 AWS와 Terraform은 모두이 작업을 훌륭하게 수행합니다.
AWS에 대해 이야기하면 API 게이트웨이의 권한의 경우 두 가지 유용한 링크를 생각할 수 있습니다 (첫 번째 링크는 두 번째 링크에서 참조 됨).
- API Gateway 리소스 정책이 권한 부여 워크 플로에 미치는 영향
- API 호출을위한 액세스 제어
나는 당신이 성취하려는 것을 정말로 모른다면 때때로 AWS를 테라 폼으로 변환하는 것이 많은 추측이라는 사실에 동의합니다. 일반적으로 IaC 대 AWS 콘솔에서 "이론적으로 작동해야하는"무언가를 차단할 때 문제에서 한 발짝 물러나 AWS 세계에서 실제로 어떤 종류의 구성 요소를 연결하려고하는지 파악하려고합니다. 그러면 보통 상황이 더 분명해집니다.
테라 폼에서는 실제로 작은 독립 인프라를 생성하고 함께 작동하게합니다. 다른 IaC와 비교할 때 제 경험상 CloudFormation보다 훨씬 더 세분화되어 있습니다.
내가 일을 더 빨리 파악하는 데 도움이되는 개인적인 관행은 내가 Terraform에서 작업중인 구성 요소의 모든 소개 문서를 읽는 것입니다. 예를 들어, terraform IaC에서 람다를 작성하는 경우 모든 lambda_xxxx_yyyy 소개 부분을 빠르게 읽고 무언가가 실패 할 때 더 빨리 반응하고 막히지 않습니다. 보통 저에게 효과적입니다.
그러한 문서를 보지 못했지만 비슷한 경우에 대한 해결 방법을 공유 할 수 있습니다.
UI를 사용하여 수동으로 AWS 콘솔을 사용하여 필요한 사항을 변경할 수 있습니다. 그런 다음 TF 파일에서 방금 만든 리소스를 정의하여 필수 / 필수 속성 집합 만 정의하고 임의의 값도 작동합니다. 그런 다음 수동으로 만든 것을 정의한 리소스로 가져옵니다.
실행 terraform plan하면 차이점을 볼 수 있으며 그에 따라 TF 파일을 조정할 수 있습니다.
몇 번의 반복 후에 TF를 사용하여 UI에서 방금 수행 한 작업을 복제합니다. 최종 테스트로 변경 사항을 수동으로 되돌리고 실행 terraform apply하고 모든 것이 예상대로 작동하는지 확인할 수 있습니다 .