개념 정리
AWS 개념(1)(EC2, S3, RDS, VPC)
항상 발전하는 개발자
2024. 12. 24. 10:22
728x90
1. AWS란?
- Amazon Web Services (AWS) : Amazon이 제공하는 클라우트 컴퓨팅 서비스 플랫폼
- 클라우드 컴퓨팅 : 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등을 제공하는 서비스
2. 주요 서비스
- EC2(Elastic Compute Cloud) : 가상 서버를 제공하여 애플리케이션을 실행
- S3(Simple Storage Service) : 확장 가능한 객체 스토리지 서비스
- RDS(Relational Database Service) : 관리형 관계형 데이터베이스 서비스
- VPC(Virtual Private Cloud) : 격리된 네트워크 환경을 제공
3. 주요 개념
- 리전(Region) : 물리적으로 분리된 데이터 센터 위치
- 가용 영역(Availability Zone) : 리전 내에 있는 독립적인 데이터 센터
- 스케일링(Scaling) : 필요에 따라 자원을 자동으로 확장 또는 축소
4. 장점
- 유연성 : 필요에 따라 자원을 쉽게 조정 가능
- 비용 효율성 : 사용한 만큼만 비용 지불(Pay-as-you-go)
- 확장성 : 비즈니스 성장에 따라 자원을 쉽게 확장 가능
- 보안 : 다양한 보안 인증 및 규정 준수
Region(리전)
- 리전은 지리적으로 분리된 AWS 데이터센터의 집합. 각 리전은 물리적으로 독립된 위치에 있으며, 다른 리전과는 완전히 분리되어 있음
- 특징
- 지리적 분산 : 리전은 전세계 여러지역에 분산
- 데이터 주권 : 사용자는 특정 리전에 데이터를 저장함으로 주권 및 규제요구 사항을 충족할 수 있음
- 독립성 : 각 리전은 독립적으로 운영되며, 리전 간의 장애가 전파되지 않음
- 서비스 가용성 : 일부 AWS 서비스는 특정 리전에서만 제공될 수 있음
Availability Zone(가용영역)
- 가용 영역은 하나의 리전 내에 있는 물리적으로 분리된 데이터 센터
- 각 가용 영역은 독립적인 전력, 냉각, 네트워크를 갖추고 있으며, 다른 가용 영역과 저지연 네트워크로 연결되어 있음
- 특징
- 물리적 분리 : 가용영역은 물리적으로 분리되어 있어, 장애가 다른 가용영역에 영향을 주지 않음
- 고가용성 : 애플리케이션을 여러 가용 영역에 배포하여 고가용성을 보장할 수 있음
- 저지연 네트워크 : 가용영역 간의 네트워크 연결은 매우 낮은 지연 시간을 제공하여, 데이터 복제 및 동기화 작업 등을 효율적으로 수행할 수 있음
AWS EC2(Elastic Compute Cloud)
- 사용자가 클라우드에서 가상 서버(인스턴스)를 생성하고 관리할 수 있게 해주는 AWS 서비스
- 인스턴스 사용량을 기준으로 과금하는 구조(인스턴스 별 금액 정책은 고정되어 있음)
- AutoScailing 등 유연한 서비스 사용이 가능한 여러가지 서비스 적용 가능
- 인스턴스 과금기준
- 인스턴스 타입
- 성능에 따라 nano/micro/small/large/xlarge 등으로 세분화 되는데, 주의할 것은 성능 좋은 인스턴스를 쓸수록 그만큼 금액이 기하급수적으로 늘어남. 때문에 작은 서버 여러대로 분산처리를 하는 것이 필수
- 고성능이 필요한 연산이 있다면 필요할 때만 잠깐씩 서버를 생성했다가 작업이 끝나면 즉시 삭제해버리는 식으로 사용 시간을 줄이는 방식으로 비용 관리 해주기.
- 데이터 트래픽 요금
- 월 1GB까지 무료, 10TB까지는 GB당 0.09달러 등으로 책정되어 있지만 Internet / Internal 모든 트래픽에 대해 과금을 하는 구조(EC2 사용료 합산 과금)
- 소규모에서는 EC2가 저렴하다가 대규모로 서비스가 발전하면 비용 증가폭이 큰 점이 EC2의 특징
- 인스턴스 타입
AWS Load Balancer
Elastic Load Balancer(ELB)
- 애플리케이션의 트래픽을 여러 대상(ex. EC2 인스턴스, 컨테이너, IP주소 등)으로 분산시켜 애플리케이션의 가용성과 확장성을 높이는 데 사용
- 서비스 고가용 구성의 중요기능으로 On-Prem의 경우 장비로 구성하지만, AWS에서는 용도 및 기능에 따라 3가지 서비스를 제공
AWS에서의 Service Load Balancer
- ALB(Application Load Balancer) : 주 용도 : HTTP/HTTPS 트래픽을 처리하며, 레이어 7에서 작동, 확장에 따라 EIP 변경이 발생
- NLB(Network Load Balancer) : 주 용도 : TCP/UDP 및 TLS 트래픽을 처리하며, 레이어 4에서 작동
- CLB(Classic Load Balancer) : 주 용도 : HTTP, HTTPS, TCP, 및 SSL 트래피을 처리하며, 레이어4와 레이어 7에서 작동
CLB를 쓰는 게 더 좋은 게 아닌가?
- CLB는 이전 세대의 로드밸런서로 물론 4계층, 7계층 트래픽을 모두 처리할 수 있지만 이후 세대의 ELB에 비해 지원하는 기능이 부족해서 특별한 경우를 제외하고 잘 사용되지 않는다.
- URL, Host 기반 라우팅(ALB), 정적 IP 제공(NLB), 낮은 지연시간, 고성능 및 고처리량 등 기능이나 성능적인 부분에서 많은 차이를 보이기 때문에 일정 규모 이상의 서비스 구축시에는 기능에 맞는 LB를 포함하여 아키텍처 구성
AWS S3(Simple Storage Service)
- 무제한 용량을 제공하는 인터넷 스토리지 서비스
- 확장성이 뛰어나고 사용한 만큼만 비용을 지불
- 버킷(Bucket)이라는 영역을 생성하고 데이터를 키-값 형식의 객체(Object)로 저장
- 다른 스토리지 서비스 대비 매우 저렴한 비용이 특징
- 주요특징
- 객체스토리지
- 파일을 객체단위로 저장하며 이때 객체는 기가바이트(GB)단위로 저장
- 각 객체는 데이터, 메타데이터, 고유키로 구성
- 데이터 : vacation.jpg라는 이미지 파일을 업로드 한다면 이 이미지 파일이 객체의 데이터가 됨.
- 메타데이터 : 파일 크리(2MB), 형식(JPEG), 업로드 날짜(2023년 10월 1일) 등 파일의 추가 정보
- 고유한 키 : 객체를 식별하기 위한 고유키, 예를 들면 photos/2024/vacation.jpg라는 키를 사용할 수 있으며, 이 키를 통해 S3 버킷 내에서 이 객체를 찾고 접근할 수 있음.
- 객체스토리지
- 디렉토리와 고유키의 차이
- S3의 고유한 키는 평면 구조에서 객체를 식별하는 문자열. 슬래시(/)를 사용하여 가상 디렉터리 구조처럼 보이기는 하지만 실제 디렉터리가 존재하지 않음
AWS FSx
- FSx
- 파일 스토리지 서비스 : 파일 시스템을 제공하여 파일 단위로 데이터를 저장하고 관리.
- 완리 관리형 : 파일 시스템의 설정, 유지 관리, 확장, 백업 등을 자동으로 관리
- => 완전 관리형(Fully managed)파일 시스템(스토리지) 서비스
- FSx 주요 특징
- 파일 시스템 인터페이스 : NFS, SMB, Lustre 등 파일 시스템 프로토콜을 지원
- 고성능 : 밀리초 단위의 지연 시간과 높은 처리량을 제공
- 고가용성 : 다중 AZ 배포 및 자동 복구 기능을 통해 높은 가용성을 보장
- 사용 사례 : 엔터프라이즈 애플리케이션, 고성능 컴퓨팅(HPC), 데이터베이스, 백업 및 복구 등
S3와 FSx의 차이
- FSx와 S3는 모두 AWS에서 제공하는 스토리지 서비스이지만, 그 목적과 사용 사례가 다르다.
- Amazon FSx는 파일 시스템을 필요로 하는 워크로드에 적합하며, 고성능과 고사용성을 제공
- Amazon S3는 객체 스토리지를 필요로 하는 워크로드에 적합하며, 무제한 확장성과 높은 내구성을 제공
- 파일 시스템 옵션
- Amazon FSx for Windows File Server : Windows 환경에 최적화된 파일 시스템
- Amazon FSx for Lustre : 고성능 컴퓨팅(HPC) 워크로드에 최적화된 파일 시스템
- Amazon FSx for NetApp ONTAP : NetApp의 데이터 관리 기능을 제공하는 파일 시스템
- Amazon FSx for OpenZFS : OpenZFS 파일 시스템을 제공하여 데이터 무결성과 성능을 보장
RDS(Relational DataBase Service)
- RDS는 클라우드에서 관계형 데이터베이스를 설정, 운영 및 확장할 수 있게 해주는 관리형 서비스
- EC2 인스턴스 위에서 돌아가는 서비스이기 때문에 해당 EC2 인스턴스의 시간당 요금을 과금
- RDS 운영 시 고려 사항
- OS가 없는 PaaS
- 장점 : 운영 및 관리 포인트가 설치형 DB보다 적음
- 단점
- 솔루션 사용에 제한적.(특히 Agent 설치 방식의 솔루션들은 사용 불가)
- 커스터마이징 제한, 파라미터 조정으로 어느정도 가능하지만 설치형에 비해 기능이 약함
- 확장성
- 장점: 하드웨어 리소스 증설이 자유로움. AWS에서 제공하는 HA(High Availability) 환경 이용 가능
- 단점: 전체 리소스에 대한 AutoScailing은 Maria DB 가능하며, 다른 DB는 제한적
- 관계형 DBMS
- Amazon RDS는 관계형 데이터베이스 엔진만 지원하나 예외로 NoSQL 데이터베이스인 DynamoDB는 RDS에서 지원을 하고 있음.
VPC(Virtual Private Cloud)
- AWS에서 제공하는 가상 네트워크 서비스. 이 안에서 서버들과 서비스를 안전하게 운영할 수 있으며, 퍼블릭 서브넷과 프라이빗 서브넷을 통해 서버들의 활동을 관리
- 인터넷 공간에서 서비스를 위한 서브넷을 구성하고 운영할 수 있는 가상 클라우드 서비스
- Public Subnet과 Private Subnet
- 기능에 따른 차이가 아닌 역할에 따른 차이
- IGW 또는 NAT 게이트웨이를 통해 인터넷에 접속할 수 있는 기능을 제공하는 것은 동일
- 다만 외부에서 접속할 수 있는 서비스와 접속하면 안되는 서비스를 구분하기 위해 분리 구성
- Public Subnet
- 웹서버, 로드밸런서 등 인터넷에 노출되어야 하는 서비스를 주고 구성(DMZ 구간 대치)
- 서브넷 내의 리소스는 Public IP를 할당하며, 인터넷 게이트웨이를 통해 직접 인터넷 연결
- Private Subnet
- WAS, DB, 파일서버 등 외부 노출에 민감한 서비스를 주로 구성(TRUST 구간 대치)
- 서브넷 내의 리소스는 Private IP를 할당하며, 필요한 경우 NAT 게이트웨이를 통해 인터넷 연결(아웃바운드)
- VPC간 연결
- 동일 리전 내 VPC연결은 Peering으로 연결, 다른 리전의 VPC간 연결은 TransitGW, VPN 등을 이용
728x90