Private Subnet: 비즈니스 로직을 처리하는 레이어입니다. 보통 웹 애플리케이션 서버
Data Subnet: 데이터를 저장하는 레이어입니다. 보통 데이터베이스 서버, 파일 서버 등이 사용
대부분의 웹앱은 같은 아키텍처를 가지고 있습니다.
❓ 그런데 서비스를 만들때마다 같은 인프라를 만들어야 한다면?
EBS는 개발자 관점으로 AWS를 접근합니다.
DB설정, 로드밸런서 자동 설정
자동으로 스케일링(확장성)을 지원
3-tier 아키텍처는 애플리케이션의 확장성과 유연성을 향상시키고, 높은 가용성과 성능을 제공합니다. 각 레이어를 독립적으로 확장할 수 있으며, 부하 분산과 장애 극복 기능을 쉽게 추가할 수 있습니다. 또한, 애플리케이션의 유지보수와 업그레이드가 용이하며, 보안성이 높습니다.
배포 프로세스를 자동으로 처리하며, 필요한 인프라 자원을 프로비저닝하고, 로드 밸런싱과 오토스케일링 등의 기능을 제공합니다.
EBS 개념
Application
애플리케이션코드, 구성 및 관련 파일
Elastic Beanstalk는 다양한프로그래밍 언어와 프레임워크를 지원합니다
Environment
Amazon EC2 인스턴스, 데이터베이스 인스턴스, 로드 밸런서 등인프라
EBS 생성하기
언급되지 않은 것은 기본값으로 세팅
(EC2) 인스턴스, 로드 밸런서, Auto Scaling, S3 등에 자동으로 추가된 것을 확인 할 수 있습니다.
https://db.도메인/ 으로 접속하기리스너와 보안에 HTTPS 설정이 빠졌다면 각각 HTTPS 추가하기
인터넷 스토리지 서비스입니다. 이 서비스는 개발자나 IT 운영자가 웹 규모 컴퓨팅 작업을 수행하는 데 필요한 데이터 저장 공간을 제공합니다. Amazon S3는 웹 사이트 호스팅, 온라인 백업, 데이터 아카이브, 기업 애플리케이션, Big Data 분석 등 다양한 용도로 사용됩니다. 콘솔창에서 region 상관없이 S3를 모두 확인할 수 있습니다.
* 프론트엔드 - 정적 웹사이트 호스팅 / 백엔드 - 동적 웹사이트 호스팅
S3 서비스의 사용 예
웹 사이트 호스팅
멀티미디어 파일 저장 및 스트리밍
애플리케이션 데이터 저장
백업 및 복원
아카이브
S3 서비스의 장점
높은 내구성, 가용성 및 안정성
손쉬운 사용 및 관리
보안성
높은 확장성
EBS는 단일 인스턴스에 대한 고성능 스토리지 서비스가 필요한 경우. Read/ Write가 빈번한 경우 사용한다.
S3는 비교적 저렵한것이 장점. 정적 웹 사이트도 지원하므로 여러개의 정적 HTML 페이지를 호스팅해야 하는 경우 사용. Write once Read many times 파일 수정 불가(덮어쓰기)
EFS
EBS
S3
NFS 파일 시스템
Block Storage
object(객체) Storage
비쌈
평균
쌈
빈번한 Read / Write
빈번한 Read / Write
Write once Read many times
여러 AZ에 중복 저장
단일 AZ에 중복 저장
여러 AZ에 중복 저장
파일 수정 가능
파일 수정 가능
덮어쓰기
대규모 사용 사례에 적합
데이터베이스, ERP 시스템, 메일 서버, 쉐어포인트, 웹 서버, 디렉터리 서버, DNS 서버 또는 미들웨어에 적합
정적 웹사이트(프론트) 호스팅에 적합
Buckets?
버킷이란 데이터를 저장하는 가장 상위 레벨의 폴더 형태의 컨테이너입니다!
S3에 저장되는 파일들을 ‘객체’ 라고 부르고 모든 객체는 ‘키’(디렉토리)로 식별됩니다.
AWS에서 제공하는 클라우드 컴퓨팅 리소스를 사용할 수 있는 가상의 사설 네트워크입니다. 사용자는 VPC 내에서 IP 주소 범위, 라우팅 테이블, 서브넷 및 보안 그룹을 설정할 수 있습니다. 또한, VPC를 사용하면 사용자는 가상 서버, 스토리지 및 데이터베이스와 같은 다양한 AWS 리소스를 시작하고 관리할 수 있습니다.
EC2, 로드밸런스 생성시 자동으로 VPC가 생성된다.
하나의 VPC는 하나의 Region 안에 있다.
VPC 안에는 여러개의 AZ가 존재한다.
AZ 안에 서브넷이 존재한다.
서브넷, 게이트웨이, NAT
❓ 서브넷이란?
VPC 내에서 IP 주소 범위를 지정하는 가상의 네트워크입니다. 서브넷은 라우팅 테이블에 연결되며, 각 서브넷은 하나의 라우팅 테이블에만 연결될 수 있습니다. 서브넷을 사용하면 VPC 내에서 다른 서브넷과 격리된 가상 네트워크를 생성할 수 있습니다. 이를 통해 다양한 서비스를 실행하는 데 필요한 보안 요구 사항을 충족시킬 수 있습니다.
퍼블릭 서브넷은 인터넷 게이트웨이와 연결된 서브넷으로, 인터넷에 직접 연결되어 있는 서브넷입니다. 퍼블릭 서브넷을 사용하면 인터넷에서 직접 액세스할 수 있는 인스턴스를 실행할 수 있습니다. 이러한 인스턴스는 공인 IP 주소를 사용하며, 인터넷 게이트웨이를 통해 인터넷으로 트래픽을 보낼 수 있습니다.
프라이빗 서브넷은 인터넷과 직접 연결되지 않는 가상의 네트워크입니다. 이러한 서브넷에서 실행되는 인스턴스는 인터넷에 직접 액세스할 수 없습니다. 대신, NAT 게이트웨이를 사용하여 인터넷을 통해 인스턴스에 연결하거나, VPC 피어링 등을 사용하여 다른 VPC와 연결할 수 있습니다.
VPC의 라우팅 테이블(쉽게 말해 서브넷 안의 주소록)은 VPC 내에서 트래픽이 전달되는 방법을 제어하는 데 사용됩니다. 라우팅 테이블은 서브넷과 연결되며, 각 서브넷에는 하나의 라우팅 테이블이 있어야 합니다. 라우팅 테이블은 목적지 IP 주소와 대상 게이트웨이 또는 NAT 게이트웨이와 같은 대상을 매핑합니다. 라우팅 테이블은 여러 개의 라우팅 규칙을 포함할 수 있으며, 이를 사용하여 서브넷에서 트래픽을 전달하는 방법을 제어할 수 있습니다.
IGW (Internet Gateway)
VPC와 인터넷 간의 통신을 가능하게 하는 게이트웨이입니다.
인터넷을 통해 인터넷 게이트웨이를 통해 VPC 내부로 들어오는 트래픽을 받아 해당 VPC에 연결된 서브넷으로 라우팅합니다.
NAT (Network Address Translation) Gateway
프라이빗 서브넷에서 아웃바운드 인터넷 트래픽을 가능하게 하는 서비스입니다.
NAT 게이트웨이는 프라이빗 서브넷 내 인스턴스가 인터넷으로 나가는 트래픽을 대신하여 공인 IP 주소를 사용하고, 인터넷 게이트웨이로부터 들어오는 트래픽을 프라이빗 서브넷으로 라우팅합니다.