기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
문제 해결 AWS CloudShell
AWS CloudShell를 사용하는 동안 CloudShell을 시작하거나 셸 명령줄 인터페이스를 사용하여 주요 작업을 수행할 때와 같은 문제가 발생할 수 있습니다. 이 장에서는 일반적으로 접할 수 있는 문제를 해결하는 방법을 설명하겠습니다.
CloudShell에 대한 다양한 질문에 대한 답변은 AWS CloudShell FAQ
오류 해결
다음 색인에 있는 오류를 접한 경우, 아래 해결 방법에 따라 오류를 해결할 수 있습니다.
주제
- 거부된 액세스
- 권한 부족
- AWS CloudShell 명령줄에 액세스할 수 없음
- 외부 IP 주소를 ping할 수 없음
- 터미널 준비 시 문제가 발생했습니다.
- PowerShell에서 화살표 키가 정상 작동하지 않습니다
- 지원되지 않는 WebSocket 때문에 CloudShell 세션이 시작되지 않습니다
- AWSPowerShell.NetCore 모듈을 가져올 수 없음
- AWS CloudShell을 사용할 때 Docker가 실행되지 않음
- Docker에 디스크 공간이 부족함
- docker push가 제한 시간을 초과하고 계속 재시도함
- VPC 환경에서 AWS CloudShell VPC 내 리소스에 액세스할 수 없음
- VPC 환경에 AWS CloudShell 대해에서 사용하는 ENI가 정리되지 않음
- VPC 환경에 대한 CreateEnvironment 권한만 있는 사용자는 퍼블릭 AWS CloudShell 환경에도 액세스할 수 있습니다.
거부된 액세스
문제:에서 CloudShell을 시작하려고 하면 AWS Management Console"환경을 시작할 수 없습니다. 다시 시도하려면 브라우저를 새로 고치거나 작업, 다시 시작 "을 선택하여 다시 시작합니다 AWS CloudShell
. IAM 관리자의 필수 권한이 있고 브라우저를 새로 고치거나 CloudShell을 다시 시작한 후에도 액세스가 거부됩니다.
해결 방법: AWS 지원
(맨 위로 이동)
권한 부족
문제:에서 CloudShell을 시작하려고 하면 AWS Management Console"환경을 시작할 수 없습니다. 필요한 권한이 없습니다. IAM 관리자에게 AWS CloudShell"에 대한 액세스 권한을 부여하도록 요청합니다
. 액세스가 거부되고 필요한 권한이 없다는 알림이 표시됩니다.
원인:에 액세스하는 데 사용하는 IAM 자격 증명에 필요한 IAM 권한이 AWS CloudShell 없습니다.
해결 방법: IAM 관리자에게 필수 권한을 요청하십시오. 연결된 AWS 관리형 정책(AWSCloudShellFullAccess) 또는 임베디드 인라인 정책을 추가하여 이를 수행할 수 있습니다. 자세한 내용은 IAM 정책을 사용한 AWS CloudShell 액세스 및 사용 관리 단원을 참조하십시오.
(맨 위로 이동)
AWS CloudShell 명령줄에 액세스할 수 없음
문제: 컴퓨팅 환경에서 사용하는 파일을 수정한 후에는의 명령줄에 액세스할 수 없습니다 AWS CloudShell.
해결 방법: .bashrc
또는 다른 파일을 잘못 수정한 후 액세스 권한을 잃는 경우 홈 디렉터리 AWS CloudShell 를 삭제하여 기본 설정으로 돌아갈 수 있습니다. 8단계: 쉘 세션 홈 디렉터리 삭제
(맨 위로 이동)
외부 IP 주소를 ping할 수 없음
문제: 명령줄에서 ping 명령(예: ping amazon.com
)을 실행하면 다음 메시지가 나타납니다.
ping: socket: Operation not permitted
원인: ping 유틸리티는 인터넷 제어 메시지 프로토콜(ICMP)을 사용하여 에코 요청 패킷을 대상 호스트로 보냅니다. 대상에서 응답할 때까지 에코를 기다립니다. ICMP 프로토콜이에서 활성화되지 않았으므로 AWS CloudShell ping 유틸리티는 쉘의 컴퓨팅 환경에서 작동하지 않습니다.
해결 방법:에서 ICMP가 지원되지 않기 때문에 다음 명령을 실행하여 Netcat을 설치할 AWS CloudShell수 있습니다. Netcat은 TCP 또는 UDP를 사용하여 네트워크 연결을 읽고 쓰기 위한 컴퓨터 네트워킹 유틸리티입니다.
sudo yum install nc nc -zv www.amazon.com 443
(맨 위로 이동)
터미널 준비 시 문제가 발생했습니다.
문제: Microsoft Edge 브라우저를 AWS CloudShell 사용하여에 액세스하려고 하면 셸 세션을 시작할 수 없으며 브라우저에 오류 메시지가 표시됩니다.
원인: AWS CloudShell Microsoft Edge의 이전 버전과 호환되지 않습니다. 지원되는 브라우저의 최신 4가지 메이저 버전을 AWS CloudShell 사용하여에 액세스할 수 있습니다.
해결 방법: Microsoft 사이트
(맨 위로 이동)
PowerShell에서 화살표 키가 정상 작동하지 않습니다
문제: 정상 작동 중에는 화살표 키로 명령줄 인터페이스를 탐색하고 명령 이력을 앞뒤로 스캔할 수 있습니다. 그러나 AWS CloudShell에 있는 일부 PowerShell 버전에서 화살표 키를 누르면 문자가 잘못 출력될 수 있습니다.
원인: 화살표 키가 문자를 잘못 출력하는 상황은 Linux에서 실행되는 PowerShell 7.2.x 버전에서 알려진 문제입니다.
해결 방법: 화살표 키 동작을 수정하는 이스케이프 시퀀스를 제거하려면 PowerShell 프로필 파일을 편집하고 $PSStyle
변수를 PlainText
(으)로 설정하십시오.
-
AWS CloudShell 명령줄에 다음 명령을 입력하여 프로파일 파일을 엽니다.
vim ~/.config/powershell/Microsoft.PowerShell_profile.ps1
참고
이미 PowerShell에 있는 경우, 다음 명령으로 편집기에서 프로필 파일을 열 수도 있습니다.
vim $PROFILE
-
편집기에서 파일의 기존 텍스트 끝으로 이동한 다음 i를 눌러 삽입 모드로 전환한 후 다음 명령문을 추가합니다.
$PSStyle.OutputRendering = 'PlainText'
-
편집한 후 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 리전 의 리전 식별자를 나타냅니다 AWS Systems Manager. 예를 들어, 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
모듈이의 per-service AWS.Tools 모듈로 대체됩니다 AWS CloudShell.
해결 방법: 명시적 가져오기 문이 더 이상 필요하지 않거나 관련 per-service 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 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 리전을 참조하세요. AWS CloudShell
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 리포지토리로 푸시하는 데 필요한 모든 권한이 있는지 확인합니다.
VPC 환경에서 AWS CloudShell VPC 내 리소스에 액세스할 수 없음
문제: VPC 환경을 사용하는 동안 AWS CloudShell VPC 내의 리소스에 액세스할 수 없습니다.
원인: AWS CloudShell VPC 환경은 VPC의 네트워크 설정을 상속합니다.
해결 방법: 이 문제를 해결하려면 VPC가 리소스에 액세스하도록 올바르게 설정되어 있는지 확인합니다. 자세한 내용은 VPC 설명서 다른 네트워크에 VPC 연결 및 Network Access Analyzer 설명서 Network Access Analyzer를 참조하세요. 명령줄 프롬프트 또는 AWS CloudShell VPC 콘솔 페이지에서 환경 `ip -a` 내에서 명령을 실행하여 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 환경에 액세스할 수 있습니다.
원인: CreateEnvironment
권한을 VPC 환경 생성으로만 제한하고 이미 퍼블릭 환경을 생성한 경우 웹 사용자 인터페이스를 사용하여 이 환경을 삭제할 때까지 기존 퍼블릭 CloudShell 환경에 대한 액세스 권한이 유지됩니다. 그러나 이전에 CloudShell을 사용한 적이 없는 경우 퍼블릭 환경에 액세스할 수 없습니다.
해결 방법: 퍼블릭 AWS CloudShell 환경에 대한 액세스를 제한하려면 IAM 관리자가 먼저 IAM 정책을 제한으로 업데이트한 다음 AWS CloudShell 웹 사용자 인터페이스를 사용하여 기존 퍼블릭 환경을 수동으로 삭제해야 합니다. (작업 → CloudShell 환경 삭제).