1. OpenTofu란?OpenTofu의 첫 등장은 2023년 8월입니다. Hashicorp가 전 제품을 BSL (Business Source License)로 변경을 발표하며, 테라폼의 상업적 사용에도 제동이 걸리게 되었습니다. 따라서 이에 반대하는 OpenTF 매니페스토에 참여한 온라인 커뮤니티와 각종 단체, 개인들에 의해서 개발된 IaC 도구입니다. 2023년 8월 첫 선을 보이고, 2023년 9월에 Linux Foundation의 프로젝트가 되어 CNCF에 가입되었습니다.그 출발이 테라폼의 상용화에 반한 내용이다 보니 그 목적과 사용법 역시 종전의 테라폼의 출발과 비슷하다 할 수 있습니다. 2. OpenTofu의 주요 기능인프라 프로비저닝 자동화OpenTofu는 클라우드 서비스, 네트워크, 가상 ..
DevOps/Terraform
안녕하세요, 이번 포스팅은 Karpenter on EKS Fargate 배포에 대해서 포스팅을 올립니다.CloudNet@의 테라폼 스터디 내용을 기반하고 있습니다. 오늘 사용할 Karpenter는 Kubernetes 클러스터 오토스케일러이고,EKS Fargate는 관리형 서버리스 컨테이너 실행 서비스입니다. 먼저 git clone 후 하기 디렉토리로 이동합니다. 1. git clonegit clone https://github.com/aws-ia/terraform-aws-eks-blueprintscd terraform-aws-eks-blueprints/patterns/karpenter tree 명령어를 수행하면 다음과 같이 확인됩니다. versions.tf는 다음과 같습니다. 2. versions.tf ..
안녕하세요, 이번 포스팅은 테라폼 모듈을 활용한 athena datacatalog 배포에 대해서 포스팅을 올립니다.CloudNet@의 테라폼 스터디 내용을 기반하고 있습니다. 트리├── main.tf├── modules│ └── ec2-instance│ ├── main.tf│ └── variables.tf└── terraform.tfstate 루트 모듈 정의 (main.tf)provider "aws" { region = "ap-northeast-2"}locals { ec2_instances = { jflip-test-01 = { instance_type = "t2.micro" ami_id = "ami-04ea5b2d3c8ceccf8" ..
안녕하세요, 이번 포스팅은 테라폼 모듈을 활용한 athena datacatalog 배포에 대해서 포스팅을 올립니다.CloudNet@의 테라폼 스터디 내용을 기반하고 있습니다. 본 포스팅에서는 데이터 카탈로그를 만들기 위해서 공식문서의 모듈을 나눴습니다. 트리트리는 다음과 같습니다.main.tfathena_data_catalog/├── aws_athena_data_catalog.tf└── variables.tf 루트 모듈 정의 (main.tf)module "athena_data_catalog" { source = "./athena_data_catalog" name = "athena-data-catalog" description = "Example Athena data catalo..
안녕하세요, 이번 포스팅은 테라폼을 활용한 IPAM 구현에 대해서 포스팅을 올립니다.Aws workshop ‘Managing Cloud Resources with Terraform ’를 기준으로 내용 정리하였으며, CloudNet@의 테라폼 스터디 내용을 기반하고 있습니다. 본 포스팅을 통해 Aws VPC IP Address Manager (IPAM)을 만들어보도록 하겠습니다. 순서는 다음과 같이,1. IPAM 배포2. IPAM Root Pool 배포3. IPAM Child Pool 배포4. us-east-1 리전에 VPC 배포5. us-east-2 리전에 VPC 배포대로 진행합니다. 설명Amazon VPC IP 주소 관리자(IPAM)는 AWS의 가상 프라이빗 클라우드(VPC) 환경에서 IP 주소를 효..
안녕하세요, 이번 포스팅은 테라폼 redshift 배포에 대해서 포스팅을 올립니다.‘테라폼으로 시작하는 IaC’를 기준으로 내용 정리하였으며, CloudNet@의 테라폼 스터디 내용을 기반으로 하고 있습니다. 오늘 제가 포스팅할 내용은 저희 회사에서도 다루고 있는 redshift 클러스터 배포에 대해서 다룹니다.테라폼을 활용해서 redshift 스냅샷 생성, 데이터 쉐어 생성 및 권한 부여 등등 작업을 진행했던 적이 있는데요, 커뮤니티 프로바이더가 아닌 aws 공식 프로바이더를 사용해서 redshift 클러스터를 배포해 보겠습니다.샘플 코드는 다음과 같습니다.코드provider "aws" { region = "ap-northeast-2"}resource "aws_redshift_cluster" "clu..
안녕하세요, 이번 포스팅은 테라폼 프로바이더와 리소스 배포에 대해서 포스팅을 올립니다.‘테라폼으로 시작하는 IaC’를 기준으로 내용 정리하였으며, CloudNet@의 테라폼 스터디 내용을 기반으로 하고 있습니다. 설명Terraform provider는 Terraform의 리소스 유형 정의를 구현하고 해당 리소스 유형에 대한 CRUD(Create, Read, Update, Delete) 작업을 구현하는 소프트웨어입니다. provider는 Terraform과 기본 인프라 간 가교 역할을 통해 Terraform이 리소스와 상호 작용할 수 있도록 하며, 프로바이더 없이는 어떠한 인프라나 서비스 역시 관리가 불가능합니다. 프로바이더에 대한 자세한 링크는 하기 링크를 참조하시기 바랍니다.https://regist..
안녕하세요, 이번 포스팅은 테라폼 내장 함수에 대해서 포스팅을 올립니다.‘테라폼으로 시작하는 IaC’를 기준으로 내용 정리하였으며, CloudNet@의 테라폼 스터디 내용을 기반으로 하고 있습니다.설명테라폼(Terraform)은 인프라를 코드로 관리할 수 있게 해주는 도구로, 다양한 내장 함수를 제공하여 코드에서 값의 유형을 조작하고 조합할 수 있습니다. 테라폼의 함수들은 프로그래밍 언어적 특성을 가지고 있어, 숫자, 문자열, 컬렉션, 파일 시스템 등 다양한 유형의 작업을 지원합니다. 내장 함수 외에는 사용자가 직접 정의한 함수를 지원하지 않으며, 테라폼 코드에서는 변수, 리소스 속성, 데이터 소스 속성, 출력 값 등을 효과적으로 다룰 수 있습니다. 이를 통해 코드를 동적으로 작성하고 관리할 수 있습니..