실전! 테라폼 적용기 [추가설명] - dynamic 블록 사용하기
·
AWS/테라폼(Terraform)
다이나믹 블록은 설정이 복잡하거나 조건에 따라 변할 수 있는 리소스 속성을 효율적으로 관리하기 위해 사용된다. 📌 서론 우리 팀은 프로젝트에서 3개의 ECS 클러스터를 사용하고 각각 1개씩 ECS서비스를 운영하고 있다. 이 중 2개는 오토 스케일링 그룹(ASG)을 사용하는 반면, 나머지 하나는 ASG를 사용하지 않고 있다. 이런 다양한 설정을 테라폼 코드로 표현하고 싶었는데, 굳이 두 가지 다른 ECS 서비스 모듈을 만들고 싶지는 않았다. 이런 상황에서 테라폼의 유연성을 최대한 활용할 방법이 무엇일까 고민하던 중, 테라폼의 'dynamic 블록'이라는 기능을 발견했다. 이 기능을 사용하면 하나의 모듈 안에서도 조건에 따라 다른 설정을 동적으로 적용할 수 있게 된다. 예를 들어, ASG를 사용하는 경우와 ..
실전! 테라폼 적용기3편 - Auto Scaling Group과 용량 공급자(Capacity provider) 작성
·
AWS/테라폼(Terraform)
이번에는 Auto Scaling Group과 Capacity Provider를 테라폼 모듈로 생성하자 📌 서론 이전 포스트에서 vpc와 subnet을 설정했고 EC2 런치 템플릿을 모듈로 생성했다. 이렇게 생성한 EC2 런치 템플릿은 ASG에 의해 사용되어 인스턴스의 생성을 관리해 주고, 용량 공급자(Capacity Provider)는 ASG와 연결되어 인스턴스의 스케일링을 관리하는 데 도움을 준다. ASG는 EC2 런치 템플릿을 바탕으로 EC2 인스턴스의 생성 및 관리를 담당하며, 용량 공급자는 이런 ASG를 활용해 ECS 환경에서의 자동 스케일링을 조절한다. 이렇게 설정된 ASG는 ECS 클러스터와 연결되어, ECS에서 실행되는 컨테이너들이 적절한 자원을 가진 인스턴스에서 실행될 수 있도록 해준다. ..
실전! 테라폼 정복기 2편 - vpc, subnet 설정과 인프라 구축
·
AWS/테라폼(Terraform)
지금부터 실제 사이드 프로젝트에 적용시킨 테라폼 코드를 알아보자 📌 서론 테라폼을 실전에 적용하면서 많은 것을 배웠지만 주로 한국보다는 외국 블로그나 커뮤니티에 필요했던 자료가 존재했던 것 같다. 나와 같은 주니어들이 테라폼을 사용하고 싶을 때 이 글을 보고 따라 할 수 있었으면 좋겠다는 마음에 이 글을 추가적으로 작성한다. 지금부터 알아볼 테라폼 코드는 아래의 MSA 프로젝트에서 사용된 인프라를 기반으로 진행된다. Spring Boot MSA 환경에서 트랜잭션을 관리하며 스프링 이벤트/SNS/SQS를 사용하여 DB 정합성 보장하기1 나는 MSA 프로젝트에서 DB 정합성 보장을 위해 Spring Event를 다음과 같이 사용했다. 잠시 이전 글의 서론을 다시 가져왔다. 한번 읽어보자 내가 구성한 MSA ..
실전! 테라폼 정복기 1편 - 테라폼(Terraform) 모듈화
·
AWS/테라폼(Terraform)
이번 포스트에서는 테라폼의 가장 중요한 설계방법인 모듈화를 알아보자 📌 서론 내가 처음 테라폼 코드를 작성할 때는 module의 존재는 알았지만 도대체 이게 어떻게 사용되는 건지 모르겠어서 module을 사용하지 않고 하나의 tf 파일에 모든 리소스에 대한 코드를 전부 다 적었었다. 이렇게 하나의 tf 파일에 모든 리소스가 모이다 보니 리소스 수정을 하고싶을때 코드를 읽고 찾는 것이 너무 힘들었다. 그래서 조금이라도 가독성을 좋게 만들기 위해 여러 검색을 하던 도중 외국계 기술 블로거의 글을 보던 도중 테라폼 코드를 읽기 좋게 작성하려면 모듈화를 사용하라고 적혀있었고 이에 바로 모듈화를 적용시켜 보았다. 1. 테라폼의 모듈화란 무엇인가? 1-1. 테라폼의 모듈화란? 테라폼 모듈화(Modularizatio..
테라폼(Terraform) 사용 가이드 7: AutoScailingGroup과 LoadBalancer을 생성하고 연결하기
·
AWS/테라폼(Terraform)
이번 포스트에서는 테라폼으로 AutoScailing을 적용시켜 보자 📌 서론 Auto Scailing Group을 테라폼으로 사용하려면 어떻게 해야 할까? 이번 포스트를 통해 테라폼으로 ASG를 생성하고 로드 밸런서까지 연결시켜 보자 1. Auto Scailing Group이란? AWS Auto Scaling Group의 개념 AWS Auto Scaling Group (ASG)은 AWS 클라우드 환경에서 중요한 역할을 하는 서비스다. ASG를 이용하면 동일한 설정을 가진 EC2 인스턴스들을 그룹으로 묶어, 이들의 숫자를 자동으로 조절할 수 있다. 이는 애플리케이션의 부하에 따라 필요한 컴퓨팅 리소스를 유연하게 관리하는 데 도움을 준다. ASG의 작동 원리 ASG는 미리 정의된 조건에 따라 EC2 인스턴스..
테라폼(Terraform) 사용 가이드 6: 테라폼으로 IAM 정책 생성/관리하기
·
AWS/테라폼(Terraform)
이번 포스트는 테라폼으로 IAM정책 및 리소스를 관리하는 방법이다. 📌 서론 AWS EC2 인스턴스 생성과 함께 관련된 IAM 사용자 및 S3 버킷을 만들어보는 내용이며 S3 버킷에 대한 액세스를 허용하는 IAM 정책을 생성하고, 해당 정책을 새 IAM 사용자에게 연결하는 과정을 설명하도록 하겠다. 1. IAM 정책 리소스 검토 IAM 정책 리소스 코드 분석 아래의 코드는 Terraform을 사용하여 IAM 정책을 정의한다. 이 코드는 S3 버킷에 대한 권한을 정의하고 있다. resource "aws_iam_policy" "policy" { name = "${random_pet.pet_name.id}-policy" description = "My test policy" policy =
테라폼(Terraform) 사용 가이드 3: EC2 생성하기
·
AWS/테라폼(Terraform)
MacOS에서 테라폼을 사용하여 EC2 인스턴스를 생성해 보자 📌 Terraform 사용을 위한 전제조건 1. Terraform CLI (1.2.0 이상)가 설치되어 있어야 한다. 2. AWS CLI가 설치되어 있어야 한다. 3. AWS 계정 및 자격 증명 보유 (IAM 계정 생성 권장) 4. AWS CLI에서 aws configure 명령어로 환경변수를 설정한다. [Access key, Secret key] 특히 전제조건 중에 AWS CLI의 계정 연결은 매우 중요하니 꼭 수행하고 진행하도록 하자 1. 테라폼 main.tf 파일 구성 로컬 PC에 테라폼 전용 디렉토리(폴더) 생성 로컬 PC에 테라폼 작업을 진행할 디렉토리를 생성한다. mkdir terraform cd terraform 테라폼 코드가 담..
테라폼(Terraform) 사용 가이드 1: 테라폼이란?
·
AWS/테라폼(Terraform)
이번 포스트에서는 테라폼이 무엇인지 알아보자 📌 서론 MSA 프로젝트를 설계하면서 AWS 내부에 많은 서버와 DB를 띄우고 나니 매달 나오는 비용이 상당했다. 그래서 우리 팀은 필요할 때만 EC2를 생성해서 ECS클러스터와 RDS를 가동하면 돈을 아낄 수 있을 것이라고 생각했고 여러 가지 tool을 알아보던 도중 terraform을 찾아냈고 이를 적용시켰다. 그 내용을 공유하기 전에 테라폼이 무엇인지에 대해 먼저 알아보자 1. 테라폼이란 무엇인가? 테라폼이란? 테라폼(Terraform)은 HashiCorp가 개발한 오픈 소스 'Infrastructure as Code' 도구로, 클라우드 및 온프레미스 리소스의 구축, 변경, 버전 관리를 코드로 효과적으로 관리할 수 있게 한다. 테라폼은 HCL(Hashi..