본문 바로가기

클라우드/테라폼(Terraform)

(14)
테라폼 Terraform 입력 변수 # Terraform 입력 변수 Ansible과 다르게 Terraform은 변수를 정의하는것 따로, 그 변수에 값을 할당하는것이 따로이다. 변수만 정의하는게 있고, 변수값을 할당하는것이 따로있다. 리전 정보, AMI 이미지 등 정보를 Terraform 구성파일 자체에 하드 코딩하는 방식은 Terraform구성파일의 재사용성, 팀 형태의 공유, Git 등의 버전 제어에 적합하지 않다. 따라서 변경 가능한 구성을 변수화 하는것이 좋다. # 입력 변수 정의 variable 이라는 블록을 사용해서 변수를 정의한다. - "region" : 변수명 - type : 입력 변수 값의 유형, 지정하지 않으면 모든 형태 가능 (type = string이면 문자열만 가능) - default : 입력 변수의 기본값, 기본 값..
테라폼 Terraform 리소스 종속성 # Terraform 리소스 종속성 Terraform은 선언형이기 때문에 리소스에 종속성이 있으면 Terraform엔진이 파악을 한 후 순서대로 작업을 진행한다. # 암시적 종속성 : 눈으로 보이지 않는다. 예를들어 VCP를 사용하는 EC2 인스턴스를 선언하게 되면, 암시적으로 Terraform 엔진이 알아서 네트워크를 설정하고 그 네트워크를 사용하는 EC2인스턴스를 나중에 생성하게 된다. # 명시적 종속성 : 사용자가 명시적으로 선언해 줄 수 있다 . 예를들어 S3 버킷과 EC2인스턴스는 아무 관계가 없다. EC2 인스턴스 내부의 어플리케이션이 특정 S3 버킷에 있는 오브젝트에 접근해서 정보를 가져와야 한다면,암시적 종속성이 아니기 때문에 명시적으로 종속 선언을 해야한다. # 기존 구성 파일 수정 pr..
테라폼 Terraform 리소스 변경, 삭제 # Terraform 리소스 변경 # 이미지 변경 AMI 이미지 ID를 ami-0b329fb1f17558744로 변경한다 # 변경 사항 계획 -/+ 삭제하고 다시 만든다 replacement 교체 이미지만 변경 할 수 없기 때문에 , 기존 이미지를 제거하고 다시 만든다. # 변경 사항 적용 기존 인스턴스는 제거하고 새로운 인스턴스가 생성된다 # AWS 콘솔에서 확인 # terraform.tfstate 파일 확인 terraform.tfstate 파일로 현재 상태를 볼 수 있다. apply를 하게 되면 terraform.tfstate 텍스트 파일이 생성 되는데 절대 git에 push되지 않도록 주의한다. json형태의 데이터가 나오는데 apply를 했을 때 실제로 리소스가 만들어지고 상태가 저장된다. 리소스..
테라폼 Terraform 구성 파일 작성 , 배포 # Terraform 구성 파일 Terraform 으로 인프라를 정의하는데 사용하는 파일을 Terraform 구성 파일이라고 한다. # 파일 확장자 Terraform 구성 파일은 .tf 또는 JSON 기반의 Terraform 구성 파일인 .tf.json을 사용한다. # 텍스트 인코딩 구성파일은 UTF8 인코딩을 사용하며 Unix 스타일의 줄바꿈인 LF를 사용한다. 그러나 windows 스타일의 줄바꿈인 CRLF도 허용한다. 오픈소스ㄹ 작업 할 때 줄바꿈을 LF로 바꿔주는것을 권장한다. 대부분의 오픈소스, 컨테이너 기반은 Unix 위주여서 CRLF가 오류가나는 경우가 있다. # 디렉토리 Terraform은 현재 디렉토리에 있는 모든 .tf 파일을 읽는다. https://registry.terraform.i..
테라폼 Terraform 설치 , AWS CLIv2 설치 # AWS CLIv2 설치 AWS를 사용하기 위해 AWS인증을 해야한다. AWS 커멘드가 있어야한다. Terraform 이 AWS command의 인증 기능을 사용한다. # AWS 액세스 키 # unzip 설치 # AWS CLI 설치 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-linux.html Linux에서 AWS CLI 버전 2 설치, 업데이트 및 제거 - AWS Command Line Interface 결과에서 경고가 예상되지만 문제가 되지는 않습니다. 이 경고는 개인 PGP 키(보유한 경우)와 AWS CLI PGP 키 사이에 신뢰 체인이 없기 때문에 발생한 것입니다. 자세한 내용은 Web of trust를 참조하십 d..
테라폼 Terraform 이란? # Terraform 이란? Terraform은 HashiCop 사의 코드형 인프라 도구이다. 오픈소스이다. 주 기능이 구성관리(cm: configuration management)인Ansible와 달리, Terraform의 주 기능은 배포이다. 일부 구성관리의 기능도 있다. Terraform은 클라우드, 물리 시스템, VM, 네트워크장비, 컨테이너 등 인프라의 자동화 된 배포, 변경 및 관리를 제공한다. HashiCop 사의 가장 인기있는 제품이며 멀티클라우드, 하이브리드 클라우드에서 가장 많이 사용한다. AWS의 CloudFormation, GCP의 Deployment Manager등 각 클라우드 회사마다 클라우드에서 자사의 제품들을 IaC로 배포할 수 있는 기능이 있다. 이런 도구들은 자사의 제품만..