ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • EKS로 빠르고 안정적인 서비스 구축하기 - 환경 구성 2
    EKS 2019. 4. 21. 22:52

     

    앞에서 우리는 기본적인 작업환경을 세팅해 봤는데요... 본격적으로 코드로 인프라를 관리하기 위한 툴인 Terraform과 Helm, 그리고 이들의 개발도구인 Visual Studio Code를 설치해 보도록 하겠습니다.

     

    Terraform 설치


    AWS에도 자체적으로 CloudFormation을 제공하기는 합니다. CloudFormation을 사용하면 GUI 환경에서 간단한 설정으로 손쉽게 관리 코드를 만들 수 있습니다.

    하지만 CloudFormation의 코드 가독성이 별로 좋지 않고, GUI에서 설정의 제약으로 일부 코드 수정을 해야 되는 경우가 발생하는데, 이 때 코드 수정의 어려움이 컸었던 걸로 기억합니다.

    그래서 Terraform을 이용해서 간단한 문법과 간결한 코드 관리를 할 수 있었습니다. 또한 terraform plan 명령어를 통해서 적용전 변경사항을 체크할 수 있어서 매우 유용했습니다.

    mac에서는 brew를 이용해 간단히 설치가 가능합니다.

    $ brew install terraform

    Terraform을 사용하게 위해서 우선은 관리하기 위한 provider를 연결해야 합니다. 그리고 provider가 구성되면 리소스를 추가하도록 합니다.

    # Configure the AWS Provider
    provider "aws" {
      access_key = "${var.aws_access_key}"
      secret_key = "${var.aws_secret_key}"
      region     = "${var.aws_region}"
    }

    위의 구문에서 변수로 정의 된 부분은 별도의 .tfvars 파일을 만들어 관리합니다.

    variable "aws_access_key" {
      default = "aws_access_key_code"
    }
     
    variable "aws_secret_key" {
      default = "aws_secret_key_code"
    }
     
    variable "aws_region" {
      default = "ap-northeast-2"
    }

     

    Helm 설치


    보통 kubernetes를 구성할 때  yaml 코드를 이용하여 deployment나 service, role 등을 구성하실 텐데요.

    이런 kubernetes의 yaml코드들도 체계적으로 관리를 하기 위해 Helm을 도입하게 되었습니다.

    Helm 역시 brew를 이용해서 설치를 합니다.

    $ brew install kubernetes-helm

    설치가 완료되면 작업 디렉터리로 이동해서 초기화 및 버전을 확인합니다.

    $ helm init --upgrade
    $ helm version

    Helm은 kubernetes 환경에서 application의 설치를 편하게 제공하고 있습니다.

    이를 위해 helm repository를 제공하고 있으며, 이를 최신화하기 위한 update와 list 확인을 진행합니다.

    $ helm repo update
    $ helm repo list

    Helm은 kubernetes 환경의 통신을 위해 tiller라는 service를 설치해야 합니다.

    $ kubectl create serviceaccount --namespace kube-system tiller
    $ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
    $ helm init --service-account tiller --upgrade

     

    Visual Studio Code 설치


    Visual Studio Code는 다양한 extention pack의 지원으로 개발 툴로 사용해도 손색이 없는 무료 IDE툴입니다.

    설치는 다운로드 페이지에서 파일을 받아서 실행만 하면 됩니다.

    설치 후에는 마켓플레이스에서 아래와 같은 extention pack을 설치합니다.

    • Terraform : Terraform 개발을 위해 편의성을 제공하는 extention pack입니다.

    • Terraform doc snippets : Terraform의 code에서 함수 구문과 document를 연결해 주는 extention pack입니다.

    • kubernetes : kubernetes의 cluster나 helm repository의 확인 및 선택을 편하도록 제공하는 extension pack입니다.

    여기까지 구성을 모두 완료하셨다면 이제 EKS의 설치부터 kubernetes 환경에서의 서비스 실행까지 일사천리로 진행이 가능합니다.

    다음 글에서는 Terraform을 이용해서 EKS의 클러스터와 Worker node 구성을 진행해 보도록 하겠습니다.

Designed by Tistory.