Search
Duplicate
📒

[Terraform] 02-x. 기본개념

상태
완료
수업
Terraform
주제
기본개념
4 more properties
참고

기본개념

SSH

NOTE
Secure Shell Protocol
네트워크 프로토콜 중 하나로 클라이언트서버가 인터넷과 같은 통신을 할 떄, 보안적으로 안전하게 통신하기 위해 사용
보통 Password 인증과 RSA 공개키 암호화 방식으로 연결한다.
chmod 600 semsekey.pem ssh -i semsekey.pem ec2-user@[ec2 public ip]
Bash
복사
netstat -lntp ps -ef | grep ssh ssh-add semsekey.pem
Bash
복사
기타 참고용 명령어

Terraform 기본구성 요소

NOTE

provioder

provider "aws" { region = "ap-northeast-2" version = "~> 3.0" }
Bash
복사
Terraform으로 생성할 Infra의 종류
AWS resource를 다루기 위한 파일들을 다운로드 하는 역할을 한다.

resource

resource "aws_vpc" "example" { cidr_block = "10.0.0.0/16" # cidr_block 외에도 수많은 인자가 존재한다 }
Bash
복사
AWS VPC를 생성하는 코드
Terraform으로 실제로 생성할 인프라 자원
원하는 형태로 파일 이름을 사용한다.

state

{ "version": 4, "terraform_version": "0.12.24", "serial": 3, "lineage": "3c77xxxx-2de4-7736-1447-038974a3c187", "outputs": {}, "resources": [ {...}, {...} ] }
Bash
복사
Terraform을 통해 생성한 자원의 상태(terraform.tfstate 파일명)
현재 인프라의 상태를 나타내는건 아니다!
Terraform 명령어를 사용해서 생성한 resource들의 결과물, 실제 인프라 상태가 아님!
state파일과 현재 인프라의 상태를 동일하게 유지하는것이 중요하다!
state는 원격 저장소의 backend에 저장될 수 있다.

output

resource "aws_vpc" "default" { cidr_block = "10.0.0.0/16" # cidr_block 외에도 수많은 인자가 존재한다 } output "vpc_id" { value = aws_vpc.default.id } output "cidr_block" { value = aws_vpc.default.cidr_block }
Bash
복사
vpc id 나 cidr값을 참조해서 vpc_id 라는 변수를 state 파일로 저장하는 것
Terraform으로 만든 자원을 변수 형태로 state파일에 저장하는 것

backend

terraform 상태를 저장할 공간을 지정하는 부분
생성된 output, 즉 variable로 생성된 state file을 저장하는 공간
backend를 사용하면 현재 배포된 최신 상태를 외부에 저장하기 때문에 협업이 가능해진다.

module

module "vpc" { source = ":./_modulesvpc" cidr_block = "1.0.0.0/16" }
Bash
복사
공통적으로 활용할 수 있는 code를 말 그대로 module 형태로 정의하는 것
재사용하는데 강점이 있음!
일종의 함수라고 생각
여러 terraform code를 변수만 바꾸어서 하나의 module로 생성하는 것을 의미한다.