IDE
인 AWS Cloud9
을 통해 진행함
AWS Cloud9
으로 IDE 구성IAM Role
생성- IDE(AWS Cloud9 인스턴스)에 IAM Role 부여
- IDE에서 IAM 설정 업데이트
AWS Cloud9
환경 생성IAM Role
: 특정 권한을 가진 IAM 자격 증명Administrator access
정책을 가진 IAM Role을 생성하여 AWS Cloud9에 붙임AWS Cloud9
환경은 EC2
인스턴스로 구동되기 때문에, EC2 콘솔에서 AWS Cloud9 인스턴스에 방금 생성한 IAM Role
을 부여함AWS Cloud9
의 경우 IAM credentials
를 동적으로 관리하기 때문에 해당 credentials는 EKS IAM authentication과 호환되지 않아서 이를 비활성화한 후에 IAM Role을 붙여야 함Credentials
항목에서 AWS managed temporary credentials
설정을 비활성화IAM Role
확인AWS Command Line Interface
는 command-line shell
의 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 툴AWS CLI
가 설치되어 있음2.x
로 업그레이드curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
export PATH=/usr/local/bin:$PATH
source ~/.bash_profile
kubectl
은 쿠버네티스 클러스터에 명령을 내리는 CLI
쿠버네티스는 오브젝트 생성, 수정 혹은 삭제와 관련된 동작을 수행하기 위해 쿠버네티스 API를 사용함
kubectl CLI
를 사용하면 해당 명령어가 쿠버네티스 API를 호출해 관련 동작을 수행함배포할 Amazon EKS
버전과 상응하는 kuberctl
설치
sudo curl -o /usr/local/bin/kubectl \
https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.13/2022-10-31/bin/linux/amd64/kubectl
sudo chmod +x /usr/local/bin/kubectl
jq
는 JSON
형식의 데이터를 다루는 커맨드라인 유틸리티jq
설치 명령어sudo yum install -y jq
kubectl completion script
는 kubectl completion bash
명령어를 통해 생성할 수 있음completion script
를 소싱하면 kubectl
명령어의 자동 완성을 가능하게 만들 수 있는데, completion script는 bash-completion
에 의존하기 때문에 설치가 필요함sudo yum install -y bash-completion
CDK for Python
을 이용하기 때문에 설치가 필요하지만 cloud9 환경에는 기본적으로 설치가 되어 있기 때문에 버전 확인만 진행함Python
의 패키지들을 설치하고 관리하는 매니저CodeCommit
을 이용하기 위해 9.0.3
버전 이상의 pip
가 필요하기 때문에 업데이트 진행curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --user
eksctl
: EKS cluster
를 쉽게 생성 및 관리하는 CLI tool
Go
언어로 쓰여 있으며 CloudFormation
형태로 배포됨/usr/local/bin
으로 이동curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv -v /tmp/eksctl /usr/local/bin
CI/CD
파트에서 사용될 자원을 배포하기 위해 CDK
를 설치npm install -g aws-cdk
aws cli
를 설정export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')
echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile
aws configure set default.region ${AWS_REGION}
export ACCOUNT_ID=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.accountId')
echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile
wget https://gist.githubusercontent.com/joozero/b48ee68e2174a4f1ead93aaf2b582090/raw/2dda79390a10328df66e5f6162846017c682bef5/resize.sh
sh resize.sh