Terraform

분석과 탐구

Terraform으로 생성한 IAM Role은 비정상일까?

개요이번 게시글은 OpenSearch에서 Snapshot Repository를 설정하여 로그를 백업하는 방법을 작성하려 했었다. 그러나 해당 작업을 구현하던 중 Terraform으로 생성한 IAM Role에서 이상이 있는 것을 확인하게 되었고, 이를 인지하기까지 많은 시간이 소요되었다. 이번 게시글에서는 Terraform Assume Role 문제를 해결하기 위해 겪은 과정을 공유하고자 한다. Assume Role Assume Role은 AWS STS를 이용해 특정 역할(Role)을 임시로 부여 받아 엑세스 권한을 획득하는 방식을 뜻한다. 각각의 개념을 먼저 알아보고, Assume Role이 어떤 역할을 하는지 살펴보도록 하자. AWS STSAWS STS(Security Token Service)는 특정..

Infrastructure/Terraform

효율적인 인프라 관리를 위한 Terraform 모듈 입문하기

개요 Terraform과 같은 Infrastructure as Code(IaC) 도구를 사용한다면, 대규모 인프라를 효츌적으로 관리할 수 있다. 그러나, 단일 Terraform 프로젝트로 대규모 인프라를 관리하게 된다면, 많은 리소스들이 하나의 코드 베이스에 포함되어 관리가 복잡해질 수 있다. 이로 인해 코드의 가독성이 떨어지고, 유지보수가 어려워질 뿐만 아니라 재사용성 또한 감소하게 된다. Terraform Module을 사용하게 된다면 이러한 문제를 해결할 수 있게 된다. 이번 게시글에서는 모듈이란 무엇인지, 어떻게 Terraform Module을 사용할 수 있는지에 대해 알아보도록하자. Terraform Module Terraform Module은 코드 베이스를 논리적으로 분리하여 각각의 인프라 리..

Infrastructure/Terraform

지구를 Terraform으로 물들이다. (Terraform 입문하기)

개요일반적으로, 우리는 AWS와 같은 클라우드 서비스 제공업체의 콘솔을 통해 인프라 리소스를 관리하고 있을 것이다. 소규모 프로젝트나 모놀리식의 간단한 프로젝트를 구성하였을 때에는 이런 접근 방식은 문제가 되지 않을것이다. 그러나 프로젝트 규모가 확장되어 수많은 부하 분산 시스템을 구성하거나, 접근 가능한 사용자를 관리하기 위한 여러 Rule을 정의하거나, 멀티 컨테이너 환경을 구성하기 시작하는 등 복잡한 요구사항이 지속적으로 발생할 때, AWS 콘솔을 이용하여 인프라를 관리하는 것은 많은 시간이 소모될 것이고, 자신이 어떤 설계를 하였는지 잘 기억나지 않을 것이다. 더욱이, 운영 환경과 개발 환경을 별도로 구성하게 된다면, 동일한 행위를 반복하게 될 것이고, 또 다른 스테이지 구현이 필요하게 된다면, ..

Infrastructure/Terraform

VPC Peering, 너는 누구니? (feat. terraform)

📝 서론 최근 사내 인프라를 분석하던 중, 모든 서비스들이 가상 사설 네트워크인 VPC를 기반으로 분리되어 관리하고 있는 것을 알게되었다. 일반적으로 VPC는 사설 네트워크 인프라로, Public IP를 통하지 않으면 외부 AWS 리소스를 접근할 수 없는 것으로 알고 있는데, 일부 AWS 리소스가 다른 VPC의 AWS 리소스를 Private IP를 통해 사용하고 있는 것으로 확인하였다. 어떤 이유로 이런 동작이 가능한 것인지 조사해보니, VPC Peering 을 통해 다른 VPC에 속한 리소스들과 마치 동일한 VPC 내부에 있는 것처럼 통신이 가능하다는 것을 알게 되었다. 이번 글에서는 VPC Peering을 사용하기 위한 가장 기초적인 토대가 되는 VPC에 대해 살펴보고, Terraform을 이용하여 ..

Infrastructure/Terraform

[Terraform] 이미 존재하는 AWS 리소스를 가져오기

서론 Terraform을 사용하면서 CLI를 잘못 사용하여 .tfstate파일에 배포된 정보가 반영되지 않거나, AWS Management Console에서 생성한 리소스를 놓치고 배포하게 될 상황을 겪었을 것이다. 그럴때마다 마주하는 ‘already exist …’ 에러를 AWS Management Console에서 수동으로 삭제하는 것 대신, Terraform CLI를 이용해 이미 존재하는 AWS 리소스를 Terraform 파일에 정의된 속성에 맞게 수정하는 작업을 진행할 예정이다. 위와 같은 에러는 AWS 리소스가 계정 내에서 고유한 이름으로 존재하는 서비스에서 발생하는데, 주로 ECR 저장소, S3 버킷과 같은 서비스에서 많이 볼 수 있다. 그렇다면, 어떻게 작업해야 이런 문제 상황을 해결할 수 ..

커스텀 리
'Terraform' 태그의 글 목록