테라폼은 인프라스트럭처 관리도구임 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 = "./디랙터리경로"
}
'AWS' 카테고리의 다른 글
[테라폼] AWS ALB 어플리케이션 로드밸런싱과 HTTPS 리다이렉션 (0) | 2021.07.23 |
---|---|
[테라폼] terraform EC2 user_data 유저 데이터 사용법 (0) | 2021.07.21 |
[테라폼] terraform 우분투 간단 설치 (0) | 2021.07.20 |
AWS에서 정적 웹 사이트 호스팅 만들기 (0) | 2020.09.20 |
AWS에서 웹 애플리케이션 배포하기 (0) | 2020.09.20 |