0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · 강의

Terraform 및 GitHub Actions를 활용한 IaC

인프라를 프로비저닝하고 관리하도록 Terraform을 GitHub Actions 워크플로에 통합하는 방법을 이해합니다.

Terraform 및 GitHub Actions를 활용한 IaC은(는) CoddyKit의 무료 CI/CD with GitHub Actions & DevOps Pipelines 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 CI/CD with GitHub Actions & DevOps Pipelines 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.

코드형 인프라(IaC)

환영합니다! 이 레슨에서는 코드형 인프라(IaC)를 자세히 살펴보겠습니다. 이 접근 방식은 수동 작업 대신 코드를 사용하여 인프라(예: 서버, 데이터베이스, 네트워크)를 관리하고 준비하는 것을 의미합니다.

인프라를 위한 소프트웨어를 작성한다고 생각해 보십시오. 이를 통해 전체 설정에서 일관성, 반복 가능성, 버전 관리와 같은 여러 이점을 얻을 수 있습니다.

IaC를 위한 Terraform 알아보기

IaC에 가장 널리 사용되는 도구 중 하나는 HashiCorp가 개발한 오픈 소스 도구인 Terraform입니다.

Terraform을 사용하면 사람이 읽기 쉬운 구성 파일로 인프라 리소스를 정의할 수 있습니다. 그런 다음 이러한 파일을 사용하여 AWS, Azure, GCP와 같은 다양한 클라우드 공급자 및 기타 서비스에서 리소스를 준비하고 관리합니다.

Terraform의 HCL 문법

Terraform은 HashiCorp 구성 언어(HCL)라는 자체 선언형 언어를 사용합니다. HCL은 사람이 읽고 작성하기 쉽도록 설계되어 인프라 정의를 명확하게 표현할 수 있습니다.

다음은 AWS VPC(가상 사설 클라우드)를 정의하는 간단한 HCL 예제입니다.

resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "my-vpc"
  }
}

Terraform 핵심 워크플로

Terraform은 인프라를 관리하기 위해 일관된 3단계 워크플로를 따릅니다.

  • terraform init: 작업 디렉터리를 초기화하고 필요한 공급자 플러그인을 다운로드합니다.
  • terraform plan: 실행 계획을 생성하여 Terraform이 인프라에 적용할 변경 사항을 보여 줍니다.
  • terraform apply: 계획에 명시된 변경 사항을 실행하여 리소스를 생성하거나 수정합니다.

GitHub Actions로 자동화

Terraform을 GitHub Actions와 통합하면 IaC 전략을 크게 강화할 수 있습니다. 이를 통해 인프라 배포 파이프라인의 핵심 단계를 자동화할 수 있습니다.

GitHub Actions를 사용하면 다음을 수행할 수 있습니다.

  • 모든 풀 리퀘스트에서 terraform plan을 자동으로 실행합니다.
  • 인프라 변경 사항을 검토하고 승인하도록 합니다.
  • 제어된 배포를 위해 terraform apply를 자동화합니다.

Terraform 워크플로 파일

Terraform용 GitHub Actions 워크플로는 저장소의 .github/workflows/ 디렉터리에 있는 YAML 파일에 정의됩니다. 이 파일은 워크플로가 실행되는 시점과 수행하는 단계를 지정합니다.

다음은 변경 사항을 계획할 수 있는 워크플로의 기본 구조입니다.

name: 'Terraform CI'
on: 
  pull_request:
    branches:
      - main
jobs:
  terraform:
    name: 'Terraform'
    runs-on: ubuntu-latest
    steps:
      # Your workflow steps will go here

Terraform 설정 및 초기화 단계

Terraform 명령을 실행하기 전에 워크플로에서 코드를 가져오고 Terraform CLI를 설정한 다음 작업 디렉터리를 초기화해야 합니다.

hashicorp/setup-terraform 액션을 사용하면 이 작업을 쉽게 수행할 수 있습니다.

- name: Checkout Code
  uses: actions/checkout@v4

- name: Setup Terraform
  uses: hashicorp/setup-terraform@v2
  with:
    terraform_version: 1.5.x

- name: Terraform Init
  run: terraform init

Terraform 계획 단계

terraform plan 명령은 모든 IaC 워크플로에서 중요한 단계입니다. 이 명령은 구성 파일에 정의된 원하는 상태를 달성하는 데 필요한 작업을 확인하기 위해 '시험 실행'을 수행합니다.

이 단계를 통해 클라우드 환경이 실제로 수정되기 전에 제안된 변경 사항을 검토할 수 있습니다.

- name: Terraform Plan
  run: terraform plan
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

빠른 확인: Terraform 계획

자동화된 워크플로에서 Terraform을 효과적으로 사용하려면 핵심 명령을 이해하는 것이 중요합니다.

Terraform 적용 시 고려 사항

terraform apply 명령은 인프라에 실제 변경 사항을 적용하는 단계입니다.

자동화된 파이프라인에서는 일반적으로 사람이 plan 출력을 검토한 후에만 terraform apply를 실행하거나, 특정 브랜치(예: main 또는 production)에 병합할 때만 실행합니다. 이렇게 하면 실수로 인프라가 변경되거나 승인되지 않은 변경이 적용되는 것을 방지할 수 있습니다.

Terraform 및 Actions를 활용한 IaC 복습

이 레슨에서는 코드형 인프라(IaC)가 코드를 사용하여 인프라를 관리하는 데 어떻게 도움이 되는지 살펴보았습니다. IaC를 대표하는 도구인 Terraform에 중점을 두고, HCL 문법과 핵심적인 초기화, 계획, 적용 워크플로를 학습했습니다.

또한 GitHub Actions를 사용하여 terraform init 및 terraform plan 단계를 자동화하고, 인프라 배포를 더 안전하고 일관되게 만들면서 CI/CD 파이프라인에 완전히 통합하는 방법도 살펴보았습니다.

자주 묻는 질문

“Terraform 및 GitHub Actions를 활용한 IaC” 강의는 무료인가요?

네 — “Terraform 및 GitHub Actions를 활용한 IaC” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 CI/CD with GitHub Actions & DevOps Pipelines 강의 전체를 잠금 해제할 수 있습니다. CI/CD with GitHub Actions & DevOps Pipelines 강의에는 총 4개의 강의가 포함되어 있습니다.

“Terraform 및 GitHub Actions를 활용한 IaC”에서 뭘 배우나요?

인프라를 프로비저닝하고 관리하도록 Terraform을 GitHub Actions 워크플로에 통합하는 방법을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 CI/CD with GitHub Actions & DevOps Pipelines을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

CI/CD with GitHub Actions & DevOps Pipelines을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 CI/CD with GitHub Actions & DevOps Pipelines은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“Terraform 및 GitHub Actions를 활용한 IaC” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 CI/CD with GitHub Actions & DevOps Pipelines 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 CI/CD with GitHub Actions & DevOps Pipelines 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Terraform 및 GitHub Actions를 활용한 IaC
  2. 클라우드 리소스 관리
  3. 인프라 업데이트 자동화
  4. Terraform 상태 및 원격 백엔드 관리
← CI/CD with GitHub Actions & DevOps Pipelines(으)로 돌아가기