AWS CloudShell 문제 해결 - AWS CloudShell

AWS CloudShell 문제 해결

AWS CloudShell 사용 중에는 CloudShell을 시작하거나 쉘 명령줄 인터페이스를 사용하여 주요 작업을 수행할 때 문제가 발생할 수 있습니다. 이 장에서는 일반적으로 접할 수 있는 문제를 해결하는 방법을 설명하겠습니다.

CloudShell에 대한 다양한 질문에 대한 답변은 AWS CloudShellFAQ에서 확인하십시오. AWS CloudShell 토론 포럼에서 답을 검색하고 질문을 올릴 수도 있습니다. 이 포럼에 들어갈 때 AWS에 로그인해야 할 수 있습니다. 또한 직접 당사에 문의할 수도 있습니다.

오류 해결

다음 색인에 있는 오류를 접한 경우, 아래 해결 방법에 따라 오류를 해결할 수 있습니다.

오류: “환경을 시작할 수 없습니다. 다시 시도하려면 AWS CloudShell 작업, 재시작을 선택하여 브라우저를 새로고침하거나 재시작하세요.”

문제: IAM 관리자의 필수 허가를 받았고 브라우저를 새로고침하거나 CloudShell을 재시작한 다음에도 AWS Management Console에서 AWS CloudShell을(를) 시작하려고 하면 액세스가 거부됩니다.

해결 방법: AWS지원에 문의하십시오.

(맨 위로 이동)

오류: “환경을 시작할 수 없습니다. 필요한 권한이 없습니다. IAM 관리자에게 AWS CloudShell 액세스 권한을 요청하세요.”

문제: AWS Management Console에서 AWS CloudShell을(를) 시작하려고 하면 액세스가 거부되고 필수 권한이 없다는 메시지가 표시됩니다.

원인: AWS CloudShell 액세스 시 사용하는 IAM 자격 증명에 필수 IAM 권한이 없습니다.

해결 방법: IAM 관리자에게 필수 권한을 요청하십시오. 연결된 AWS 관리형 정책(AWSCloudShellFullAccess) 또는 내장된 인라인 정책을 추가하여 이 작업을 수행할 수 있습니다. 자세한 내용은 IAM 정책을 통한 AWS CloudShell 액세스 및 사용 관리 단원을 참조하십시오.

(맨 위로 이동)

AWS CloudShell 명령줄에 액세스할 수 없음

문제: 컴퓨팅 환경에서 사용하는 파일을 수정한 후, AWS CloudShell에서 명령줄에 액세스할 수 없습니다.

해결 방법: .bashrc 또는 다른 파일을 잘못 수정하여 액세스 권한을 잃은 경우, 홈 디렉터리 삭제를 통해 AWS CloudShell을(를) 기본 설정으로 복원시키면 됩니다.

(맨 위로 이동)

외부 IP 주소를 ping할 수 없음

문제: 명령줄에서 ping 명령(예: ping amazon.com)을 실행하면 다음 메시지가 나타납니다.

ping: socket: Operation not permitted

원인: ping 유틸리티는 인터넷 제어 메시지 프로토콜(ICMP)을 사용하여 에코 요청 패킷을 대상 호스트로 보냅니다. 대상에서 응답할 때까지 에코를 기다립니다. AWS CloudShell에서는 ICMP 프로토콜이 활성화되지 않으므로, ping 유틸리티는 쉘 컴퓨팅 환경에서 작동하지 않습니다.

해결 방법: ICMP가 AWS CloudShell에서 지원되지 않기 때문에 다음 명령을 실행하여 Netcat을 설치할 수 있습니다. Netcat은 TCP 또는 UDP를 사용하여 네트워크 연결을 읽고 쓰기 위한 컴퓨터 네트워킹 유틸리티입니다.

sudo yum install nc nc -zv www.amazon.com 443

(맨 위로 이동)

터미널 준비 시 문제가 발생했습니다.

문제: Microsoft Edge 브라우저로 AWS CloudShell에 액세스하려고 하면 쉘 세션을 시작할 수 없고 브라우저에 오류 메시지가 표시됩니다.

원인: AWS CloudShell은(는) 이전 버전 Microsoft Edge와 호환되지 않습니다. AWS CloudShell에 액세스하려면 지원되는 브라우저의 최신 네 개 주요 버전을 사용해야 합니다.

해결 방법: Microsoft 사이트에서 최신 버전 Edge 브라우저를 설치하십시오.

(맨 위로 이동)

PowerShell에서 화살표 키가 정상 작동하지 않습니다

문제: 정상 작동 중에는 화살표 키로 명령줄 인터페이스를 탐색하고 명령 이력을 앞뒤로 스캔할 수 있습니다. 그러나 AWS CloudShell에 있는 일부 PowerShell 버전에서 화살표 키를 누르면 문자가 잘못 출력될 수 있습니다.

원인: 화살표 키가 문자를 잘못 출력하는 상황은 Linux에서 실행되는 PowerShell 7.2.x 버전에서 알려진 문제입니다.

해결 방법: 화살표 키 동작을 수정하는 이스케이프 시퀀스를 제거하려면 PowerShell 프로필 파일을 편집하고 $PSStyle 변수를 PlainText(으)로 설정하십시오.

  1. AWS CloudShell 명령줄에 다음 명령을 입력하여 파일을 생성합니다.

    vim ~/.config/powershell/Microsoft.PowerShell_profile.ps1
    참고

    이미 PowerShell에 있는 경우, 다음 명령으로 편집기에서 프로필 파일을 열 수도 있습니다.

    vim $PROFILE
  2. 편집기에서 파일의 기존 텍스트 끝으로 이동한 다음 i를 눌러 삽입 모드로 전환한 후 다음 명령문을 추가합니다.

    $PSStyle.OutputRendering = 'PlainText'
  3. 편집한 후 Esc을(를) 눌러 명령 모드로 들어갑니다. 그리고 다음 명령을 입력하여 파일을 저장하고 편집기를 종료합니다.

    :wq
참고

변경사항은 다음에 PowerShell을 시작할 때 적용됩니다.

(맨 위로 이동)

지원되지 않는 WebSocket 때문에 CloudShell 세션이 시작되지 않습니다

문제: AWS CloudShell을(를) 시작하려고 하면 Failed to open sessions : Timed out while opening the session 메시지가 반복적으로 표시됩니다.

원인: CloudShell은 WebSocket 프로토콜에 의존하여 웹 브라우저와 AWS CloudShell 간 양방향 대화형 통신을 합니다. 사설망에서 브라우저를 사용하는 경우, 아마도 프록시 서버와 방화벽을 통해 인터넷 보안 접속이 가능할 것입니다. WebSocket 통신은 일반적으로 문제 없이 프록시 서버를 통과할 수 있습니다. 하지만 프록시 서버 때문에 WebSocket이 제대로 작동하지 않는 경우도 있습니다. 이 문제가 발생하는 경우, CloudShell은 쉘 세션을 시작할 수 없으며 결국 연결 시간이 초과됩니다.

해결 방법: 지원되지 않는 WebSocket이 아닌 다른 문제 때문에 연결 시간 초과가 발생할 수 있습니다. 만약 그렇다면, 우선 CloudShell 명령줄 인터페이스가 있는 브라우저 창을 새로고침하십시오.

새로고침한 후에도 시간 초과 오류가 계속 발생하는 경우 프록시 서버 설명서를 참조하십시오. 또한 프록시 서버가 Web Socket을 허용하도록 구성되어 있는지 확인하십시오. 아니면 네트워크 시스템 관리자에게 문의하십시오.

참고

특정 URL을 허용 목록에 넣어 세분화된 권한을 정의하고자 한다고 가정해 보겠습니다. AWS Systems Manager 세션에서 입력 전송 및 출력 수신을 위한 WebSocket 연결을 여는 데 사용하는 URL의 일부를 추가할 수 있습니다. AWS CloudShell 명령은 해당 Systems Manager 세션으로 전송됩니다.

Systems Manager에서 사용하는 StreamUrl 형식은 wss://ssmmessages.region.amazonaws.com/v1/data-channel/session-id?stream=(input|output)입니다.

리전은 AWS Systems Manager에서 지원되는 AWS 리전에 대한 리전 식별자를 나타냅니다. 예를 들어, us-east-2은(는) 미국 동부(오하이오) 리전의 지역 식별자입니다.

세션 ID는 특정 Systems Manager 세션이 성공적으로 시작된 생성되므로 URL 허용 목록을 업데이트할 떄만 wss://ssmmessages.region.amazonaws.com을(를) 지정할 수 있습니다. 자세한 정보는 AWS Systems Manager API 참조의 StartSession 작업에서 확인하십시오.

(맨 위로 이동)

AWSPowerShell.NetCore 모듈을 가져올 수 없음

문제: PowerShell에서 Import-Module -Name AWSPowerShell.NetCore로 AWSPowerShell.NetCore 모듈을 가져올 때 다음과 같은 오류 메시지가 나타납니다.

가져오기 모듈: 모듈 디렉터리에 유효한 모듈 파일이 없기 때문에 지정 모듈 'AWSPowerShell.NetCore'가 로드되지 않았습니다.

원인: AWSPowerShell.NetCore 모듈이 AWS CloudShell에서 서비스별 AWS.Tools 모듈로 교체되었습니다.

해결 방법: 명시적 가져오기 명령문이 더 이상 필요하지 않거나 관련 서비스별 AWS.Tools 모듈로 변경해야 할 수 있습니다.

  • 대부분의 경우 .Net 형식을 사용하지 않는 한 명시적인 가져오기 명령문은 필요하지 않습니다. 다음은 가져오기 명령문의 예제입니다.

    • Get-S3Bucket

    • (Get-EC2Instance).Instances

  • .Net 유형을 사용하는 경우, 서비스 수준 모듈(AWS.Tools.<Service>)을 가져오기 하십시오. 다음은 구문의 예제입니다.

    Import-Module -Name AWS.Tools.EC2 $InstanceTag = [Amazon.EC2.Model.Tag]::new("Environment","Dev")
    Import-Module -Name AWS.Tools.S3 $LifecycleRule = [Amazon.S3.Model.LifecycleRule]::new()

자세한 정보는 버전 4 공지(AWS Tools for PowerShell)에서 확인하십시오.

(맨 위로 이동)

AWS CloudShell을 사용할 때 Docker가 실행되지 않음

문제: AWS CloudShell을 사용할 때 Docker가 제대로 실행되지 않습니다. 다음과 같은 오류 메시지를 수신합니다. docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

해결 방법: 환경을 다시 시작해 보세요. 이 오류 메시지는 지원되지 않는 GovCloud 리전의 AWS CloudShell에서 Docker를 실행할 때 발생할 수 있습니다. 지원되는 AWS 리전에서 Docker를 실행 중인지 확인합니다. Docker를 사용할 수 있는 리전 목록은 AWS CloudShell 지원 AWS 리전을 참조하세요.

Docker에 디스크 공간이 부족함

문제: 다음과 같은 오류 메시지를 수신합니다. ERROR: failed to solve: failed to register layer: write [...]: no space left on device.

원인: Dockerfile이 AWS CloudShell에서 사용 가능한 디스크 공간을 초과합니다. 이는 개별 이미지가 크거나 기존 Docker 이미지가 너무 많기 때문에 발생할 수 있습니다.

해결 방법: df -h를 실행하여 디스크 사용량을 찾습니다. sudo du -sh /folder/folder1을 실행하여 크기가 클 수 있다고 생각되는 특정 폴더의 크기를 평가하고 공간을 확보하기 위해 다른 파일을 삭제하는 것이 좋습니다. 한 가지 옵션은 docker rmi를 실행하여 사용하지 않는 Docker 이미지를 제거하는 것입니다. Docker는 환경에서 공간이 제한적이라는 점에 유의해야 합니다. Docker에 대한 자세한 내용은 Docker 설명서 가이드를 참조하세요.

docker push가 제한 시간을 초과하고 계속 재시도함

문제: docker push 실행 시 제한 시간이 초과되어 성공하지 않고 계속 재시도합니다.

원인: 권한이 없거나 잘못된 리포지토리로 푸시 또는 인증 부족으로 인해 발생할 수 있습니다.

해결 방법: 이 문제를 해결하려면 올바른 리포지토리로 푸시해야 합니다. docker login을 실행하여 올바르게 인증합니다. Amazon ECR 리포지토리로 푸시하는 데 필요한 모든 권한이 있는지 확인합니다.

AWS CloudShell VPC 환경에서 VPC 내 리소스에 액세스할 수 없음

문제: AWS CloudShell VPC 환경을 사용하는 동안 VPC 내의 리소스에 액세스할 수 없습니다.

원인: AWS CloudShell VPC 환경은 VPC의 네트워크 설정을 상속합니다.

해결 방법: 이 문제를 해결하려면 VPC가 리소스에 액세스하도록 올바르게 설정되어 있는지 확인합니다. 자세한 내용은 VPC 설명서 VPC를 다른 네트워크에 연결 및 Network Access Analyzer 설명서 Network Access Analyzer를 참조하세요. 명령줄 프롬프트 또는 VPC 콘솔 페이지에서 환경 내에 `ip -a` 명령을 실행하여 AWS CloudShell VPC 환경에서 사용하는 IPv4 주소를 찾을 수 있습니다.

VPC 환경에 대해 AWS CloudShell에서 사용하는 ENI가 정리되지 않음

문제: VPC 환경에 대해 AWS CloudShell에서 사용하는 ENI를 정리할 수 없습니다.

원인: 역할에 대한 ec2:DeleteNetworkInterface 권한이 활성화되지 않았습니다.

해결 방법: 이 문제를 해결하려면 다음 샘플 스크립트와 같이 역할에 대한 ec2:DeleteNetworkInterface 권한이 활성화되어 있는지 확인합니다.

{ "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedByCloudShell": "" } }, "Resource": "arn:aws:ec2:*:*:network-interface/*" }

VPC 환경에 대해서만 CreateEnvironment 권한이 있는 사용자도 퍼블릭 AWS CloudShell 환경에 액세스할 수 있음

문제: VPC 환경에 대한 CreateEnvironment 권한으로만 제한된 사용자도 퍼블릭 AWS CloudShell 환경에 액세스할 수 있습니다.

원인: VPC 환경 생성에 대한 CreateEnvironment 권한만 제한하고 이미 퍼블릭 환경을 생성한 경우 웹 사용자 인터페이스를 사용하여 이 환경을 삭제할 때까지 기존 퍼블릭 CloudShell 환경에 대한 액세스 권한이 유지됩니다. 그러나 이전에 CloudShell을 사용한 적이 없는 경우 퍼블릭 환경에 액세스할 수 없습니다.

해결 방법: 퍼블릭 AWS CloudShell 환경에 대한 액세스를 제한하려면 IAM 관리자가 먼저 IAM 정책을 제한으로 업데이트한 다음 사용자가 AWS CloudShell 웹 사용자 인터페이스를 사용하여 기존 퍼블릭 환경을 수동으로 삭제해야 합니다. (작업CloudShell 환경 삭제).

CloudShell에서 자격 증명이 작동하지 않음

문제: CloudShell에서 AWS CLI를 호출하려고 하면 내부 서버 오류라는 오류 메시지가 표시됩니다.

원인: 이 문제의 가능한 원인은 다음과 같습니다.

  • CloudShell에서 자격 증명을 새로 고치는 데 사용하는 putCredentials API 호출이 실패했습니다. putCredentials 작업에 대한 IAM 권한이 부족하여 API 호출이 실패할 수 있습니다. 자세한 내용은 AWS 서비스 액세스 권한 단원을 참조하십시오. 이미 putCredentials 작업에 대한 IAM 권한이 있는 경우 CloudShell의 네트워크 문제 또는 운영 문제로 인해 API 호출이 실패할 수 있습니다.

  • AWS Console 세션이 만료되었지만 CloudShell 환경이 여전히 실행 중이므로 자격 증명은 더 이상 유효하지 않습니다. 자격 증명이 더 이상 유효하지 않으면 CloudShell에서 API 호출을 수행하지 못합니다.

해결 방법: putCredentials 작업에 필요한 IAM 권한이 이미 있는 경우 웹 페이지를 새로 고칩니다. 문제가 해결되지 않고 오류가 계속 발생하면 AWS Support에 문의하세요.

AWS CloudShell에서 Amazon Q 인라인 제안에 액세스할 수 없음

문제: Z 쉘로 전환한 후에 CloudShell 터미널에 인라인 제안이 표시되지 않습니다.

원인: 기존 CloudShell 환경을 사용하는 경우 닷파일에 Amazon Q 인라인 제안에 필요한 구성이 포함되어 있지 않을 수 있습니다.

해결 방법: 이 문제를 해결하려면 다음 단계를 따릅니다.

  1. q integrations install dotfiles를 실행합니다.

  2. 새 CloudShell 탭을 엽니다.

  3. zsh를 입력하여 Z 쉘로 전환한 다음 Enter 키를 누릅니다.

AWS CloudShell에서 Amazon Q CLI 기능에 액세스할 수 없음

문제: 인라인 제안, 채팅 및 변환과 같은 CloudShell의 Amazon Q CLI 기능을 사용하려고 하면 AccessDeniedError가 표시됩니다.

원인: 필요한 IAM 권한이 없습니다.

해결 방법: 관리자에게 필수 IAM 권한을 요청하세요. 자세한 내용은 Amazon Q Developer 사용 설명서에서 Amazon Q Developer의 자격 증명 기반 정책 예제를 참조하세요.