AWS

[테라폼] terraform 기본 개념

나뭇빛자루 2021. 7. 20. 11:41
반응형

테라폼은 인프라스트럭처 관리도구임 IaC를 지향하고 있어

GUI나 웹콘솔을 사용해 서비스 실행에 필요한 리소스를 관리하는 대신

필요한 리소스들의 선언적인 코드로 작성해 관리할 수 있도록함

 

테라폼의 기본 개념

-       프로비저닝 : 어떤 ps나 서비스를 실행하기 위한 준비단계

-       프로바이더: 테라폼과 외부 서비스를 연결해주는 기능을 하는 모듈

                        테라폼 AWS 서비스의 컴퓨팅 자원을생성하기 위해서는 aws 프로바이더 셋업이 먼저필요함

-       리소스 : 프로바이더가 제공해주는 조작 가능한 대상의 최소 단위

-       HCL : 테라폼에서 사용하는 언어임 확장자는 .tf 라고 저장

-       Plan: .tf 파일의 내용을 실제로 적용 가능한지 확인하는 작업

-       Apply : 테라폼 프로젝트 디렉터리 아래의 .tf 파일내용대로 리로스를 생성 수정 삭제하는 것을 적용

 

아마존 웹 서비스 설정

테라폼은 IaC 리소스를 선언할 수 있는 도구로서 다양한 서비스를 지원(AWS,에져,GCP)

 

시작하기..

 

인증테라폼엔

provider "aws" {

  access_key = "<AWS_ACCESS_KEY>"

  secret_key = "<AWS_SECRET_KEY>"

  region = "ap-northeast-2"

}

와 같이 생성해둔 IAM의 정보들과 기전에 대한 정보를 입력해준다.

provider 의 선언은  provider "<PROVIDER_NAME>" 이란 형식을 갖는다.

선언문에 중괄호 블록이 따라올 수 있고 프로바이더에서 사용가능한 하나 이상의 속성들을 지정할 수 있음

아래는 선언에 예시와 같다.

provider "<PROVIDER_NAME>" {

<ATTR_NAME> = "<ATTR_VALUE>"

}

테라폼 문서에 aws 프로바이더를 정리해두었다.

https://registry.terraform.io/providers/hashicorp/aws/latest/docs#argument-reference

 

사실 이런식으로 관리하는건 보안상 위협이 되기 때문에 환경변수로 정의하는 방법을 사용할 수 있다.

export AWS_ACCESS_KEY_ID="<AWS_ACCESS_KEY_ID>"         # access_key

export AWS_SECRET_ACCESS_KEY="<AWS_SECRET_ACCESS_KEY>" # secret_key

export AWS_DEFAULT_REGION="ap-northeast-2"             # region

 

이후 해당 디렉터리에서  테라폼을 초기화 시켜준다.

# terraform init

대충 이런 화면이 뜨면 됨

 

 

특히 그 테라폼 파일중에 provider이 포함 되어야하며

module을 통해서 원하는 디랙토리에 위치한 테라폼 파일들을 사용할 수가 있다.

 

module "이름" {

  source = "./디랙터리경로"

}

 

 

반응형