EMR on EKS (2) - 사전 준비

NewNewDaddy·2023년 9월 18일
0

EMR-on-EKS

목록 보기
2/5
post-thumbnail

0. INTRO

  • EMR on EKS 환경 구축 작업은 공식 DOCS에 나온 흐름을 거의 따라가며 모든 과정은 콘솔창에서의 UI 조작이 아닌 CLI로 이루어진다. 이를 위해서는 아래 세 가지 기능들 설치가 필요하다.
    • eksclt -> EKS 구축을 위해 필요
    • kubectl -> EKS 구축 이후 kubernetes 관련 명령을 내리기 위해 필요
    • aws cli ver2 -> spark job 실행 및 각종 IAM 권한, 역할 등록을 위해 필요 (반드시 version2로 설치)
  • 참고 사아트
    -> EKS workshop
    -> AWS guide
    -> EMR Containers Best Practices Guides
    -> emr-on-eks-by-example

1. Prerequisite Install

  1. apt update

    sudo apt-get update
    sudo apt-get upgrade -y
  2. eksctl 설치

    ARCH=amd64
    PLATFORM=$(uname -s)_$ARCH
    curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
    curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
    tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
    sudo mv /tmp/eksctl /usr/local/bin
  3. kubectl 설치

    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.17/2023-08-16/bin/linux/amd64/kubectl
    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.17/2023-08-16/bin/linux/amd64/kubectl.sha256
    chmod +x ./kubectl
    mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
    echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
  4. awscli2 설치

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    sudo apt install unzip
    unzip awscliv2.zip
    sudo ./aws/install
  5. 통합 설치 shell script

    #!/bin/bash
    
    sudo apt-get update
    sudo apt-get upgrade -y
    
    # eksctl install
    ARCH=amd64
    PLATFORM=$(uname -s)_$ARCH
    curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
    curl -sL "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_checksums.txt" | grep $PLATFORM | sha256sum --check
    tar -xzf eksctl_$PLATFORM.tar.gz -C /tmp && rm eksctl_$PLATFORM.tar.gz
    sudo mv /tmp/eksctl /usr/local/bin
    
    # kubectl install
    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.17/2023-08-16/bin/linux/amd64/kubectl
    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.17/2023-08-16/bin/linux/amd64/kubectl.sha256
    chmod +x ./kubectl
    sleep 0.5
    mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
    echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
    
    # awscli2 install
    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    sudo apt install unzip
    unzip awscliv2.zip
    sudo ./aws/install
    
    # dependency 수정
    sudo apt install python3-pip -y
    pip install cryptography==38.0.4
    pip install -U pyopenssl cryptography
    
    sleep 2
    mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
    echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
    sudo rm -rf ./awscliv2.zip
    echo "EKSCTL VERSION : $(eksctl version)"
    echo "KUBECTL VERSION : $(kubectl version)"
    echo "AWSCLI2 VERSION : $(aws --version)"

2. OUTRO

  • 1-4번 항목을 따라 각각의 기능들을 따로 설치하여도 되고 해당 부분이 통합되어있는 5번의 shell script를 통해 설치해도 무방하다.
  • 중간에 터미널에 분홍색 화면으로 vm 기기 재실행 항목 선택 관련하여 화면이 나오면 'cancel' 눌러서 pass 해주면 된다.
  • 이제 필요한 기능들에 대한 사전 설치도 마쳤으니 다음 글 부터는 본격적으로 EKS 클러스터 및 그에 필요한 IAM 세팅을 해보도록 하자.
profile
데이터 엔지니어의 작업공간 / #PYTHON #SPARK #AWS #NCLOUD

0개의 댓글