전체보기 (73) 썸네일형 리스트형 [Terraform] Terraform 상태관리 및 격리방안 이번에는 상태 관리 및 격리 방안에 대해서 알아보겠습니다. 테라폼 상태 관리 상태 파일은 배포할 때마다 변경되는 파일입니다. 프라이빗 API이기 때문에 Terraform 내부에서만 사용됩니다. 상태 파일은 Terraform 관련 명령어를 제외한 다른 것들로 편집하면 안됩니다. state 관련 파일은 terraform.tfstate에 기록이 됩니다. State는 대상 환경의 관리 Resource 판별 및 결과를 기록합니다. 또한, 테라폼 구성과 실제를 동기화 Resource마다 고유한 ID로 맵핑하고 Resource 종속성과 같은 메타데이터를 저장 및 추적을 하면서 프로비저닝 결과를 캐싱하는 역할을 해줍니다. Terrform을 팀 단위로 운영시 문제점 상태파일을 저장하는 공유 스토로지 사용 ex) s3 테.. [Terraform] Terraform 기본 사용법 조건문, 함수, Provisioners, moved, 시스템 변수 이번 시간에는 테라폼의 기본 사용법 중 조건문, terraform에서 제공하는 내장함수, 프로비저닝, moved 블록, 시스템 환경 변수에 대해서 알아보겠습니다. 조건문 테라폼에서의 조건식은 3항 연산자 형태를 갖습니다. 조건은 true 또는 false로 확인되는 모든 표현식을 사용할 수 있습니다. 타 언어의 조건식과 사용법은 동일합니다. # 3항 연산자 사용법 # ? : # Terraform 조건문 예시 var.a != "" ? var.a : "default-a" 함수 Terraform은 프로그래밍 언어적인 특성을 가지고 있습니다. 기본적으로 사용자 지정 함수는 사용할 수 없으나 Terraform에서 제공 해주는 내장 함수는 사용 할 수 있습니다. Numeric Functions, String Funt.. [Terraform] Terrafrom 사용법 반복문 이번 시간에는 반복문에 대해서 알아보겠습니다. Terrafrom의 반복문은 count, for_each. for, dynamic 이 있습니다. count count는 반복문, 정수 값만큼 리소스나 모듈을 생성합니다. 아래와 같이 count를 이용 할 수 있습니다. // 유저 목록을 변수로 선언 variable "user_names" { description = "Create IAM users with these names" type = list(string) default = ["test1", "test2", "test3"] } // provider는 aws로 설정 provider "aws" { region = "ap-northeast-2" } // count를 이용하여 변수에 선언한 유저 목록만큼 생성.. [Terraform] Terrafrom 기본 사용법 Local / Output 이번 시간에는 Local / Output 에 대해서 알아보겠습니다. Local ‘local’은 입력 변수와 달리 선언된 모듈 내에서만 접근 가능하고, 변수처럼 실행 시에 입력받을 수 없다. 로컬은 사용자가 테라폼 코드를 구현할 때 값이나 표현식을 반복적으로 사용할 수 있는 편의를 제공합니다. 하지만 빈번하게 여러 곳에서 사용되는 경우 실제 값에 대한 추적이 어려워져 유지 관리 측면에서 부담이 발생할 수 있으므로 주의가 필요합니다. variable "prefix" { default = "hello" } locals { name = "terraform" content = "${var.prefix} ${local.name}" my_info = { age = 20 region = "KR" } my_nums = .. [Terraform] Terrform 사용법 데이터소스 / 변수(Variable) 이번에는 데이터소스와 변수에 대해서 알아보겠습니다. 데이터소스 데이터소스는 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용합니다. 데이터소스의 구성은 아래와 같이 구성을 할 수 있습니다. 또한, data 로 시작하고 "데이터 소스 유형"을 정의합니다. # Terraform Code data "" "" { = } 참조하기 위해서는 data... 를 사용합니다. 예를 들면 아래와 같이 최신 AWS AMI 버전을 가져 온 후 ec2를 생성 합니다. // AWS AMI 최신 버전 가져오는 data soruce data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images.. [Terraform] Terraform 사용법 이번 시간 Terraform을 이용하여 AWS에 Ec2 실행하는법에 대해서 작성 하겠습니다. 먼저 AWS 에 가입이 되어 있다는 전제로 글을 작성 하겠습니다. 우선 IAM에서 새로운 계정을 만드시거나 Admin 계정을 이용하여 액세스키를 발급을 받아줍니다. 이때 발급 받은 액세스키는 다시 볼 수 없기 때문에 엑셀 파일을 저장하거나 키를 어딘가에 저장 해주시기를 바랍니다. AWS CLI 설치 및 Credentials 등록 brew install awscli aws configure aws configure list aws cli가 설치가 안되어 있다면 먼저 cli를 설치 해줍니다. 그 후에 aws configure 명령어를 입력하여 위에 발급 받은 액세스키와 시크릿키 그리고 해당 리전들을 입력해줍니다. 위.. [Terraform] 테라폼의 기본 개념 이번 시간에는 Terraform의 기본 개념들에 대해서 설명해보려고 합니다. Provisioning (프로비저닝) 어떤 프로세스나 서비스를 실행하기 위한 준비 단계를 프로비저닝이라고 이야기합니다. 프로비저닝에는 크게 네트워크나 컴퓨팅 자원을 준비하는 작업과 준비된 컴퓨팅 자원에 사이트 패키지나 애플리케이션 의존성을 준비하는 단계로 나뉘어집니다. 명확한 경계는 불분명하지만 테라폼은 전자를 주로 다루는 도구입니다. Provider (프로바이더) 테라폼과 외부 서비스를 연결해주는 기능을 하는 모듈입니다. 예를 들어 테라폼으로 AWS 서비스의 컴퓨팅 자원을 생성하기 위해서는 aws 프로바이더를 먼저 셋업해야합니다. 프로바이더로는 AWS, 구글 클라우드 플랫폼(Google Cloud Platform), 마이크로소.. [Terraform] 테라폼 설치 및 세팅 이번에 우연히 테라폼에 대해서 공부할 기회가 되어 블로그를 포스팅을 합니다. 먼저 필자는 MacBook을 사용하였습니다. 먼저 homebrew가 없으면 brew를 설치 합니다. 설치를 다 하였으면 homebrew를 통해 Terraform 설치 합니다. Terraform 설치 brew install terrform 설치가 잘 되었는지 확인을 위해 버전을 확인 해봅니다. terraform version 설치가 잘 되었으면 위와 같이 결과가 나옵니다. 또한, tfenv를 설치하여 terraform 원하는 버전을 설치 할 수 있습니다. 필자는 기존 terraform과 패키지 충돌이 일어나서 설치가 되지 않았습니다. 그래서 기존 terraform을 지우고 tfenv로 설치 하였습니다. brew uninstall .. 이전 1 2 3 4 5 ··· 10 다음