Search

AWS 기본개념

개요

AWS는 아마존의 클라우드 플랫폼이다.
다른 웹 사이트나 클라이언트측 응용 프로그램에 대해 온라인 서비스를 제공하고 있다. 최종 사용자에게 직접 공개되는 것이 아니라 다른 개발자가 사용 가능한 기능을 제공하는 플랫폼을 제공하는 Paas이다.

Iaas, Paas, Saas 비교

IaaS

IaaS는 서버, 스토리지 및 네트워킹을 포함한 가상화된 컴퓨팅 인프라를 제공하는 클라우드이다.
해당 서비스를 통해 자체 하드웨어를 구매하지 않고도 필요에 따라 인프라를 업그레이드 혹은 다운그레이드 할 수 있다.
필요에 따라 유연한 방식으로 컴퓨팅 리소스를 운용할 수 있다.
ex) AWS EC2

PaaS

PaaS는 애플리케이션을 개발, 테스트, 배포하기 위한 플래폼을 제공하는 클라우드이다. PasS를 통해 개발자는 개발도구에서 런타임 환경에 이르기까지 인프라와 기타 백엔드 서비스에 대한 걱정 없이 응용 프로그램 개발에만 집중할 수 있다.
개발자는 인프라뿐 아니라 개발에 필요한 플랫폼 관리에 신경 쓰지 않고 웹/앱 개발에 집중할 수 있다.
ex) AWS Elastic Beanstalk

SaaS

SaaS는 클라우드 기반 소프트웨어 어플리케이션 전달 모델이다. 소프트웨어가 제3자 서버에서 호스팅되기 때문에 사용자의 자체 서버에 소프트웨어를 설치할 필요 없이 인터넷을 통해 엑세스 할 수 있다. SaaS는 사용성이 편리하여 일반 사용자들이 가장 흔하게 사용하는 클라우드 서비스이다.
ex) Notion, Figma 등

리전(Region)과 가용영역(Availability Zone - AZ), 엣지 로케이션

AWS에서 가장 흔하게 나오는 용어로는 리전과 가용영역이 있다.

리전

리전은 AWS의 서비스들이 제공되는 서버의 물리적인 위치를 의미한다.
여러 개의 리전을 두는 이유는 네트워크의 속도 때문이다.
서버와 사용자의 물리적 거리가 멀수록 네트워크 속도는 느려질 수 밖에 없다.
두번째 이유로는 재해 대비하기 위함이다. AWS에서는 기본적으로 장애는 발생할 수 있다고 가정하고 그 장애에 대응하기 위해 여러 서비스를 제공하고 있다. 전쟁, 지진, 화재 등으로 한 리전이 사용불가 되었을 때 다른 리전을 활용하여 서비스를 가능하게 할 수 있다.

가용영역

가용영역은 리전안에 있는 IDC(데이터 센터)를 의미한다. 기본적으로 AWS의 각 리전안에는 2개 이상의 가용영역을 가지고 있다.
한국에는 서울 리전이 있으며 서울 리전에는 2개의 AZ가 존재한다.
→ 서울은 2개의 독립적인 IDC를 운영하고 있으며 각 AZ는 멀리 떨어져 있어 각종 재해 발생 시 다른 AZ로 서비스를 계속 할 수 있다.
AWS에서는 여러 개의 AZ를 서버에 올려 사용하여 로드밸런싱을 통하여 트래픽을 분산시키고 한쪽 AZ가 작동을 안하더라도 무중단 서비스를 제공하도록 권장한다.

엣지 로케이션

엣지 로케이션은 리전과 AZ와는 별개로 AWS의 CDN 서비스인 CloudFront과 AWS의 DNS 서비스인 Route 53 캐시 서버를 의미한다.
CDN과 DNS같은 서비스들의 서버들은 리전과 별개로 여러개의 엣지 로케이션에 적용되어 서비스 된다.

VPC (Virtual Private Cloud)

정의

VPC란 AWS에서 논리적으로 격리된 사용자의 네트워크 공간이다.
사설 IP 주소를 사용하는 독립된 네트워크
외부 접근 제어 가능 (NAT, 인터넷 게이트웨이 등 구성이 필요함)
라우팅, 보안, 서브넷 구조 등을 직접 설계 가능하다

VPC가 없다면?

VPC가 없다면 EC2 인스턴스들이 서로 거미줄처럼 연결되고 이런 구조는 시스템의 복잡도를 증가시키고
하나의 인스턴스만 수정되거나 추가되더라도 모든 인스턴스를 수정해야하는 불편함이 생긴다.
VPC를 적용하여 네트워크를 논리적인 단위로 묶을 수 있고 각각의 VPC는 완전히 독립된 네트워크처럼 동작한다.

구성요소

구성요소
설명
CIDR 블록
IP 대역 ex) 10.0.0.0/16
Subnet
VPC를 쪼개서 만든 네트워크 (Public/Private)
Route Table
트래픽의 이동 경로를 정의
Internet Gateway
VPC와 인터넷을 연결
NAT Gateway
Private Subnet에서 인터넷을 연결 (Private Subnet → 인터넷 방향으로 출력 전용)
Security Group
EC2 인스턴스의 방화벽 역할
*참고
IP주소를 CIDR 표기법으로 표기할때 10.0.0.0/16, 10.0.0.0/24 등 슬래시(/)뒤에 숫자는 무엇을 의미할까?
슬래시 뒤 숫자는 서브넷 마스크 를 의미한다.
이 숫자는 네트워크 주소에서 고정(fix)된 영역의 비트 수를 의미한다.
표기
고정 비트 수
가변 비트 수
총 가능 IP 수
10.0.0.0/16
맨 앞에서부터 16비트 (10.0)
뒷 16비트
2^16 (65536개)
10.0.0.0/24
맨 앞에서부터 24비트 (10.0.0)
뒷 8비트
2^8 (256개)

NAT Gateway

NAT Gateway는 위에서 설명한대로 Private Subnet안의 리소스가 외부 인터넷으로 나갈 수 있도록 도와주는 서비스이다.
하지만 NAT Gateway는 Private Subnet이 아닌 Public Subnet 안에 위치하고 있다. 왜일까?
NAT Gateway의 기본 조건
인터넷으로 나가는 통로가 필요하다. 즉, IGW(인터넷 게이트웨이)와 연결되어야 한다.
IGW는 Public Subnet과만 연결될 수 있다.
Public Subnet에는 NAT Gateway만 두고 EC는 Private Subnet에 위치시킨다 → 외부 노출 없이 운영이 가능하다.
이를 통해 EC2가 인터넷으로 나갈수는 있되, 외부에서 들어오는 트래픽은 차단할 수 있어 보안성 유지에 용이하다.
Private subnet에 EC2를 두고 인프라 구축 시나리오
1.
EC2 인스턴스를 Private Subnet에 두고 SSH 접속 차단 (외부에서 접속 x)
2.
EC2 인스턴스는 NAT Gateway를 통해 외부로 나가 npm, yum, pnpm 등 외부 라이브러리 update, apt install 등을 수행
구성 흐름도
1.
Private Subnet의 EC2에서 외부 요청 발생
2.
라우팅 테이블에 의해 NAT Gateway로 요청 전달
3.
NAT Gateway가 사설 IP → 공인 IP로 변환
4.
인터넷 게이트웨이(IGW)를 통해 외부로 나감
5.
외부 응답이 다시 NAT Gateway를 거쳐 EC2로 전달됨

SSM

AWS System Manager는 AWS에서 제공하는 통합 인스턴스 관리 서비스로 특히 Session Manager 기능을 사용하면 SSH없이 EC2 인스턴스에 안전하게 접속할 수 있다.
EC2 인스턴스는 SSM Agent와 인터넷에 접근할 수 있는 VPC EndPoint (SSM + EC2 Message)를 통해 AWS와 통신한다.
EC2 (Private Subnet) ← VPC Endpoint → SSM

SSM 구성 요소

1.
Session Manager : EC2 인스턴스에 SSH 없이 안전하게 접속할 수 있게 해주는 기능
IAM 권한 기반으로 접근 제어
포트 22(SSH)를 비활성화 할 수 있음
접속 기록을 CloudTail 또는 S3 로 남길 수 있음
2.
Run Command : 여러 인스턴스에 동시에 명령어 실행 (bash, PowerShell 등)
인스턴스 그룹 명령 실행 ( 예) yum update)
성공/실패 여부, 로그 확인 가능
IAM을 통해 실행 권한 제어
3.
Parameter Store : 환경변수, 비밀번호, API 키 등을 암호화하여 안전하게 저장하고 관리
관리자 ⬇️ (AWS Console or CLI) Session Manager ⬇️ SSM EndpointEC2 인스턴스 (Private Subnet)
Java
복사
EC2 : Public IP 없음, 보안 그룹에 포트 22(SSH 전용 포트) 열지 않음
VPC EndPoint: com.amazonaws.region.ssm, ssmmessages, ec2messages 3개 필요