[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