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

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

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

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

컴퓨팅 환경 리소스

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

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

  • 2-GiB RAM

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

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

자세한 내용은 영구 스토리지 단원을 참조하십시오.

CloudShell 네트워크 요구 사항

WebSockets

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

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

참고

특정 를 허용 목록으로 지정하여 세분화된 권한을 정의하려는 경우 AWS Systems Manager 세션URL에서 입력 전송 및 출력 수신을 위한 WebSocket 연결을 여는 데 사용하는 의 일부를 추가할 URLs수 있습니다. ( 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 작업을 참조하세요.

사전 설치 소프트웨어

참고

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

사전 설치 쉘
명칭 설명 Version information

Bash

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

bash --version

PowerShell (pwsh)

명령줄 인터페이스 및 스크립팅 언어 지원을 제공하는 PowerShell 는 Microsoft의 를 기반으로 구축됩니다.NET Command Language Runtime.Uses는 .NET 객체를 수락하고 반환cmdlets하는 라는 경량 명령을 PowerShell 사용합니다.

pwsh --version

Z 쉘(zsh)

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

zsh --version

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

CLI
명칭 설명 Version information

AWS CDK 툴킷 CLI

CLI 명령인 AWS CDK Toolkitcdk은 AWS CDK 앱과 상호 작용하는 기본 도구입니다. 앱을 실행하고, 정의한 애플리케이션 모델을 조사하고, 에서 생성된 AWS CloudFormation 템플릿을 생성하고 배포합니다 AWS CDK.

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

cdk --version

AWS CLI

AWS CLI 는 명령줄에서 여러 AWS 서비스를 관리하고 스크립트를 사용하여 자동화하는 데 사용할 수 있는 명령줄 인터페이스입니다. 자세한 내용은 CLI 의 에서 AWS 서비스 관리 CloudShell 단원을 참조하십시오.

최신 up-to-date 버전 AWS CLI 2를 사용하는 방법에 대한 자세한 내용은 섹션을 참조하세요홈 디렉터리 AWS CLI 에 설치.

aws --version

EB CLI

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

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

eb --version

Amazon ECS CLI

Amazon Elastic Container Service(AmazonECS) 명령줄 인터페이스(CLI)는 클러스터 및 작업의 생성, 업데이트 및 모니터링을 간소화하는 고급 명령을 제공합니다.

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

ecs-cli --version

AWS SAM CLI

AWS SAM CLI 는 AWS Serverless Application Model 템플릿 및 애플리케이션 코드에서 작동하는 명령줄 도구입니다. 여러 작업을 수행할 수 있습니다. 여기에는 로컬에서 Lambda 함수 호출, 서버리스 애플리케이션을 위한 배포 패키지 생성, 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)을 사전 설치합니다 AWS Tools for PowerShell.

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

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

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

런타임 및 AWS SDKs
명칭 설명 Version information

Node.js (npm 포함)

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

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

  • Node.js: node --version

  • npm: npm --version

SDK Node.js JavaScript 의 용

소프트웨어 개발 키트(SDK)는 Amazon S3, Amazon EC2, DynamoDB 및 Amazon 등의 AWS 서비스에 객체를 제공하여 JavaScript 코딩을 간소화하는 데 도움이 됩니다SWF. 자세한 정보는 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 Python용(Boto3)

Boto는 Python 개발자가 Amazon 및 Amazon S3와 같은 를 생성 AWS 서비스, 구성 EC2 및 관리하는 데 사용하는 소프트웨어 개발 키트(SDK)입니다. 는 easy-to-use에 대한 낮은 수준의 액세스API뿐만 아니라 객체 지향 를 SDK 제공합니다 AWS 서비스.

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

pip3 list | grep boto3

개발 도구 및 쉘 유틸리티

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

bash-completion

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

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

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

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

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

dnf info bash-completion

CodeCommit Git용 유틸리티

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

자세한 내용은 AWS CodeCommit 사용 설명서의 AWS CodeCommit 와 에 대한 HTTPS 연결 설정 단계를 git-remote-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 를 사용하여 Kubernetes 클러스터의 제어 영역과 통신하기 위한 명령줄 도구입니다API.

kubectl --version

make

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

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 클라이언트입니다. 자세한 내용은 OpenSSH 에서 관리하는 Open 사이트를 참조하세요BSD.

ssh -V

sudo

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

sudo --version

tar

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

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를 사용하면 애플리케이션을 인프라와 분리하여 소프트웨어를 빠르게 제공할 수 있습니다. 이를 통해 내에서 Dockerfiles를 빌드하고 AWS CloudShell를 사용하여 Docker 자산을 빌드할 수 있습니다CDK. Docker에서 지원되는 리전에 대한 AWS 자세한 내용은 에 지원되는 AWS 리전을 참조하세요 AWS CloudShell. Docker의 환경 공간은 제한적이라는 점에 유의해야 합니다. 개별 이미지가 크거나 기존 Docker 이미지가 너무 많으면 문제가 발생할 수 있습니다. Docker에 대한 자세한 내용은 Docker 설명서 안내서를 참조하세요.

docker --version

홈 디렉터리 AWS CLI 에 설치

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

중요

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

AWS 공동 책임 모델에 대한 자세한 내용은 섹션을 참조하세요의 데이터 보호 AWS CloudShell.

설치 AWS CLI
  1. CloudShell 명령줄에서 curl 명령을 사용하여 AWS CLI 설치된 의 압축 사본을 쉘로 전송합니다.

    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을(를) 입력하면 새로 설치된 프로그램이 열립니다.

중요

패키지는 디렉터리의 dnf 설치 프로그램(예/usr/bin: )과 같은 유틸리티를 관리하며, 이는 쉘 세션이 종료될 때 재활용됩니다. 즉 세션별로 추가 소프트웨어가 설치되고 사용됩니다.

스크립트로 쉘 수정

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

주의

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

.bashrc 또는 다른 파일을 잘못 수정한 후 액세스 권한을 잃는 경우 홈 디렉터리를 삭제하여 기본 설정 AWS CloudShell 으로 돌아갈 수 있습니다. 8단계: 쉘 세션 홈 디렉터리 삭제

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

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

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

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

    :wq

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

    source .bashrc

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