Terraform이란
Terraform은 인프라를 코드로 관리할 수 있게 해주는 도구이다.
서버, 네트워크, 데이터베이스, 보안 그룹 같은 인프라 자원을 직접 콘솔에서 클릭해서 만드는 것이 아니라, 코드로 작성해서 생성하고 관리할 수 있다.
이런 방식을 IAC라고 한다.
IaC는 Infrastructure as Code의 약자이고 한국어로는 코드형 인프라라고 볼 수 있다.
기존 방식의 문제점
예를 들어 AWS EC2 서버를 만든다고 하면 보통은 AWS 콘솔에 들어가서 직접 설정을 선택한다.
인스턴스 타입을 고르고, 키 페어를 선택하고, 보안 그룹을 만들고, 포트를 열고, VPC나 서브넷을 설정한다.
처음 한 번은 괜찮지만 서버가 여러 개가 되거나, 같은 환경을 다시 만들어야 할 때 문제가 생긴다.
어떤 설정으로 만들었는지 기억하기 어렵고, 사람이 직접 설정하다 보면 실수도 생길 수 있다.
Terraform을 사용하면
erraform을 사용하면 이런 인프라 설정을 코드로 작성할 수 있다.
예를 들어 다음과 같은 내용을 코드로 작성할 수 있다.
resource "aws_instance" "app_server" {
ami = "ami-xxxxxx"
instance_type = "t2.micro"
}
이 코드는 AWS EC2 인스턴스를 만들겠다는 의미이다.
즉, Terraform 파일을 작성하고 실행하면 코드에 적힌 내용대로 인프라가 생성된다.
Terraform과 GitHub Actions의 차이
Terraform은 서버나 네트워크 같은 인프라를 만드는 도구이다.
GitHub Actions는 빌드, 테스트, 배포 같은 작업을 자동화하는 도구이다.
즉, 둘의 역할은 다르다.
Terraform은 “서버를 만든다”에 가깝고, GitHub Actions는 “코드를 서버에 배포한다”에 가깝다.
그래서 실제 프로젝트에서는 Terraform으로 EC2, 보안 그룹 같은 인프라를 만들고, GitHub Actions로 애플리케이션을 배포하는 식으로 함께 사용할 수 있다.
'Study' 카테고리의 다른 글
| Terraform을 사용하는 이유 (0) | 2026.05.13 |
|---|---|
| Jenkins 개념 정리 (0) | 2026.05.11 |
| 로그 레벨 (0) | 2026.05.10 |
| 로그 찍기의 중요성 (0) | 2026.05.09 |
| Redis로 분산락 거는 방법 (0) | 2026.05.07 |