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

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

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

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

컴퓨팅 환경 리소스

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

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

  • 2기가비트 램

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

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

자세한 정보는 영구 스토리지을 참조하세요.

중요

현재AWS CloudShell 컴퓨팅 환경은 Docker 컨테이너를 지원하지 않습니다.

CloudShell네트워크 요구 사항

WebSockets

CloudShellWebSocket프로토콜에 따라 달라지므로 사용자의 웹 브라우저와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).

리전은 미국 동부 (오하이오) 리전과 같이 에서 지원하는 리전의AWS 리전의 리전의 리전의 리전의 리전의 리전의 리전의 리전의 리전의 리전의 리전의 리전과 같이us-east-2 미국 동부 (오하이오) 리전과 같이 미국 동부AWS Systems Manager

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

사전 설치된 소프트웨어

참고

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

조개

사전 설치된 셸
이름 설명 Version information

Bash

Bash 셸은 의 기본 셸 응용 프로그램입니다AWS CloudShell.

bash --version

PowerShell

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

(Get-Host).Version

Z 셸 (애쉬)

Z 셸이라고도zsh 하는 Z 셸은 테마 및 플러그인에 대한 향상된 사용자 지정 지원을 제공하는 Bourne Shell의 확장 버전입니다.

zsh --version

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

CLI
이름 설명 Version information

AWS CLI

AWS CLI는 명령줄에서 여러AWS 서비스를 관리하고 스크립트를 통해 해당 제품을 자동화하는 데 사용할 수 있는 명령줄 인터페이스입니다. 자세한 정보는 다음 지역AWS 서비스 이용AWS CloudShell을 참조하세요.

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

aws --version

EB CLI

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

자세한 내용은 AWS Elastic Beanstalk개발자 안내서의 Elastic Beanstalk 명령줄 인터페이스 (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 SAMCLI는AWS Serverless Application Model 템플릿 및 애플리케이션 코드에서 작동하는 명령줄 도구입니다. 여러 작업을 수행할 수 있습니다. 여기에는 로컬에서 Lambda 함수를 호출하고, 서버리스 애플리케이션을 위한 배포 패키지를 생성하고, 서버리스 애플리케이션을AWS 클라우드에 배포하는 것이 포함됩니다.

자세한 내용은 AWS Serverless Application Model개발자 안내서의AWS SAM CLI 명령 참조를 참조하십시오.

sam --version

AWS Tools for PowerShell 에서 제공하는 기능을 기반으로 구축된AWS Tools for PowerShellPowerShell 모듈입니다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 SDK: Node.js 및 파이썬 3

런타임과 AWS SDK
이름 설명 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

파이썬 3과 파이썬 2는 모두 셸 환경에서 사용할 준비가 되어 있습니다. 이제 Python 3은 프로그래밍 언어의 기본 버전으로 간주됩니다 (Python 2에 대한 지원은 2020년 1월에 종료됨). 자세한 내용은 공식 Python 사이트의 설명서를 참조하십시오.

또한 Python용 패키지 설치 프로그램인 pip가 사전 설치되어 있습니다. 이 명령줄 프로그램을 사용하여 Python Package 색인과 같은 온라인 색인에서 Python 패키지를 설치할 수 있습니다. 자세한 내용은 Python 패키징 기관에서 제공하는 설명서를 참조하십시오.

  • 파이썬 2:python --version

  • Python 3:python3 --version

  • 핍:pip3 --version

Python용 SDK(Boto3)

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

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

pip3 list | grep boto3

개발 도구 및 셸 유틸리티

개발 도구 및 셸 유틸리티
이름 설명 Version information

배쉬 컴플리트

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

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

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

사용자 지정 완료 스크립트를 사용하려면 영구 홈 디렉토리 ($HOME) 에 추가하고 직접 소싱하십시오.bashrc.

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

yum info bash-completion

CodeCommitGit용 유틸리티

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

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

pip3 list | grep git-remote-codecommit

Git

Git은 브랜치 워크플로우 및 콘텐츠 스테이징을 통해 최신 소프트웨어 개발 방식을 지원하는 분산 버전 제어 시스템입니다. 자세한 내용은 Git의 공식 사이트에서 설명서 페이지를 참조하세요.

git --version

음란한

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

iputils 도구의 예:arping -V

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

jq --version

만들

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

make --version

man

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

man --version

소품

procps는 현재 실행 중인 프로세스를 모니터링하고 중지하는 데 사용할 수 있는 시스템 관리 유틸리티입니다. 자세한 내용은 procps로 실행할 수 있는 프로그램을 나열하는 README 파일을 참조하십시오.

ps --version

SSH 클라이언트

SSH 클라이언트는 원격 컴퓨터와의 암호화된 통신을 위해 보안 셸 프로토콜을 사용합니다. OpenSSH는 사전 설치된 SSH 클라이언트입니다. 자세한 내용은 OpenBSD가 관리하는 OpenSSH 사이트를 참조하세요.

ssh -V

sudo

sudo 유틸리티를 사용하면 다른 사용자 (일반적으로 수퍼유저) 의 보안 권한으로 프로그램을 실행할 수 있습니다. Sudo는 시스템 관리자로 응용 프로그램을 설치해야 할 때 유용합니다. 자세한 내용은 Sudo 매뉴얼을 참조하십시오.

sudo --version

tar

tar는 여러 파일을 단일 아카이브 파일 (타르볼이라고도 함) 로 그룹화하는 데 사용할 수 있는 명령줄 유틸리티입니다. 자세한 내용은 GNU tar 설명서를 참조하십시오.

tar --version.

tmux

tmux는 여러 창에서 여러 프로그램을 동시에 실행하는 데 사용할 수 있는 터미널 멀티플렉서입니다. 자세한 내용은 tmux에 대한 간략한 소개를 제공하는 블로그를 참조하십시오.

tmux -V

unzip

자세한 내용은 압축/압축 해제를 참조하십시오.

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

vim --version

wget

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

wget --version

압축/압축 해제

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

unzip --version

zip --version

kubectl

kubectl은 쿠버네티스 API를 사용하여 쿠버네티스 클러스터의 컨트롤 플레인과 통신하기 위한 커맨드 라인 툴이다.

kubectl --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. 사용자 편의를 위해aws 명령을 실행할 때 도구 설치 경로를 지정할 필요가 없도록PATH 환경 변수도 업데이트하는 것이 좋습니다.

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

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

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

참고

타사 애플리케이션을 컴퓨팅 환경에 설치하기 전에 공유 보안 책임 모델을 검토하는AWS CloudShell 것이 좋습니다.

기본적으로 모든AWS CloudShell 사용자는 sudo 권한을 가집니다. 따라서sudo 명령을 사용하여 셸의 컴퓨팅 환경에서 아직 사용할 수 없는 소프트웨어를 설치할 수 있습니다. 예를 들어 YUM 패키지 관리 유틸리티를sudo 사용하여 GNU nano 텍스트 편집기를 설치할 수 있습니다.

sudo yum install nano

그런 다음 입력하여 새로 설치된 프로그램을 실행할 수nano 있습니다.

중요

디렉토리 (/usr/bin예:) 에 있는 yum install 프로그램과 같은 Package 관리 유틸리티는 셸 세션이 종료될 때 재활용됩니다. 즉, 추가 소프트웨어가 세션별로 설치 및 사용됩니다.

스크립트로 셸 수정하기

기본 셸 환경을 수정하려는 경우 셸 환경이 시작될 때마다 실행되는 셸 스크립트를 편집할 수 있습니다. .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 셸을 사용하고 있음을% 나타내도록 변경되었습니다.