AWS (Amazon Web Services)
세계 최대 클라우드 플랫폼.
핵심 서비스
컴퓨팅
서비스
설명
EC2
가상 서버 (인스턴스)
Lambda
서버리스 함수 실행
ECS
컨테이너 오케스트레이션
EKS
관리형 Kubernetes
Fargate
서버리스 컨테이너 (EC2 없이)
스토리지
서비스
설명
S3
오브젝트 스토리지
EBS
EC2 블록 스토리지
EFS
공유 파일 시스템
Glacier
저비용 아카이브 스토리지
데이터베이스
서비스
설명
RDS
관리형 관계형 DB (MySQL, PostgreSQL 등)
Aurora
AWS 최적화 MySQL/PostgreSQL 호환
DynamoDB
서버리스 NoSQL
ElastiCache
관리형 Redis/Memcached
네트워크
서비스
설명
VPC
가상 사설 네트워크
Route 53
DNS + 헬스체크
CloudFront
CDN
ALB/NLB
로드 밸런서
API Gateway
REST/WebSocket API 관리
기타
서비스
설명
IAM
권한 및 접근 관리
SQS
메시지 큐
SNS
알림 서비스
CloudWatch
모니터링 & 로그
ECR
컨테이너 이미지 레지스트리
Secrets Manager
시크릿 관리
IAM
User — 실제 사람
Group — User의 묶음 (권한을 그룹에 부여)
Role — 서비스/리소스에 부여하는 권한 (EC2, Lambda 등)
Policy — 권한 정의 (JSON)
// 최소 권한 원칙 (Least Privilege)
{
"Version" : "2012-10-17" ,
"Statement" : [{
"Effect" : "Allow" ,
"Action" : [ "s3:GetObject" , "s3:PutObject" ],
"Resource" : "arn:aws:s3:::my-bucket/*"
}]
}
S3
# AWS CLI
aws s3 ls # 버킷 목록
aws s3 ls s3://my-bucket # 파일 목록
aws s3 cp file.txt s3://my-bucket/ # 업로드
aws s3 cp s3://my-bucket/file.txt ./ # 다운로드
aws s3 sync ./dist s3://my-bucket # 디렉토리 동기화
aws s3 rm s3://my-bucket/file.txt # 삭제
# 정적 웹 호스팅
aws s3 website s3://my-bucket \
--index-document index.html \
--error-document error.html
EC2
# 인스턴스 접속
ssh -i key.pem ec2-user@ < public-i p >
# 인스턴스 타입 (주요)
t3.micro — 무료 티어, 개발용
t3.small — 소규모 서비스
t3.medium — 중규모
c5.large — CPU 집약적
r5.large — 메모리 집약적
VPC 기본 구조
VPC (10.0.0.0/16)
├── Public Subnet (10.0.1.0/24) ← 인터넷 게이트웨이 연결
│ └── EC2, ALB, NAT Gateway
└── Private Subnet (10.0.2.0/24) ← 인터넷 직접 접근 불가
└── RDS, ElastiCache, 앱 서버
Lambda
export const handler = async ( event : any ) => {
console. log ( 'Event:' , JSON . stringify (event))
return {
statusCode: 200 ,
headers: { 'Content-Type' : 'application/json' },
body: JSON . stringify ({ message: 'Hello!' }),
}
}
# 배포
aws lambda update-function-code \
--function-name my-function \
--zip-file fileb://function.zip
메모