TIL | AWS (VPC, 서브넷, 게이트웨이, NAT, S3, Buckets ...)

·2023년 8월 4일

TIL # WIL

목록 보기
43/65

23.08.04

1. Virtual Private Cloud

1-1. VPC

VPC(Virtual Private Cloud, 가상 사설 클라우드) : AWS에서 제공하는 클라우드 컴퓨팅 리소스를 사용할 수 있는 가상의 사설 네트워크

VPC의 역할

  • IP 주소 범위, 라우팅 테이블, 서브넷 및 보안 그룹을 설정
  • 가상 서버, 스토리지 및 데이터베이스와 같은 다양한 AWS 리소스를 시작하고 관리

1-2. 서브넷, 게이트웨이, NAT

서브넷 : VPC 내에서 IP 주소 범위를 지정하는 가상의 네트워크

  • 서브넷은 라우팅 테이블에 연결되며, 각 서브넷은 하나의 라우팅 테이블에만 연결될 수 있음
  • 서브넷을 사용하면 VPC 내에서 다른 서브넷과 격리된 가상 네트워크를 생성할 수 있음

퍼블릭 서브넷 : 인터넷 게이트웨이(IGW)와 연결된 서브넷

  • 인터넷에서 직접 액세스할 수 있는 인스턴스를 실행할 수 있음
  • 이러한 인스턴스는 공인 IP 주소를 사용하며, 인터넷 게이트웨이를 통해 인터넷으로 트래픽을 보낼 수 있음

프라이빗 서브넷 : 인터넷과 직접 연결되지 않는 가상의 네트워크

  • 인터넷에 직접 액세스할 수 없음
  • 대신, NAT 게이트웨이를 사용하여 인터넷을 통해 인스턴스에 연결하거나, VPC 피어링 등을 사용하여 다른 VPC와 연결할 수 있음

라우팅 테이블 : VPC 내에서 트래픽이 전달되는 방법을 제어하는 데 사용

  • 라우팅 테이블은 서브넷과 연결되며, 각 서브넷에는 하나의 라우팅 테이블이 있어야 함

IGW (Internet Gateway) : VPC와 인터넷 간의 통신을 가능하게 하는 게이트웨이

NAT (Network Address Translation) Gateway : 프라이빗 서브넷에서 아웃바운드 인터넷 트래픽을 가능하게 하는 서비스


2. Simple Storage Service

2-1. S3

S3 : 인터넷 스토리지 서비스로, 개발자나 IT 운영자가 웹 규모 컴퓨팅 작업을 수행하는 데 필요한 데이터 저장 공간을 제공
(정적 웹 사이트 호스팅, 온라인 백업, 데이터 아카이브, 기업 애플리케이션, Big Data 분석 등 다양한 용도로 사용)

S3 서비스의 사용 예

  • 웹 사이트 호스팅
  • 멀티미디어 파일 저장 및 스트리밍
  • 애플리케이션 데이터 저장
  • 백업 및 복원
  • 아카이브

S3 서비스의 장점

  • 높은 내구성, 가용성 및 안정성
  • 손쉬운 사용 및 관리
  • 보안성
  • 높은 확장성

2-1. Buckets

Buckets : 데이터를 저장하는 가장 상위 레벨의 폴더 형태의 컨테이너
S3에 저장되는 파일들을 ‘객체’ 라고 부르고 모든 객체는 ‘키’(디렉토리)로 식별

Amazon S3에서의 버킷의 목적

  • 데이터를 저장하는 컨테이너 역할
  • 객체에 대한 공용 또는 개인적인 접근 권한을 설정하기 위한 위치
  • 객체에 대한 특별한 이벤트 알림을 설정하기 위한 위치
  • AWS 계정에서 버킷 및 객체 사용에 대한 비용 추적 및 모니터링을 위한 위치

버킷 네이밍 컨벤션

  • 대문자 금지, 언더스코어 금지
  • 글자 수 3자 ~ 63자 사이
  • 두 마침표를 나란히 붙여 사용 X
  • IP 주소 형식(예: 192.168.5.4) X

2-2. Buckets Policy

버킷 폴리시

  • IAM과 유사하며 JSON 형식의 문서
  • 버킷의 모든 객체에 대한 액세스를 제어할 수 있음
  • 특정 객체 또는 객체 그룹에 대한 액세스를 제어할 수 있음
  • 액세스를 허용하는 IP 주소 또는 범위를 지정할 수 있음
  • 액세스할 수 있는 리소스의 범위를 제한할 수 있음
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUserToGetBucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT-ID:user/USERNAME"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::BUCKET-NAME"
        }
    ]
}

ARN : AWS에서 사용하는 고유한 식별자로 AWS의 모든 리소스에 대한 고유한 식별자 역할

ACL(Access Control List) : 접근 권한을 가진 경우들을 명시

+) S3로 정적 웹사이트 배포하기


3. Cloudfront

3-1. Content Delivery Network

장점

  • 향상된 속도 : 지리적으로 가까운 서버에 캐싱된 데이터를 갖고 오기 때문에 무척 빠르다.
  • 안전 : CDN 서비스를 해주는 업체에서 방화벽을 제공할 뿐만 아니라 DDoS 공격이 와도 서버가 분산되어 있고 캐시기능으로 오리진 서버 트래픽은 늘어나지 않는다.

단점

  • 캐시 : 최신 동적 컨텐츠를 제공해야하는 경우에 적합하지 않다.
  • 비용이 추가 발생한다

3-2. Cloudfront

Cloudfront 사용
Architecture
Route53 → Cloudfront → S3
Route53과 Cloudfront가 연결되기 때문에 더이상 버킷이름을 도메인명과 맞출 필요가 없음

Invalidation
캐싱이 되어있는 cdn을 초기화하는 방법
를 사용하여 여러 개의 객체를 동시에 무효화할 수 있음


4. Elastic Beanstalk

4-1. EBS 등장배경

  1. Public Subnet: 로드 밸런서
  2. Private Subnet: 비즈니스 로직을 처리하는 레이어입니다. 보통 웹 애플리케이션 서버
  3. Data Subnet: 데이터를 저장하는 레이어입니다. 보통 데이터베이스 서버, 파일 서버 등이 사용

EBS는 개발자 관점으로 AWS를 접근

  • DB설정, 로드밸런서 자동 설정
  • 그러면서 자동으로 스케일링(확장성)을 지원

4-2. EBS 개념

  • Application
    • 애플리케이션 코드, 구성 및 관련 파일
    • Elastic Beanstalk는 다양한 프로그래밍 언어와 프레임워크를 지원
  • Environment
    • Amazon EC2 인스턴스, 데이터베이스 인스턴스, 로드 밸런서 등

0개의 댓글