AWS CloudShell을 사용하여 Amazon EKS 작업 환경 설정

7614 단어 ekskubernetesaws

소개



AWS Cloud Shell은 AWS re:Invent 2020의 Werner Vogels 기조 연설에서 발표되었습니다.

🚀 AWS CloudShell – AWS 리소스에 대한 명령줄 액세스
https://aws.amazon.com/jp/blogs/aws/aws-cloudshell-command-line-access-to-aws-resources/

AWS CloudShell은 AWS 관리 콘솔에서 직접 실행할 수 있는 브라우저 기반 셸입니다.
셸은 Bash, PowerShell, Z 셸을 사용할 수 있으며 AWS CLI 및 기타 주요 개발 언어를 지원하는 도구와 함께 사전 구성되어 제공됩니다.

사전 설정 도구는 다음 문서에 설명되어 있습니다.

AWS CloudShell 컴퓨팅 환경: 사양 및 소프트웨어
https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html

예를 들어 kubectl이 설치되지 않았습니다.
Amazon EKS를 위한 작업 환경을 직접 준비합시다.

셸 환경에서 추가 소프트웨어 설치가 지원되나요?
예, 하지만 사용자가 관리해야 합니다. (책임 분담 모델😎)

설정



관리 콘솔에서 아이콘을 클릭하기만 하면 CloudShell이 ​​시작됩니다.


  • 지금 생각나는 대로 설치했습니다.
  • 필요에 따라 버전을 변경하십시오.
  • 이 문서에서는 클러스터와 IAM 사용자/역할을 연결하는 방법에 대해 설명하지 않습니다.
  • Docker를 원하면 Cloud9을 사용하십시오!

  • 설치 디렉토리는 $HOME/.local/bin로 설정됩니다.
    이는 세션 간에 유지되는 영구 스토리지가 $HOME이기 때문입니다. (자세한 내용은 이 기사의 후반부를 참조하십시오.)

    # Create directory
    mkdir -p $HOME/.local/bin
    cd $HOME/.local/bin
    
    # kubectl
    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.13/bin/linux/amd64/kubectl
    chmod +x kubectl
    
    # Create $HOME/.kube/config
    aws eks update-kubeconfig --name <YOUR_CLUSTER_NAME>
    
    # eksctl
    curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
    sudo mv /tmp/eksctl $HOME/.local/bin
    
    # helm
    export VERIFY_CHECKSUM=false
    curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
    sudo mv /usr/local/bin/helm $HOME/.local/bin
    


    yum으로 설치한 패키지는 영구 저장소( $HOME )에 배치할 수 없으므로 각각의 새 세션에 대해 설치해야 합니다.
    CloudShell을 시작할 때 자동으로 설치하도록 .bash_profile에 명령을 작성할 수 있습니다.

    kubectl 완성을 사용하고 싶어서 bash-completion을 설치했습니다.

    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    PATH=$PATH:$HOME/.local/bin:$HOME/bin
    
    export PATH
    
    # Install at startup
    sudo yum install -y bash-completion > /dev/null 2>&1
    


    kubectl 완료 구성은 영구 스토리지에 저장할 수 있습니다.

    kubectl completion bash > $HOME/.bash_completion
    


    CloudShell에 대한 참고 사항



    영구 저장


  • CloudShell은 지역당 1GB의 영구 저장소를 사용할 수 있습니다.
  • 영구 저장소는 홈 디렉토리($HOME)에 있으며 비공개입니다. (사용자 간에 공유되지 않습니다.)
  • 이 영역만 세션 간에 유지되도록 보장됩니다.
  • 홈 디렉토리 이외의 디렉토리에 저장된 소프트웨어 및 기타 데이터는 세션 종료 시 유지되지 않습니다.
  • 영구 저장소의 데이터는 마지막 세션 종료 후 120일 후에 삭제됩니다.

  • CloudShell 액세스 권한



    모든 서비스와 마찬가지로 대상 IAM 사용자/역할에 CloudShell 액세스 권한을 명시적으로 부여해야 합니다.
    AWSCloudShellFullAccess AWS 관리형 정책을 사용하는 것이 가장 쉽지만 CloudShell을 통한 파일 업로드/다운로드를 제한하려는 경우 다음과 같은 사용자 지정 정책을 사용할 수 있습니다.

    {
        "Version": "2012-10-17",
        "Statement": [{
            "Sid": "CloudShellUser",
            "Effect": "Allow",
            "Action": [
                "cloudshell:*"
            ],
            "Resource": "*"
        }, {
            "Sid": "DenyUploadDownload",
            "Effect": "Deny",
            "Action": [
                "cloudshell:GetFileDownloadUrls",
                "cloudshell:GetFileUploadUrls"
            ],
            "Resource": "*"
        }]
    }
    


    CloudShell 내에서 AWS 서비스에 액세스할 수 있는 권한.



    AWS Management 콘솔에 로그인하는 데 사용한 IAM 자격 증명을 자동으로 사용합니다.
    이는 운영 중인 IAM 사용자/역할이 대상 AWS 서비스에 액세스할 수 있는 명시적 권한이 있어야 함을 의미합니다.

    참조



    AWS CloudShell - 사용 설명서
    https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html

    좋은 웹페이지 즐겨찾기