Ssoon

AWS EKS - Terraform - 2 본문

AWS EKS Workshop Study 2기

AWS EKS - Terraform - 2

구구달스 2024. 4. 26. 16:06

EKS 클러스터 배포

  • 코드소스 가져오기

  • eks.tf

💠 데이터 소스 설정

  • 이 부분은 현재 AWS 호출자의 식별 정보를 가져오는 데이터 소스를 정의합니다. 이것은 후에 IAM 권한 관련 작업에 사용됩니다.

Terraform 데이터 소스

  • 외부 소스에서 데이터를 가져오고 Terraform 구성에 사용할 수 있게 해주는 기능입니다.
  • 이것은 AWS, Azure, Google Cloud Platform 및 다른 클라우드 제공자와 같은 인프라 공급자와 함께 작동하며, API 엔드포인트, 외부 서비스의 데이터베이스 또는 사용자 정의 스크립트와 같은 다양한 소스에서 데이터를 가져올 수 있습니다.
  • 데이터 소스를 사용하면 Terraform이 관리하는 인프라 외부의 정보를 활용하여 구성을 동적으로 조정할 수 있습니다.
data "provider_name_data_source_name" "resource_name" {
  # 속성 및 설정
}
  • provider_name: 데이터 소스를 제공하는 공급자(provider)의 이름입니다. 예를 들어, AWS의 경우 aws, Azure의 경우 azurerm입니다.
  • data_source_name: 데이터 소스의 유형을 나타내는 이름입니다. 이는 공급자(provider)에서 제공하는 특정 데이터 소스의 이름입니다. 예를 들어, AWS의 경우 EC2 인스턴스 정보를 가져오기 위해 aws_instance 데이터 소스를 사용할 수 있습니다.
  • resource_name: 데이터 소스의 이름을 정의합니다. 이것은 Terraform에서 사용하는 리소스의 이름으로, 해당 데이터 소스를 참조할 때 사용됩니다.

💠 AWS IAM 정책 및 정책 첨부 설정

 

  • 이 부분은 ExternalDNS가 Route 53 레코드를 수정할 수 있도록 허용하는 IAM 정책을 생성하고, EKS 노드 그룹 역할에 해당 정책을 첨부합니다.

💠 보안 그룹 설정

  • 이 부분은 EKS 노드 그룹을 위한 보안 그룹을 생성합니다.

💠 EKS 클러스터 모듈 설정

  • 이 부분은 Terraform AWS 모듈 레지스트리에서 가져온 EKS 클러스터 모듈을 사용하여 EKS 클러스터를 생성합니다. 이 모듈은 EKS 클러스터 및 관련된 자원을 관리합니다.

 

Terraform 모듈

  • Terraform 구성을 논리적으로 그룹화하고 재사용 가능한 단위로 패키지화하는 기능입니다.
  • 모듈은 특정 작업 또는 기능을 수행하는 Terraform 코드의 모음이며, 이러한 모듈을 사용하여 Terraform 코드를 조직화하고 관리할 수 있습니다.

모듈의 구성 요소:

  1. 소스 코드: 모듈은 Terraform 코드로 작성되며, 일반적으로 .tf 확장자를 가진 파일에 저장됩니다. 이 코드는 Terraform 프로바이더를 사용하여 리소스를 정의하고 구성합니다.
  2. 입력 변수: 모듈은 외부에서 사용자로부터 입력을 받을 수 있도록 설계됩니다. 이를 위해 입력 변수를 정의하고 이를 통해 모듈의 동작을 제어하거나 구성을 사용자 지정할 수 있습니다.
  3. 출력 변수: 모듈은 외부에서 접근할 수 있는 출력 값을 제공할 수 있습니다. 이를 통해 모듈이 생성하는 리소스의 정보를 다른 모듈이나 Terraform 구성에서 사용할 수 있습니다.
  4. 지역 값: 모듈 내에서 재사용 가능한 값을 정의할 수 있습니다. 이러한 값들은 모듈 내부에서만 사용되며 외부에 노출되지 않습니다.

모듈 사용의 장점:

  1. 재사용성: 모듈을 사용하면 특정 작업을 수행하는 Terraform 코드를 쉽게 재사용할 수 있습니다. 이로써 코드의 중복을 줄이고 유지 보수를 간편하게 할 수 있습니다.
  2. 모듈화: 모듈을 사용하여 Terraform 코드를 논리적으로 분할하고 모듈 간의 의존성을 관리할 수 있습니다. 이를 통해 코드를 조직화하고 관리하기 쉬워집니다.
  3. 추상화: 모듈은 사용자가 내부 구현에 대한 세부 사항을 알 필요 없이 간단한 인터페이스를 통해 리소스를 생성할 수 있도록 추상화될 수 있습니다.
  4. 테스트 및 검증: 모듈을 사용하면 모듈 단위로 코드를 테스트하고 검증할 수 있습니다. 이로써 코드의 신뢰성을 높일 수 있습니다.

💠 EKS 클러스터 관련 설정

  • 이 부분은 EKS 클러스터의 기본 설정을 정의합니다. 클러스터 이름, Kubernetes 버전, 엔드포인트 액세스 관련 설정 등을 지정합니다.

💠 EKS 관리 노드 그룹 설정

  • 이 부분은 EKS 클러스터에 대한 관리 노드 그룹을 설정합니다. 노드 그룹의 인스턴스 유형, 크기, 디스크 크기 등을 지정합니다.

💠 EKS 클러스터 접근 권한 설정

  • 이 부분은 EKS 클러스터에 대한 접근 권한을 설정합니다. 현재 AWS 호출자에게 "admin" 권한을 부여하고, 해당 사용자의 ARN을 지정하여 권한을 부여합니다.

💠 태그 설정

  • 이 부분은 리소스에 태그를 지정합니다. 환경 및 Terraform 관련 태그를 지정하여 리소스를 식별합니다.

  • terraform 환경 변수 저장

 

  • terraform init

  • terraform plan

  • terraform apply

  • AWS Console 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'AWS EKS Workshop Study 2기' 카테고리의 다른 글

AWS EKS - Terraform - 1  (0) 2024.04.26
AWS EKS - GitOps - Argo CD  (0) 2024.04.19
AWS EKS - GitOps - Flux  (1) 2024.04.19
AWS EKS - Security - Pod Security Standards  (1) 2024.04.12
AWS EKS - Security - Amazon GuardDuty for EKS  (0) 2024.04.12
Comments