AWS CloudShell 컴퓨팅 환경: 사양 및 소프트웨어 - AWS CloudShell

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS CloudShell 컴퓨팅 환경: 사양 및 소프트웨어

시작하면 AWS CloudShell Amazon Linux 2023을 기반으로 하는 컴퓨팅 환경이 생성되어 셸 환경을 호스팅합니다. 이 환경은 컴퓨팅 리소스(vCPU 및 메모리)로 구성되며 명령줄 인터페이스에서 액세스할 수 있는 다양한 사전 설치 소프트웨어가 있습니다. 소프트웨어를 설치하고 쉘 스크립트를 수정하여 기본 환경을 구성할 수도 있습니다.

컴퓨팅 환경 리소스

개별 AWS CloudShell 컴퓨팅 환경에는 다음과 같은 CPU 및 메모리 리소스가 할당됩니다.

  • 1 vCPU(가상 중앙 처리 장치)

  • 2-GiB RAM

또한 환경은 다음과 같은 스토리지 구성으로 프로비저닝됩니다.

  • 1-GB 영구 스토리지(세션 종료 후에도 스토리지 유지)

자세히 알아보려면 영구 스토리지의 내용을 참조하세요.

CloudShell 네트워크 요구 사항

WebSockets

CloudShell WebSocket 프로토콜에 따라 달라지며, 프로토콜에 따라 사용자의 웹 브라우저와 AWS 클라우드 CloudShell 서비스 간에 양방향 대화식 통신이 가능합니다. 사설 네트워크에서 브라우저를 사용하는 경우 프록시 서버와 방화벽을 통해 인터넷에 안전하게 액세스할 수 있을 것입니다. WebSocket 통신은 일반적으로 프록시 서버를 통해 문제 없이 이루어질 수 있습니다. 하지만 프록시 서버가 제대로 작동하지 않는 경우도 WebSockets 있습니다. 이 문제가 발생하면 CloudShell 인터페이스에서 다음 오류를 Failed to open sessions : Timed out while opening the session 보고합니다.

이 오류가 반복해서 발생하는 경우 프록시 서버 설명서를 참조하여 허용하도록 구성되어 있는지 확인하십시오 WebSockets. 아니면 네트워크 시스템 관리자에게 문의하시기 바랍니다.

참고

특정 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).

리전은 미국 동부(오하이오) 리전의 us-east-2 같이 AWS Systems Manager이 지원하는 AWS 리전의 리전 식별자를 나타냅니다.

세션 ID는 특정 Systems Manager 세션이 정상적으로 시작된 생성되므로 URL 허용 목록을 업데이트할 때만 wss://ssmmessages.region.amazonaws.com 지정이 가능합니다. 자세한 내용은 AWS Systems ManagerAPI 참조의 StartSession작업을 참조하십시오.

사전 설치 소프트웨어

참고

AWS CloudShell 개발 환경은 최신 소프트웨어에 액세스할 수 있도록 정기적으로 업데이트되므로 이 설명서에는 특정 버전 번호가 표시하지 않습니다. 그 대신, 설치된 버전을 확인할 수 있는 방법을 알려 드립니다. 설치된 버전을 확인하려면 프로그램명을 입력하고 --version 옵션(예: git --version)을 입력합니다.

사전 설치 쉘
명칭 Description Version information

Bash

Bash 쉘은 AWS CloudShell용 기본 쉘 애플리케이션입니다.

bash --version

PowerShell (pwsh)

명령줄 인터페이스와 스크립팅 언어 지원을 제공하는 PowerShell 것은 Microsoft의 .NET 명령 언어 런타임을 기반으로 구축되었습니다. PowerShell .NET 객체를 수락하고 cmdlets 반환하는 간단한 명령을 사용합니다.

pwsh --version

Z 쉘(zsh)

Z 쉘, 또는 zsh은(는) 일명 Bourne 쉘의 확장 버전으로 테마 및 플러그인에 대한 향상된 사용자 지정 지원을 제공합니다.

zsh --version

AWS 명령줄 인터페이스(CLI)

CLI
명칭 Description Version information

AWS CDK 툴킷 CLI

AWS CDK 툴킷, CLI 명령어 cdk은(는) AWS CDK 앱과 상호 작용하는 기본 도구입니다. 앱을 실행하고, 정의한 애플리케이션 모델 정보를 얻고, AWS CloudFormation 템플릿(AWS CDK에서 생성)을 배포합니다.

자세한 내용은 AWS CDK 툴킷 단원을 참조하세요.

cdk --version

AWS CLI

AWS CLI은(는) 명령줄에서 여러 AWS 서비스를 관리하고 스크립트를 사용하여 자동화하는 데 사용할 수 있는 명령줄 인터페이스입니다. 자세히 알아보려면 다음 지역AWS 서비스 이용AWS CloudShell의 내용을 참조하세요.

up-to-date AWS CLI버전 2를 가장 많이 사용하고 있는지 확인하는 방법에 대한 자세한 내용은 을 참조하십시오홈 디렉터리에 AWS CLI 설치하기.

aws --version

EB CLI

AWS Elastic Beanstalk CLI는 로컬 리포지토리에서 환경 생성, 업데이트 및 모니터링을 단순화하는 대화형 명령을 제공하는 명령줄 인터페이스입니다.

자세한 내용은 AWS Elastic Beanstalk 개발자 안내서에서 Elastic Beanstalk 명령줄 인터페이스(EB CLI) 사용을 참조하세요.

eb --version

Amazon ECS CLI

Amazon Elastic Container Service(Amazon ECS) 명령줄 인터페이스(CLI)는 로컬 개발 환경에서 클러스터 및 작업 모니터링을 간소화하는 상위 수준 명령을 제공합니다.

자세한 내용은 Amazon Elastic Container Service 개발자 안내서Amazon ECS 명령줄 참조 사용을 참조하세요.

ecs-cli --version

AWS SAM CLI

AWS SAM CLI는 AWS Serverless Application Model 템플릿 및 애플리케이션에서 작동하는 명령줄 도구입니다. 여러 작업을 수행할 수 있습니다. 여기에는 로컬에서 람다 함수 호출, 서버리스 애플리케이션을 위한 배포 패키지 생성, 서버리스 애플리케이션을AWS 클라우드에 배포하는 방법이 포함됩니다.

자세한 내용은 AWS Serverless Application Model 개발자 가이드AWS SAM CLI 명령 참조를 참조하세요.

sam --version

AWS Tools for PowerShell 에서 제공하는 기능을 기반으로 구축된 AWS Tools for PowerShell PowerShell 모듈입니다AWS SDK for .NET. 를 사용하면 PowerShell 명령줄에서 AWS 리소스에 대한 작업을 스크립팅할 수 있습니다. AWS Tools for PowerShell

AWS CloudShell은(는) AWS Tools for PowerShell의 모듈화된 버전(AWS.tools)을 사전 설치합니다.

자세한 내용은 사용 AWS Tools for PowerShell설명서의 AWS 도구 사용을 참조하십시오. PowerShell

pwsh --Command ' Get-Module -ListAvailable -Name AWS.Tools.Common'

런타임 및 AWS SDK: Node.js 및 Python 3

런타임 및 AWS SDK
명칭 Description Version information

Node.js (npm 포함)

Node.js 는 비동기 프로그래밍 기술을 더 쉽게 적용할 수 있도록 설계된 JavaScript 런타임입니다. 자세한 정보는 공식 Node.js 사이트에 있는 설명서에서 확인하세요.

npm은 온라인 모듈 레지스트리에 대한 액세스를 제공하는 패키지 관리자입니다. JavaScript 자세한 내용은 공식 npm 사이트의 설명서를 참조하십시오.

  • Node.js: node --version

  • npm: npm --version

Node.js 용 JavaScript SDK

소프트웨어 개발 키트 (SDK) 는 Amazon S3, Amazon EC2, DynamoDB 및 Amazon SWF를 비롯한 AWS 서비스에 JavaScript 객체를 제공하여 코딩을 단순화하는 데 도움이 됩니다. 자세한 정보는 AWS SDK for JavaScript 개발자 안내서를 참조하세요.

npm -g ls --depth 0 2>/dev/null | grep aws-sdk

Python

Python 3은 셸 환경에서 사용할 준비가 되었습니다. 현재 Python 3이 프로그래밍 언어 기본 버전으로 간주됩니다(Python 2 지원은 2020년 1월에 종료). 자세한 정보는 Python 공식 사이트에 있는 설명서에서 확인하세요.

또한 사전 설치된 pip는 Python용 패키지 설치 프로그램입니다. 이 명령줄 프로그램을 사용하여 Python 패키지 색인과 같은 온라인 색인에서 Python 패키지를 설치할 수 있습니다. 자세한 정보는 Python Packaging Authority 제공 설명서에서 확인하세요.

  • Python 3: python3 --version

  • pip: pip3 --version

SDK for Python (Boto3)

Boto는 Python 개발자가 Amazon EC2, Amazon S3처럼 AWS 서비스의 생성, 구성, 관리 시 사용하는 소프트웨어 개발 키트(SDK)입니다. SDK는 객체 easy-to-use 지향 API와 저수준 액세스를 제공합니다. AWS 서비스

자세한 내용은Boto3 설명서를 참조하십시오.

pip3 list | grep boto3

개발 도구 및 쉘 유틸리티

개발 도구 및 쉘 유틸리티
명칭 Description Version information

bash-completion

bash-completion은 Tab 키를 눌러 부분적으로 입력된 명령이나 인수를 자동으로 완성할 수 있는 쉘 함수 모음입니다. bash-completion이 지원하는 패키지는 /usr/share/bash-completion/completions에서 찾을 수 있습니다.

패키지 명령에 대한 자동 완성을 설정하려면 프로그램 파일을 소싱해야 합니다. 예를 들어, Git 명령의 자동 완성을 설정하려면 다음 줄을 .bashrc에 추가하여 AWS CloudShell 세션이 시작될 때마다 기능을 사용할 수 있게 합니다.

source /usr/share/bash-completion/completions/git

사용자 지정 완성 스크립트를 사용하려면 영구 홈 디렉터리($HOME)에 추가하고 .bashrc에서 직접 소싱합니다.

자세한 내용은 의 프로젝트의 README 페이지를 참조하십시오. GitHub

dnf info bash-completion

CodeCommit Git용 유틸리티

git-remote-codecommit CodeCommit Git을 확장하여 리포지토리에서 코드를 푸시하고 가져오는 간단한 방법을 제공하는 유틸리티입니다. 이는 페더레이션 액세스, ID 공급자 및 임시 자격 증명을 사용한 연결을 지원하는 데 권장되는 방법입니다.

자세한 내용은 사용 설명서의 witter에 대한 HTTPS 연결 설정 단계를 참조하십시오. AWS CodeCommit git-remote-codecommit AWS CodeCommit

pip3 list | grep git-remote-codecommit

Git

Git는 브랜치 워크플로와 콘텐츠 스테이징을 통해 최신 소프트웨어 개발 방식을 지원하는 분산 버전 제어 시스템입니다. 자세한 정보는 Git 공식 사이트에 있는 설명서에서 확인하세요.

git --version

iputils

iputils 패키지에는 Linux 네트워킹용 유틸리티가 들어 있습니다. 제공된 유틸리티에 대한 자세한 내용은 의 iputils 저장소를 참조하십시오. GitHub

iputils 도구 예시: arping -V

jq jq 유틸리티는 JSON 형식의 데이터를 구문 분석하여 명령줄 필터로 수정된 출력을 생성합니다. 자세한 내용은 에서 호스팅되는 jq 설명서를 참조하십시오. GitHub

jq --version

kubectl

kubectl은 Kubernetes API를 사용하여 Kubernetes 클러스터의 컨트롤 플레인과 통신하는 명령줄 도구입니다.

kubectl --version

make

make 유틸리티는 makefiles으로 작업 세트를 자동화하고 코드 컴파일을 구성합니다. 자세한 내용은 GNU Make 설명서를 참조하십시오.

make --version

man

man 명령은 명령줄 유틸리티 및 도구에 대한 매뉴얼 페이지를 제공합니다. 예를 들어, man ls은(는) 디렉토리 콘텐츠를 나열하는 ls 명령의 매뉴얼 페이지를 반환합니다. 자세한 내용은 man 페이지에 대한 Wikipedia 페이지를 참조하십시오.

man --version

nano nano는 텍스트 기반 인터페이스용의 작고 사용자 친화적인 편집기입니다. 자세한 내용은 GNU 나노 설명서를 참조하십시오.

nano --version

procps

procps는 현재 실행 중인 프로세스를 모니터링하고 중지하는 데 사용하는 시스템 관리 유틸리티입니다. 자세한 정보는 procps로 실행 가능한 프로그램 목록이 수록되어 있는 README 파일에서 확인하세요.

ps --version

SSH 클라이언트

SSH 클라이언트는 보안 쉘 프로토콜로 원격 컴퓨터와의 암호화된 통신을 합니다. OpenSSH는 사전 설치된 SSH 클라이언트입니다. 자세한 정보는 OpenBSD가 유지관리하는 OpenSSH 사이트에서 확인하세요.

ssh -V

sudo

sudo 유틸리티가 있으면 다른 사용자(일반적으로 수퍼유저)의 보안 권한으로 프로그램을 실행할 수 있습니다. Sudo는 시스템 관리자로서 애플리케이션을 설치해야 할 때 유용합니다. 자세한 정보는 Sudo 매뉴얼에서 확인하세요.

sudo --version

tar

tar는 여러 파일을 단일 아카이브 파일(tarball)로 그룹화할 때 사용하는 명령줄 유틸리티입니다. 자세한 내용은 GNU 타르 설명서를 참조하세요.

tar --version

tmux

tmux는 여러 창에서 여러 프로그램을 동시에 실행할 때 사용하는 터미널 멀티플렉서입니다. 자세한 정보는 tmux를 간단하게 소개하는 내용의 블로그에서 확인하세요.

tmux -V

unzip

자세한 정보는 zip/unzip에서 확인하세요.
vim

vim은 텍스트 기반 인터페이스를 통해 상호 작용할 수 있는 사용자 지정 가능한 편집기입니다. 자세한 내용은 vim.org에서 제공되는 설명서 리소스를 참조하십시오.

vim --version

wget

wget은 명령줄의 엔드포인트로 지정된 웹 서버에서 콘텐츠를 검색할 때 사용하는 컴퓨터 프로그램입니다. 자세한 내용은 GNU Wget 설명서를 참조하십시오.

wget --version

zip/unzip

zip/unzip 유틸리티는 데이터 손실 없이 무손실 데이터 압축을 제공하는 아카이브 파일 형식을 사용합니다. zip 명령을 호출하면 파일을 단일 아카이브로 그룹화하고 압축합니다. unzip을 사용하면 아카이브에서 지정된 디렉터리로 파일을 추출합니다.

unzip --version

zip --version

Docker

Docker는 애플리케이션을 개발, 배송 및 실행하기 위한 개방형 플랫폼입니다. Docker를 사용하면 애플리케이션을 인프라에서 분리하여 소프트웨어를 신속하게 제공할 수 있습니다. 이를 통해 내부에 Dockerfile을 빌드하고 CDK를 사용하여 AWS CloudShell Docker 자산을 구축할 수 있습니다. Docker에서 지원되는 지역에 대한 자세한 내용은 Docker 지역을 참조하십시오. Docker 환경에는 공간이 제한되어 있다는 점에 유의해야 합니다. 개별 이미지가 크거나 기존 Docker 이미지가 너무 많으면 문제가 발생할 수 있습니다. Docker에 대한 자세한 내용은 Docker 설명서 가이드를 참조하십시오.

docker --version

홈 디렉터리에 AWS CLI 설치하기

사용자 CloudShell 환경에 사전 설치된 다른 소프트웨어와 마찬가지로 이 AWS CLI 도구도 예정된 업그레이드 및 보안 패치를 통해 자동으로 업데이트됩니다. 최신 up-to-date 버전을 사용하고 싶다면 셸의 AWS CLI 홈 디렉터리에 도구를 수동으로 설치하도록 선택할 수 있습니다.

중요

의 AWS CLI 사본을 홈 디렉터리에 수동으로 설치해야 다음에 CloudShell 세션을 시작할 때 사용할 수 있습니다. 수동 설치가 필요한 이유는 $HOME 외부 디렉터리에 추가된 파일이 쉘 세션 종료 시 삭제되기 때문입니다. 또한 AWS CLI 복사본 설치 후에는 자동으로 업데이트되지 않습니다. 다시 말해, 업데이트와 보안 패치 관리는 사용자의 책임입니다.

AWS 공동 책임 모델데이터 보호: AWS CloudShell에 대한 자세한 내용은 을(를) 참조하세요.

AWS CLI을(를) 설치하려면
  1. 명령줄에서 CloudShell 명령을 사용하여 AWS CLI 설치된 파일의 압축된 사본을 셸로 전송합니다. curl

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  2. 폴더의 압축을 풉니다.

    unzip awscliv2.zip
  3. 도구를 지정 폴더에 추가하려면 AWS CLI 설치 프로그램을 실행합니다.

    sudo ./aws/install --install-dir /home/cloudshell-user/usr/local/aws-cli --bin-dir /home/cloudshell-user/usr/local/bin

    정상적으로 설치되면 명령줄에 다음 메시지가 표시됩니다.

    You can now run: /home/cloudshell-user/usr/local/bin/aws --version
  4. PATH 환경 변수도 업데이트하면 aws 명령을 실행할 때 도구 설치 경로를 지정하지 않아도 되므로 편리합니다.

    export PATH=/home/cloudshell-user/usr/local/bin:$PATH
    참고

    PATH 변경을 취소하면 지정된 경로가 없는 aws 명령에는 기본적으로 AWS CLI의 사전 설치된 버전이 사용됩니다.

쉘 환경에 타사 소프트웨어 설치

참고

공동 보안 책임 모델을 검토한 다음 AWS CloudShell 컴퓨팅 환경에 타사 애플리케이션을 설치할 것을 권장합니다.

기본적으로 전체 AWS CloudShell 사용자에게는 sudo 권한이 있습니다. 따라서 sudo 명령으로 쉘의 컴퓨팅 환경에서 아직 사용할 수 없는 소프트웨어를 설치할 수 있습니다. 예를 들어 DNF 패키지 관리 sudo 유틸리티와 함께 사용하여 설치할 수 있습니다. 그러면 다음과 cowsay 같은 메시지가 있는 소의 ASCII 아트 사진이 생성됩니다.

sudo dnf install cowsay

그리고 echo "Welcome to AWS CloudShell" | cowsay을(를) 입력하면 새로 설치된 프로그램이 열립니다.

중요

Package 관리 유틸리티 (예: 디렉터리) 의 dnf install 프로그램과 같은 유틸리티 (/usr/bin예: 셸 세션이 종료될 때 재활용됨). 즉 세션별로 추가 소프트웨어가 설치되고 사용됩니다.

스크립트로 쉘 수정

기본 쉘 환경을 수정하려면 쉘 환경이 시작될 때마다 실행되는 쉘 스크립트를 편집해야 합니다. .bashrc 스크립트는 기본 bash 쉘이 시작될 때마다 실행됩니다.

주의

.bashrc 파일을 잘못 수정하면 이후에 쉘 환경에 액세스하지 못할 수 있습니다. 편집하기 전 파일 사본을 만들어 두는 것이 좋습니다. .bashrc 편집 시 쉘을 두 개 열어 위험을 줄일 수도 있습니다. 그러면 한 쉘에서 액세스 권한을 잃더라도 다른 쉘에는 계속 로그인한 상태이므로 변경 내용을 롤백할 수 있습니다.

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

이 절차에서는 쉘 환경이 Z 쉘 실행으로 자동 전환되도록 .bashrc 스크립트를 수정합니다.

  1. 텍스트 편집기(예: Vim)로 .bashrc을(를) 엽니다.

    vim .bashrc
  2. 편집기 인터페이스에서 I 키를 눌러 편집을 시작하고 다음을 추가합니다.

    zsh
  3. 종료하고 편집한 .bashrc 파일을 저장하려면 Esc 키를 눌러 Vim 명령 모드로 전환하고 다음을 입력합니다.

    :wq

  4. source 명령으로 .bashrc 파일을 재로드합니다.

    source .bashrc

    명령줄 인터페이스를 다시 사용할 수 있게 되면 프롬프트 기호가 %로 바뀌어 현재 Z 쉘을 사용하고 있음을 나타냅니다.