t1014 5

OpenTofu 와 Atlantis 연동하기

OverviewOpenTofu을 이해하고, Terraform Runner인 Atlantis와 연동하여 구성 동작을 확인하겠습니다.OpenTofu ?OpenTofu의 배경은 Terraform의 라이센스 변경과 관련이 있습니다. Terraform은 오랫동안 오픈 소스로 제공되었으나, 2023년 8월에 HashiCorp가 Terraform을 포함한 여러 제품의 라이센스를 변경하면서 더 제한적인 Business Source License(BSL)를 도입했습니다. BSL 도입에 따라 Terraform을 서비스 형태로 제공하거나, 상업적 목적으로 대규모로 사용하는 경우 라이센스 비용을 지불해야 합니다.(출처: GeekNews) 이에 따라 오픈소스 진영에서는 Terraform을 포크하여 만든 도구로 OpenTofu를..

Cloud Tech 2024.08.03

Kafka on EKS

OverviewAmazon EKS에 Apache Kafka를 배포하고, 여러 운영 시나리오를 실습하겠습니다. 해당 글은 AWS 공식문서를 참고하였습니다. Kafka on EKSApache Kafka는 이벤트 기반 아키텍처를 가진 분산 스트리밍 플랫폼입니다. Kafka는 수평 확장 가능하고, 내결함성이 있으며, 성능이 뛰어납니다. 내결함성 : 메세지를 생산하는 Producer와 메세지를 소비하는 Consumer를 분리하여 서로의 영향도 없이 메세지를 비동기적으로 통신할 수 있습니다.수평 확장 : Kafka는 Broker를 통해 메세지를 처리합니다. 메세지 양에 따라 Broker를 확장하여 많은 메세지를 처리할 수 있습니다.다만, Kafka 클러스터를 수동으로 관리하고 확장이 어렵고, 시간이 많이 걸릴 수 ..

Cloud Tech 2024.07.27

EKS에서 Atlantis 구성하기

Overview오픈소스 Terraform Runner 툴인 Atlantis를 이해하고, EKS 환경에서 구성하겠습니다. AtlantisAtlantis는 Terraform 기반 인프라 코드 변경을 관리하는 자동화 도구로,GitHub, GitLab, Bitbucket 등과 통합되어 PR(Pull Request) 이벤트를 통해 plan 및 apply 명령을 실행합니다.Terraform Cloud와 비교하여 Atlantis는 테라폼 부가 기능이 없지만,비용이 무료이며 자체 호스팅할 수 있다는 장점이 있습니다.아틀란티스 아키텍처는 다음과 같습니다.VCS Controller(코드 관리 시스템 컨트롤러)에서 코드 관리 툴의 Comment, PR 이벤트를 핸들링하여 테라폼 명령어을 수행합니다. 관련 내용Runner에서..

Cloud Tech 2024.07.14

테라폼 모듈을 활용한 Cloudwatch 알람 자동화(심화)

Overview알람 자동화 함수에 대상 AWS 서비스를 추가하고 스케쥴러를 설정하겠습니다.인프라 엔지니어가 내부 원리 및 테라폼과 관계없이 AWS 콘솔에서 태그만 설정하면 자동으로 알람이 설정하도록 구성하였습니다.1. 람다 함수 트리거 설정CloudWatchAutoAlarms 은 대상 자원이 생성/삭제되었을 때만 트리거가 호출됩니다. 인스턴스 자원이 이미 생성되어 있는 경우에는 알람 자동화 설정 대상에 제외되며 추가 설정이 필요합니다. 이에 람다 함수 트리거를 설정하여 스케쥴러를 설정하여 람다 함수가 호출되도록 설정하겠습니다.람다 함수 트리거 종류스케쥴러의 경우 예약 표현식에서 설정이 가능합니다.# 1분마다 트리거 호출 rate(1 minute) # 일일마다 트리거 호출 # cron(Minutes Hou..

Cloud Tech 2024.06.29

Terraform 내부 로직 이해

Overview Terraform 내부 로직을 이해하기 위해 학습한 내용을 공유합니다. TerraformTerraform(이하 테라폼)은 코드형 인프라스트럭처(IaC) 도구입니다. 코드를 통해 인프라를 구성하고 관리하는데 사용됩니다. 테라폼 아키텍처는 다음과 같습니다.Terraform Core : 테라폼 파일(.tf)를 구문 분석하고 실행 계획을 생성하며 리소스의 현재 상태(.tfstate)를 관리합니다.Plugins : Terraform과 클라우드 제공업체, SaaS 제공업체, 그리고 기타 API 서비스 간의 상호작용을 담당합니다.Upstream API: 클라우드 제공업체의 API 로, 테라폼이 리소스를 관리하기 위해 호출하는 API 입니다.사용자가 정의한 테라폼 파일(.tf)을 통해 인프라의 상태를 ..

Cloud Tech 2024.06.15