☁️ AWS CloudShell (기본 + VPC 모드)
🔷 AWS CloudShell 정의
AWS Management Console에서 즉시 실행 가능한, IAM 권한이 사전 적용된 브라우저 기반 셸 환경
🧩 CloudShell의 역할
“로컬 환경 없이 AWS를 바로 제어하기 위한 관리·실습용 터미널”
- 설치 ❌
- 인증 설정 ❌
- 즉시 실행 ⭕
- AWS CLI / SDK 실습 최적화
⚙️ 기본 동작 구조
🔐 인증 & 권한
- AWS Console 로그인 사용자 = CloudShell 사용자
- IAM 권한 그대로 상속
- 별도 Access Key 관리 불필요
🖥️ 실행 환경
- Amazon Linux 2023
- 1 vCPU / 2GB RAM
- Bash / PowerShell / Zsh
- Node.js, Python, .NET 기본 제공
⏱️ 세션 중심 아키텍처
CloudShell은 “항상 살아있는 서버”가 아니라 “세션 기반 환경”
세션 종료 조건
- 20~30분 입력 없음
- 약 12시간 이상 지속
세션 특징
- 리전 당 최대 10개 동시 세션
- 종료 시 환경 대부분 초기화
- 필요 시 홈 디렉터리 삭제로 완전 리셋 가능
💾 스토리지 전략 정리
기본 CloudShell
리전당 1GB 영구 스토리지 제공
$HOME디렉터리- 120일 미사용 시 자동 삭제
- KMS 암호화
- 장기 보관 → S3 / CodeCommit 권장
VPC 모드 CloudShell
❌ 영구 스토리지 없음
- 세션 종료 시 즉시 삭제
- 실습/운영용 임시 환경에 한정
🌐 네트워크 모델 비교
기본 CloudShell
- Outbound 인터넷 ⭕
- Inbound 접근 ❌
- Public IP ❌
- 외부 접근 불가, 내부에서만 사용
CloudShell VPC 모드
CloudShell을 VPC 내부에 배치
- Private Subnet 접근 ⭕
- Private EC2 / RDS 접속 ⭕
- Bastion Host 대체 가능
🔒 VPC 모드 핵심 제약
보안 강화 ↔ 사용성 감소 트레이드오프
- 환경 최대 2개
- 환경당 보안 그룹 최대 5개
- 파일 업로드/다운로드 ❌
- 인터넷 접근:
- NAT Gateway 있을 때만 가능
- AWS 서비스 호출:
- VPC Endpoint 필수
🐳 컨테이너 활용 포인트
CloudShell = 가벼운 Docker 실습 환경
- Docker 기본 설치
- 간단한 컨테이너 테스트 가능
- Redis 등 경량 서비스 실행 가능
⚠️ 대형 이미지 / 고자원 컨테이너는 부적합
🧠 보안 관점 정리
CloudShell은 “안전하지만 완전한 격리는 아님”
- IAM 기반 접근 제어
- Safe Paste 기본 활성화
- CloudTrail 기록 가능
- 단, 명령 상세 내용은 제한적
- 기본 모드에서는 외부 인터넷 접근 가능 → 데이터 유출 주의
- VPC 모드 사용 시 보안 수준 ↑
🗺️ 전체 흐름 아키텍처
[ 사용자 브라우저 ]
|
v
[ AWS Console ]
|
| IAM 인증
v
[ AWS CloudShell ]
| |
| +--> (기본 모드)
| - 인터넷 접근 가능
|
+--> (VPC 모드)
- Private Subnet
- Private EC2 / RDS
- NAT Gateway / VPC Endpoint 필요
📌 선택 가이드
언제 어떤 CloudShell을 쓰는가?
기본 CloudShell이 적합한 경우
- AWS CLI 실습
- 단기 테스트
- 콘솔 보조 터미널
- 외부 인터넷 필요 작업
CloudShell VPC 모드가 적합한 경우
- Private EC2 관리
- Bastion Host 제거
- 보안이 중요한 운영 환경
- 내부망 전용 접근
🧠 최종 요약
💡 CloudShell은 “개발 서버”가 아니라 “즉시 접근 가능한 AWS 관리 도구”
- 빠르고 안전한 접근
- 환경 유지 목적 ❌
- 운영·관리·실습 목적 ⭕
- VPC 모드는 보안 강화용 옵션