일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MongoDB
- SSA
- 채팅
- S3
- AWS
- flask
- 카톡
- 튜플
- Vue
- RDS
- TypeScript
- git
- 중급파이썬
- async
- crud
- Props
- dict
- NeXT
- pandas
- docker
- SAA
- Class
- merge
- node
- socket io
- wetube
- lambda
- 파이썬
- react
- EC2
- Today
- Total
초보 개발자
Terraform EC2생성 본문
실습해보기
아래와 같은 정말 간단한 아키텍트를 테라폼을 사용해서 구축해보자.
테라폼에서는 폴더에.tf라는 확장자파일을 하나이상 작성하고 그 안에 HCL형식의 소스코드를 작성한다.
그 후 커맨드를 실행하면 된다.
프로바이더 설정
테라폼은 AWS외에도 GCP, Azure등 다른 클라우드 밴더들에도 대응을 할 수 있다. 이에 따라 각 플랫폼에 맞는 프로바이더를 사용해야한다. AWS의 경우에는 AWS Provider을 사용해야한다.
테라폼이 설치되어있는 폴더에
provider.tf 라는 파일을 하나 생성해준다. 이 후 아래와 같이 파일을 작성해준다.
구글에 terraform aws provider라고 검색하면 기본적인 폼을 제공해준다.
main.tf
resource 라는 문법이 있는데, 이건 생성할 때 사용하는 문법이다.
첫 번째 블록에는 생성할 서비스를 적고
두 번째 블록에는 코드상에서 부를 라벨(변수)을 적는 것이다.
같은 서비스 안에서는 동일한 라벨을 가질 수 없지만,
다른 서비스에서는 동일한 라벨을 가질 수 있다.
아래와 같이 작성을 해준뒤
아래의 커맨드를 입력해주면
terraform fmt
이렇게 포맷을 맞춰서 깔끔하게 정리해준다.
Terraform 기본 커맨드 (init, plan, appy, destory)
init : 현재 위치한 디렉토리에서 테라폼 정보를 가져오며 테라폼을 사용할 준비, provider, module, state 등의 설정을 진행합니다.
plan : 테라폼이 구축하는 인프라를 확인. 적용시켰을 때의 예측 결과를 보여준다.
appy : 테라폼에서 인프라를 구축, 실제로 적용시키는 명령어이다.
destroy : 테라폼에서 구축한 인프라를 삭제
terraform init
terraform plan
terraform apply
yes
이렇게 잘 만들어 진 것을 확인할 수 있으며,
terraform destroy
yes
이 명령어를 사용하면 생성한 내용들을 지울 수도 있다.
모듈
테라폼의 소스코드는 특정 디렉토리에 .tf확장자에서 HCL형식으로 기술한다.
.tf.json이라는 확장자를 사용하면 json형식으로도 가능하다.
여러 tf파일이 들어있는 디렉토리를 모듈이라고 한다.
리소스
.tf파일에서 가장 중요한 것이 리소스이다. 리소스는 ec2나 vpc등 테라폼에서 구축하는 대상의 하나 하나를 말한다.
테라폼의 소스코드에서 리소스 이외에도 여러가지 요소가 있다.
locals, data, variable, output
디렉토리 단위의 모듈로 관리하고, 이 안에서 여러가지 리소스를 생성하는 것이 핵심인 것을 이해하자.
시큐리티 그룹 작성
테라폼에서 모든 커맨드를 다 외울 수는 없다. 테라폼 도큐먼트를 참고하여 작성하자.
https://registry.terraform.io/providers/hashicorp/aws/4.54.0/docs/resources/security_group#id
이렇게 테스트 시큐리티 그룹을 생성하고 잘 만들어지는지 확인까지해보자.
Terraform resource (1/2) (velog.io)