[TIL 54일 차] AWS: 계정 생성부터 S3, RDS 설정

AWS: 계정 생성부터 S3, RDS 설정

1. AWS 핵심 개념과 보안

1-01. AWS (Amazon Web Services)

아마존에서 제공하는 클라우드 컴퓨팅 서비스 플랫폼

  • 다양한 IT 자원(서버, 스토리지, 데이터베이스, 네트워크, AI 서비스 등)을 필요할 때 빌려 쓸 수 있는 서비스
  • 클라우드 컴퓨팅 서비스
    • 물리 서버를 직접 구매/운영하지 않고, 인터넷을 통해 원하는 만큼 컴퓨터 자원을 빌려 쓰는 방식

1) 필요성

기존에 웹 서비스를 배포하려면 서버 하드웨어 구매, 네트워크 장비 구성, 서버 설치 및 설정, 보안/백업/모니터링 환경 구축, 물리적인 장애 대응 등 이 모든 과정을 직접 해야 했다. 이 과정에는 시간과 비용이 많이 들고, 특히 확장(Scale-up/Scale-out)이 어렵다.

하지만 AWS와 같은 클라우드 서비스가 등장하면서 아래와 같은 이점이 생겼다.

  • 클릭 몇 번으로 서버 생성 가능하기에 트래픽 증가 시 즉시 자원 추가 가능
  • 사용량 기반 과금으로 비용 절감
  • 글로벌 인프라 사용이 가능해져 전 세계 리전에 배포 가능
  • 자동 확장 및 자동 백업 제공
  • 하드웨어 고장/업데이트 부담 감소

2) AWS 글로벌 인프라 구조

AWS Global Infrastructure
├── 리전(Region)                # 지리적 구역(국가/도시 단위)
│   ├── 가용 영역(AZ)           # 리전 내 독립 데이터센터 그룹(전원/네트워크 분리)
│   │   ├── 데이터센터 1
│   │   ├── 데이터센터 2
│   │   └── 데이터센터 3
│   ├── Local Zone              # 특정 대도시 인근 초저지연 구역(선택 기능)
│   └── Wavelength Zone         # 통신사 5G 엣지와 결합한 초저지연 구역(선택 기능)
└── Edge Location (CloudFront)  # 전세계 콘텐츠 캐시/가속 지점(CDN이라고도 함)

고가용성 설계를 쉽게 하기 위해 대부분의 Region은 최소 3개의 AZ를 제공

  • 리전(Region)
    • 독립적인 지리적 영역(예: 서울 ap-northeast-2, 도쿄 ap-northeast-1)
    • 각 리전은 물리적으로 분리되어 장애·규제·가격 등의 영향을 독립적으로 받음
    • 리전마다 지원 서비스가 다를 수 있고, 가격도 리전에 따라 다름.
  • 가용 영역(AZ)
    • 한 리전 안의 서로 격리된 데이터센터 그룹
    • 전력/네트워크/냉각이 분리되어 동시 장애 확률을 낮춤
    • 애플리케이션은 보통 멀티-AZ로 배치 ➡️ 고가용성 보장
  • 로컬 존(Local Zone)
    • 특정 대도시 근처에 위치한 리전의 확장 구역으로, 밀리초 단위의 낮은 지연이 요구되는 워크로드를 사용자 가까이 배치할 수 있음
    • 사전에 활성화 필요
  • 엣지 로케이션(CloudFront Points of Presence)
    • CloudFront가 전 세계에 구축한 콘텐츠 캐시/가속 지점
    • 사용자 요청을 가장 가까운 엣지로 라우팅해 지연을 최소화
    • 엣지는 AWS 백본망으로 리전과 연결

3) 리전과 AZ 설계 패턴

  • 단일 리전과 멀티-AZ
    • 한 리전 안에 2~3개의 AZ를 중복 배치
    • 대부분의 프로덕션 기본 설계
  • 다중 리전(액티브-패시브)
    • 주 리전 장애 시 보조 리전으로 페일오버
    • 규제/연속성 요구가 높은 서비스에 사용
  • 다중 리전(액티브-액티브)
    • 여러 리전을 동시에 서비스
    • 초저지연과 대륙 분산 요구 시 사용
  • 로컬 존 혼용
    • 일부 지연 민감 모듈만 로컬 존에 배치
    • 실시간 처리와 미디어에 사용


1-02. IAM (Identity and Access Management)

AWS에서 사용자와 서비스의 신원을 관리하고, 리소스에 대한 접근 권한을 제어하는 핵심 보안 서비스

즉, 누가(Authentication) 무엇을 할 수 있는지(Authorization)를 정의하는 관문 역할을 함

  • 인증(Authentication) : AWS에 접근하려는 사람이 “누구”인지 확인하는 과정
    • 아이디/비밀번호, MFA 등
  • 권한 부여(Authorization) : 인증된 사용자가 어떤 리소스(S3, EC2, RDS 등)에 어떤 작업(읽기, 쓰기, 삭제)을 할 수 있는지 지정

1) 구성 요소

  • 사용자(User) : AWS 리소스에 접근하는 개별 계정으로, 콘솔 로그인이나 API 호출 시 사용
  • 그룹(Group) : 동일한 권한을 공유하는 사용자 모임으로, 그룹에 정책을 적용하면 소속 사용자 모두 적용
  • 역할(Role) : 특정 권한을 가진 가상의 사용자로, AWS 서비스 간 접근이나 계정 간 접근에 사용
  • 정책(Policy) : JSON 형식으로 작성된 권한 정의 문서로, 어떤 리소스에 어떤 작업을 허용/거부할지 명시
  • 예시
    • 사용자 = 사원증을 가진 직원
    • 그룹 = 같은 부서
    • 역할 = 특정 프로젝트 한정 임시 출입증
    • 정책 = 출입 가능 구역과 허용 작업을 명시한 규칙서

2) 특징

  • 글로벌 서비스 : 특정 리전에 종속되지 않고, AWS 전역에 동일하게 적용됨
  • 세밀한 권한 제어 : 서비스, 리소스, 작업(Action), 조건(Condition)까지 세부적으로 설정 가능
  • 정책 상속 : 사용자에 직접 부여하거나, 그룹/역할을 통해 간접 부여 가능
  • 보안 강화 기능 : MFA, 엑세스 키 회전, 조건부 접근 제어 등 제

2. 파일 저장소 S3의 이해

2-01. S3

1) 클라우드 스토리지

인터넷을 통해 접근 가능한 데이터 저장소

  • 예시 서비스 : Google Drvie, Naver MYBOX, Microsoft OneDrive
  • 장점
    • 인터넷이 연결되어 있다면 장소 제약 없이 데이터 접근 가능
    • 다양한 디바이스 호환
    • 백업 및 복구 용이성

2) AWS S3 (Simple Storage Service)

AWS에서 제공하는 객체 스토리지 서비스로, 데이터를 안전하게 저장하고 필요할 때 불러올 수 있다.

  • 사용량에 따라 비용이 청구됨
  • 장점
    • 높은 확장성
      • 무한대로 저장 가능
      • 사용량에 따라 자동 확장
    • 강력한 내구성
      • 99.999999999% (11 9’s) 내구성 보장 ➡️ 데이터 손실 가능성이 극도로 낮음
    • 높은 가용성
      • 99.99% 가용성 보장 → 연간 약 8.76시간 미만의 장애 가능성
    • 정적 웹 사이트 호스팅
      • bucket에 HTML, CSS, JS 업로드하여 public 접근 설정하면 웹사이트 운영 가능

3) S3 핵심 개념

  • 버킷(Bucket)
    • 최상위 디렉터리 역할
    • 무제한 객체(파일) 저장 가능
    • 접근 권한은 Bucket 정책으로 제어
  • 객체(Object)
    • Bucket에 저장되는 파일 단위 데이터
    • 구성 요소
      • 파일(데이터)
      • 메타데이터
      • 키(key)

Leave a comment