[AWS] AMAZON EKS TERRAFORM WORKSHOP


실습


가이드


링크에서 가이드를 확인할 수 있습니다.


EC2


VPC (Optional)


실습 과정을 응용하는 단계입니다.


기본 값은 기본 VPC(172.31.0.0/16)이지만, 기본 VPC를 사용하지 않을 경우에는 VPC를 새롭게 생성한 후 진행합니다.

PROD-VPC
20.0.0.0/16
PROD-VPC…
Public subnetPublic subnetEC2EC2VPC Peering
pcx-1
VPC Peering…
Ineternet
Gateway
Ineternet…
Viewer does not support full SVG 1.1

VPC Perring은 Terraform으로 진행합니다. 그 이외의 리소스만 생성하세요.


AWS CLI를 통한 VPC 생성(VPC ID를 기록해 둡니다)

aws ec2 create-vpc --cidr-block 100.100.0.0/16 --tag-specifications "ResourceType=vpc,Tags=[{Key=Service,Value=DEV},{Key=Name,Value=Console}]"

생성이 끝났다면, Main route table을 subnet이 연결된 route table로 변경합니다.


Main route table로 변경할 route table 선택

작업 선택

기본 라우팅 테이블 설정

생성


실습에서는 Cloud9을 사용하지만, 본 가이드에서는 Cloud9과 같은 역할을 할 EC2(Amazon Linux 2)를 생성합니다.


Terraform에서 데이터로 불러오기 위하여 EC2 이름을 cloud9-eks-terraform으로 변경합니다.


태그 추가

설정


IAM 역할 추가, 패키치 설치 등을 진행합니다.


IAM 역할 수정

eksworkshop-admin 선택

저장 선택

생성한 서버로 접속 (SSH)

패키치 설치

mkdir ~/environment
sudo yum update && sudo yum install git -y
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
sudo yum install -y terraform

여기까지 진행한 이후, 가이드에 따라 Kubernetes 도구를 설치합니다.


Kubernetes 도구 설치 과정은 링크에서 확인할 수 있습니다.


Terraform


5. Creating a private EKS Cluster with Terraform > 5. Linking the Cloud9 IDE & CI/CD VPC to the EKS Network 단계 진행 전 일부 코드를 변경합니다.


수정 (Optional)


VPC를 새롭게 생성한 경우에 한하여 Terraform 코드를 일부 수정합니다. 주의하여 진행합니다.


먼저, VPC와 관련된 내용을 변경합니다.


파일 열기

vi data-defvpc.tf

코드 붙여넣기

저장

data "aws_vpc" "vpc-default" {
  default = false
  filter {
    name   = "tag:Name"
    values = ["PROD-VPC"]
  }
}

반드시 자신의 EC2를 생성한 VPC의 이름을 입력하세요. (PROD-VPC는 예시입니다.)


다음으로 EC2 보안그룹과 관련된 내용을 수정합니다.


파일 열기

vi data-sg-c9-instance.tf

코드 수정

저장

variable "c9label" {
description="Cloud9 IDE Name Label"
type=string
default="cloud9-eks-terraform"
}
output c9lab {
    value = "%{ if var.c9label != "" } true %{else} false %{endif}"
}
data "aws_instance" "c9inst" {
  filter {
    name   = "tag:Name"
    values = ["*${var.c9label}*"]
  }
}
data "aws_security_group" "c9sg" {
  // 여기를 아래와 같이 변경해주세요.
  id = sort(data.aws_instance.c9inst.vpc_security_group_ids)[0]
}
data "aws_iam_instance_profile" "c9ip" {
  name = data.aws_instance.c9inst.iam_instance_profile
}
output c9role {
value=data.aws_iam_instance_profile.c9ip.role_arn
}

기본 VPC가 아닌 다른 VPC를 사용하는 경우 보안 그룹을 불러오는 특성이 달라집니다.


두 개의 파일 수정이 끝났다면, 다시 링크로 돌아가서 진행해주세요.


마지막으로,

끝까지 읽어주신 모든 분들께 감사드립니다.


다음 글 보기

이전 글 보기

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다