본문 바로가기

반응형

♻ Terraform(테라폼)

(39)
Terraform Output 이란? # Terraform Output - Terraform Output이란? 자바에서 java system.out.println 를 활용하여 리소스값을 화면에 출력하여 확인하는것처럼 테라폼에서도 리소스 값을 화면에 출력하여 확인하는 방법이 있다. - 테라폼에서의 변수는 입력변수와 출력변수로 나눌수 있는데 입력변수는 variable.tf에 정의하고 출력변수는 output.tf에 정의한다. - 리소스를 정의하고 콘솔 창에서 확인하는 방법으로 주로 output을 활용한다. 내가 정의한 리소스 의 실제 값이 어떤값을 부여 받았는지 확인하는 방법이 될 것이고, 두번째는 output을 활용하지 않으면 설정한 리소스 값을 모두 콘솔에서 직접 확인해 봐야한다는 불편함이 존재한다. 추가로 output은 테라폼 모듈이 실행되..
Terraform Variable (변수를 활용한 인프라 생성) # 테라폼에서 변수를 활용한 인프라 생성 - 변수를 활용한 인프라 생성은 재사용 측면에서 유용하다. 변수값만 변경하여 새로운 리소스 환경을 생성할 수 있다. - 일단 파일의 구성은 아래와 같다. (main.tf, output.tf, vars.tf) - 생성할 테라폼 main.tf 코드는 아래와 같다. provider "aws" { region = "ap-northeast-2" } resource "aws_instance" "example" { ami = "ami-0eddbd81024d3fbdd" instance_type = "t2.micro" vpc_security_group_ids = ["${aws_security_group.instance.id}"] user_data =
Terraform module을 활용 방법 설명 # Terraform modules 관련 사이트 https://registry.terraform.io/modules/terraform-aws-modules/security-group/aws/latest/submodules/http-80 Terraform Registry registry.terraform.io 1. 모듈의 사용방법 - 테라폼의 모듈을 잘 설명한 그림은 아래와 같다. - 아래의 그림처럼 모듈은 재사용성을 극대화 시킨 사용방법이다. 2. 모듈의 사용방법 가장 중요한 결론! 가장 중요한 결론은 위의 그림에서도 설명했 듯이 input 값과 output 값이라고 볼 수 있다. input 값은 Root 모듈의 입력 변수로 선언되고, 해당 변수를 받는 곳은 자식 모듈의 var.리소스 값으로 선언되어 있..
Terraform 변수 사용 # Terraform 변수 사용에 대해서 알아본다. - 변수의 기본 사용법은 아래와 같다. - 기본적으로 아래의 코드에서 var로 선언된 부분은 해당 폴더안에 vars.tf 라는 파일이 존재해야 하고, 해당 파일안에 해당 변수를 나타내는 내용이 있어야 한다. # 기본 문법 Name = "${var.변수명}" # 사용 예시 tags = { Name = "${var.alltag}-rtb-public" } - 기본적인 폴더 및 파일의 구조를 보면 아래와 같다. 예를들어 vpc라는 폴더안에 main.tf 파일과 vars.tf 파일이 존재한다고 가정하면, main.tf파일은 리소스 변수를 선언하고 실행한다. vars.tf는 해당 변수를 외부 모듈로 부터 받을수 있도록 선언되어 있다. 설명이 좀 부족한데 아래의 코..
Terraform 병렬처리 (parallelism) # Terraform parallelism 처리옵션을 사용하여 빠르게 처리한다. - Terraform을 활용하여 인프라 자원을 생성 시 인프라의 크기가 클 경우 생성 및 변경하는데 시간이 오래 걸린다. 그래서 terraform apply를 할때 옵션으로 parallelism 즉 병렬처리를 할 수 있는 옵션을 제공한다. 명령어는 아래와 같다. terraform apply -parallelism=n # 30개의 병렬처리 수행 terraform apply -parallelism=30 - 그외 다양한 옵션은 차근차근 하나씩 알아보자.
Terrafrom Provisioner 란? # 사용 목적 Terraform을 활용하여 인프라를 구성 시 여러가지 추가 작업이 필요하다. 가장 많이 하는 작업은 shellscript를 통한 application의 설치와 기타 설정 작업 들일 것이다. terraform의 작업을 고도화 하기위해서는 외부에 설정된 파일의 사용은 거의 필수 이므로 해당 내용에대한 Case-Study가 필요하다. # Terraform Provisioner에 대해 알아보고, 간단한 사용법 확인 테라폼 프로비저너(provisioner)는 테라폼을 실행할 때 여러가지 추가 작업을 위해 로컬 시스템이나 원격 시스템에서 스크립트를 실행하는데 사용된다. 여기서 로컬 시스템에서 스크립트를 실행하는 local-exec , 원격 리소스에서 스크립트를 실행하는 remote-exec, 원격 ..
Terraform Provisioner 를 활용한 ShellScript 실행 # Terraform Provisioner 를 활용한 ShellScript 실행하기 Terraform을 활용하여 인프라를 만들다보면 여러가지 패키지를 설치할 필요가 있다. 예를들어 ec2 인스턴스를 생성하면서 아파치 웹서버를 동시에 설치하고, 해당 index.html 파일에 특정 문자를 넣고 웹 서비스를 실행할때, 아래와 같은 스크립트가 필요할 것이다. #!/bin/bash sudo yum install -y httpd touch /var/www/html/index.html sudo su - echo "zzanggu의 DB서버 테스트 중..." > /var/www/html/index.html exit sudo systemctl start httpd sudo systemctl enable httpd - 위..
Terraform을 활용한 인프라 설계 01 # 일단 EC2를 생성하기 위한 기본적인 인프라를 설계한다. 필수 인프라 요소 4가지가 핵심이다. 1. VPC 2. Subnet (Private, Public) 3. Gateway (Internet-GW, NAT-GW) 4. Routing Table (Public, Private) # 기본 아키텍처 구조는 아래와 같다. - 비용을 절약하기 위해 NAT-GW를 1개만 생성 했다... # Ver_02

728x90
반응형