📂
Amazon EKS
  • Amazon EKS
  • 워크스페이스 생성하기
    • Cloud9 IDE 환경 구성
    • IAM 역할 생성
    • SSH & CMK Key 생성하기
  • EKS 클러스터 구축
    • EKS 클러스터 만들기
  • 쿠버네티스 대시보드 배포
    • Kubernetes 공식 대시보드 배포
  • 마이크로서비스 배포
    • 예제 애플리케이션 배포
    • 서비스 스케일(Scaling)
    • 애플리케이션 정리하기
  • 애플리케이션 배포 - Helm
    • HELM 설치
    • Helm으로 Nginx 배포
    • Helm을 사용하여 마이크로서비스 배포
    • 정리하기
  • 리소스 관리 - POD 배치
    • NodeSelector
    • Affinity and Anti-affinity
    • 더 실용적인 사용 사례
    • 정리하기
  • 리소스 관리 - Health Checks
    • Liveness 프로브 구성
    • Readiness 프로브 구성
    • 정리하기
  • 리소스 관리 - AutoScaling
    • HPA 구성하기
    • CA 구성하기
    • 정리하기
  • 네트워킹 - 서비스 노출
    • 서비스와 애플리케이션 연결
    • 서비스에 접근하기
    • 서비스 노출
    • Ingress
    • Ingress Controller
    • 정리하기
  • 네트워크 - Calico 정책
    • Calico 설치하기
    • Stars Policy Demo
    • 정리하기
  • Updating 권한설정 - RBAC
    • 테스트 POD 설치
    • 사용자 생성 및 맵핑
    • 역할과 바인딩
    • 정리하기
  • Updating 권한설정 - IAM 그룹
    • IAM Role, Group & User 생성하기
    • RBAC 설정하기
    • EKS 엑세스 테스트
    • 정리하기
  • Updating 권한설정 - Service account
    • OIDC 자격 증명 공급자 생성하기
    • IAM 역할 생성 및 지정
    • 샘플 POD 배포
    • 정리하기
  • Updating - 네트워크 - POD Security Group
    • SG 생성하기
    • RDS 생성하기
    • CNI 구성하기
    • SG 정책
    • Pod 배포하기
    • 정리하기
  • Updating - 모니터링 - Prometheus and Grafana
    • Prometheus 배포하기
    • Grafana 배포하기
    • 정리하기(Optional)
  • Updating 모니터링 - X-Ray
    • X-Ray DaemonSet 배포하기
    • 샘플 마이크로서비스 배포
    • X-Ray console 확인
    • 정리하기(Optional)
  • Updating 모니터링 - Container Insights
    • 사전 준비
    • Container Insights 구성하기
    • 부하 테스트
    • Container Insights 확인하기
    • 정리하기(Optional)
  • Updating CD - Gitops with Flux
    • 사전 준비
    • Codepipeline
    • EKS에 배포
    • 정리하기
  • Updating Argo Rollouts
  • Updating Service Mesh - AWS App Mesh
    • Fargate 및 OBSERVABILITY 구성
    • Product Catalog App 배포
    • APP MESH 설치
    • Porting to APP MESH
    • Virtual Gateway 구성
    • Canary
    • Observability
  • Updating 버전 업그레이드 - EKS Cluster
    • Upgrade EKS control Plane
    • Upgrade EKS CORE ADD-ONs
    • Upgrade Managed Node Group
Powered by GitBook
On this page
  • 1. Cloud9 IDE 접속
  • 2. Kubenetes 도구 설치
  • 3. AWS IAM Authenticator 설치
  • 4. 기타 필요한 도구 설치

Was this helpful?

  1. 워크스페이스 생성하기

Cloud9 IDE 환경 구성

Previous워크스페이스 생성하기NextIAM 역할 생성

Last updated 5 months ago

Was this helpful?

1. Cloud9 IDE 접속

AWS 서비스에서 Cloud9을 검색하고 [Open]을 통해서 접속합니다.

Cloud9 디스크 사이즈를 아래 명령어로 확장합니다.

다음 명령은 Cloud9이 실행되는 EC2 instance의 root volume에 디스크 공간을 더 추가합니다. 명령이 완료되면 인스턴스 재부팅하고 IDE가 다시 온라인 상태가 되는데 1~2분이 걸릴 수 있습니다.

pip3 install --user --upgrade boto3
export instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
python -c "import boto3
import os
from botocore.exceptions import ClientError 
ec2 = boto3.client('ec2')
volume_info = ec2.describe_volumes(
    Filters=[
        {
            'Name': 'attachment.instance-id',
            'Values': [
                os.getenv('instance_id')
            ]
        }
    ]
)
volume_id = volume_info['Volumes'][0]['VolumeId']
try:
    resize = ec2.modify_volume(    
            VolumeId=volume_id,    
            Size=30
    )
    print(resize)
except ClientError as e:
    if e.response['Error']['Code'] == 'InvalidParameterValue':
        print('ERROR MESSAGE: {}'.format(e))"
if [ $? -eq 0 ]; then
    sudo reboot
fi

2. Kubenetes 도구 설치

Amazon EKS 클러스터에는 쿠버네티스 클러스터에 대한 IAM 인증을 허용하기 위해 kubectl 및 kubelet 바이너리와 aws-iam-authenticator 바이너리가 필요합니다.

kubectl 설정을 저장하기 위한 기본 ~/.kube 디렉토리 생성하고 kubectl 을 설치합니다.

mkdir -p ~/.kube
sudo curl --location -o /usr/local/bin/kubectl https://s3.us-west-2.amazonaws.com/amazon-eks/1.31.2/2024-11-15/bin/linux/amd64/kubectl
sudo chmod +x /usr/local/bin/kubectl

sudo kubectl version --client

AWS CLI를 업데이트 합니다.

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update

3. AWS IAM Authenticator 설치

AWS IAM Authenticator는 쿠버네티스의 RBAC 권한을 AWS IAM을 통해 제어해 줄 수 있도록 해주는 도구입니다. AWS 상에서 관리하고 있는 권한을 그대로 쿠버네티스 API 서버로 가져와 쿠버네티스의 Role을 엮어 줍니다. 예를 들어 DevOps 팀의 IAM Role은 kubernetes-admin 권한을 부여하고 개발팀의 IAM Role에는 개발용 네임스페이스에만 접근 권한을 부여하는 방식으로 사용할 수 있습니다.

sudo curl --location -o /usr/local/bin/aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator
sudo chmod +x /usr/local/bin/aws-iam-authenticator

aws-iam-authenticator help

4. 기타 필요한 도구 설치

JQ, envsubst(GNU gettext utilities), bash-completion 설치를 설치합니다.

sudo yum -y install jq gettext bash-completion moreutils

yaml 처리를 위해 yq 설치를 설치합니다.

echo 'yq() {
  docker run --rm -i -v "${PWD}":/workdir mikefarah/yq "$@"
}' | tee -a ~/.bashrc && source ~/.bashrc

바이너리가 경로 및 실행 파일에 있는지 확인합니다.

for command in kubectl jq envsubst aws
  do
    which $command &>/dev/null && echo "$command in path" || echo "$command NOT FOUND"
  done
  

kubectl bash_completion 활성화 합니다.

kubectl completion bash >>  ~/.bash_completion
. /etc/profile.d/bash_completion.sh
. ~/.bash_completion

AWS Load Balancer Controller 버전 설정합니다.

echo 'export LBC_VERSION="v2.7.2"' >>  ~/.bash_profile
.  ~/.bash_profile

이번 워크샵에서는 Linux 바이너리를 다운로드하는 명령어를 제공합니다. Mac OSX / Windows를 사용하는 경우 하십시오.

다운로드 링크는 공식 EKS 문서를 참조