
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 toolGo 언어로 쓰여 있으며 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
