군만두의 IT 개발 일지

[스터디15] 03. RDS & S3 & Route53 & CloudFront & Amplify 본문

학습일지

[스터디15] 03. RDS & S3 & Route53 & CloudFront & Amplify

mandus 2026. 7. 17. 22:57

목차

    5장. 관계형 데이터베이스 서비스 파악하기

    아마존 RDS는 AWS에서 관계형 데이터베이스를 제공하는 관리형 서비스로, 데이터베이스의 백업, 소프트웨어 패치, 장애 감지 및 복구 등을 자동으로 관리해준다.

    5-1 아마존 RDS의 옵션과 고가용성

    아마존 RDS를 구성할 때 스토리지와 가용성 측면에서 다양한 옵션을 선택할 수 있다.

    • 스토리지 유형: 비용과 성능 밸런스가 잡힌 범용 SSD(gp2, gp3), 높은 I/O 성능을 제공하는 프로비저닝된 IOPS, 구세대 유형인 마그네틱을 지원한다.
    • 고가용성 지원: 다중 AZ(Multi-AZ) 기능을 통해 원본 데이터베이스에 장애가 발생하면 대기 중인 리소스 중 하나가 마스터로 승격되어 35초 미만으로 읽기/쓰기 작업을 복구한다.

    5-2 아마존 RDS 접속 패턴

    보안을 위해 외부와 차단된 프라이빗 서브넷에 배치된 RDS에 접근하는 대표적인 패턴은 다음과 같다.

    접속 패턴 설명
    EC2 인스턴스 경유 프라이빗 서브넷에 위치한 EC2 인스턴스에 오라클 클라이언트 등을 설치해 RDS로 접속하는 가장 기본적인 방식이다.
    포트 포워딩 AWS CLI를 이용해 EC2 인스턴스 대상으로 세션 관리자 포트 포워딩 세션을 생성하여, 로컬 PC에서 안전하게 접속한다.
    Site to Site VPN EC2 인스턴스를 거치지 않고, 다이렉트 커넥트나 VPN을 설정하여 프라이빗 네트워크를 통해 더욱 간편하게 접속한다.

    6장. 객체 스토리지 서비스 파악하기

    아마존 S3는 일정한 형태가 없는 비정형 데이터를 저장하고 관리하는 객체 스토리지 서비스로, 텍스트, 이미지, 비디오 등 어떤 형식의 파일이든 무제한으로 저장할 수 있다.

    6-1 S3 스토리지 클래스

    데이터의 액세스 빈도와 중요도에 따라 최적화된 스토리지 클래스를 선택해 요금을 절약할 수 있다.

    • S3 Standard: 동적 웹사이트, 빅데이터 분석 등 자주 액세스하는 범용 데이터에 적합하다.
    • S3 Infrequent Access (IA): 백업이나 재해 대책 파일처럼 액세스 빈도는 낮지만 필요할 때 즉시 꺼내야 하는 데이터에 적합하다.
    • S3 Glacier 계열: 규제 준수 요건을 위해 7~10년 이상 보관해야 하는 아카이브성 데이터나 백업 데이터를 매우 저렴하게 저장할 수 있다.

    6-2 S3의 객체 관리 기능

    • 버저닝(Versioning): 단일 객체의 여러 버전을 유지하여, 실수로 덮어쓰거나 삭제한 데이터를 복구할 수 있는 기능이다.
    • 생명주기(Lifecycle) 규칙: 지정한 기간(예: 90일)이 지난 객체를 자동으로 삭제하거나 비용이 저렴한 스토리지 클래스로 이전하도록 설정해 장기간 보존 비용을 절약할 수 있다.

    7장. 프론트엔드를 위한 서비스 이해하기

    아마존 라우트53(Route 53)은 AWS가 제공하는 대표적인 도메인 관리 및 DNS 서비스로, 도메인을 구매하거나 사용자의 트래픽을 효율적으로 라우팅하는 데 사용된다.

    7-1 호스팅 영역 분리

    영역 특징
    퍼블릭 호스팅 영역 인터넷에 공개되는 공개 도메인을 사용하여 누구나 해당 웹사이트에 접근할 수 있도록 한다.
    프라이빗 호스팅 영역 VPC 내부에서만 유효한 비공개 도메인을 사용하여, 외부 인터넷에서는 접근할 수 없도록 사내 네트워크를 격리한다.

    7-2 다양한 라우팅 정책

    라우트53은 서비스의 가용성과 성능을 최적화하기 위해 다음과 같은 라우팅 정책을 지원한다.

    • 단순 라우팅: 하나의 리소스로만 반환하도록 구성하여 모든 사용자가 같은 응답을 받도록 한다.
    • 장애 조치 라우팅: 메인 서버에 문제가 발생하여 가동이 중지되면, 자동으로 트래픽을 미리 준비된 하위 서버로 전환해 끊김 없는 서비스를 제공한다.
    • 가중치 기반 및 지연 시간 라우팅: 특정 비율로 트래픽을 분산하거나, 여러 리전 중 응답 속도가 가장 짧은 서버에 대응시킨다.

    8장. 콘텐츠 전송을 위한 프론트 서비스 파악하기

    아마존 클라우드프론트(CloudFront)는 사용자에게 동영상이나 이미지 같은 정적 콘텐츠를 전 세계 엣지 로케이션을 통해 빠르고 안전하게 배포하는 CDN 서비스이다.

    8-1 주요 설정 및 보안

    • OAI 및 OAC 구성: 사용자가 S3 버킷에 직접 접근하는 것을 차단하고, 오직 클라우드프론트 엣지 로케이션을 통해서만 콘텐츠에 접근하도록 강제하여 보안을 강화한다.
    • 경로 패턴 기반 라우팅: '/production/*'이나 '/development/*' 같은 경로 패턴을 지정하여, 특정 S3 버킷이나 로드 밸런서로 트래픽을 정교하게 분기할 수 있다.
    • 캐시 정책(TTL): TTL 값을 길게 설정하면 클라우드프론트의 로컬 캐시에서 콘텐츠를 찾을 확률(캐시 히트 비율)이 높아져 웹사이트 성능이 비약적으로 향상된다.
    • 가격 분류: 모든 지역의 엣지 로케이션을 사용하지 않고, 북미 및 유럽 등 특정 지역만 선택해 트래픽 비용을 유연하게 최적화할 수 있다.

    9장. 웹 애플리케이션 배포용 프론트 서비스 파악하기

    아마존 앰플리파이(Amplify)는 개발자가 복잡한 클라우드포메이션 템플릿 작성 없이 웹 애플리케이션을 신속하게 개발하고 호스팅할 수 있도록 돕는 서비스이다.

    9-1 앰플리파이 스튜디오와 호스팅

    구분 기능 및 연동
    앰플리파이 스튜디오 피그마(Figma)와 연동해 UI 디자인을 리액트(React) 코드로 자동 변환하며, 내부적으로 아마존 AppSync와 다이나모DB(DynamoDB)를 거쳐 데이터 모델링을 시각적으로 구성할 수 있다.
    앰플리파이 호스팅 깃허브(GitHub) 리포지토리와 연동하여 CI/CD 환경을 구축한다. 깃허브에 코드를 커밋할 때마다 자동으로 빌드 파이프라인을 실행하고 웹사이트를 실시간으로 업데이트하여 배포한다.

    10장. 사용자 인증을 위한 프론트 서비스 파악하기

    아마존 코그니토(Cognito)는 개발자가 직접 인증 서버를 구축할 필요 없이, 앱과 웹에 회원가입 및 로그인 보안 기능을 즉시 통합할 수 있게 해주는 관리형 서비스이다.

    10-1 사용자 풀과 자격증명 풀

    코그니토는 인증(Authentication)과 인가(Authorization)를 두 가지 독립적인 풀로 나누어 관리한다.

    • 사용자 풀 (User Pool): 이메일, 전화번호를 통한 회원가입은 물론, 구글이나 페이스북 같은 소셜 자격증명을 통한 인증 파트를 담당하며, 가입된 사용자의 프로필 데이터를 저장한다.
    • 자격증명 풀 (Identity Pool): 사용자 풀을 거쳐 인증된 사용자나 비인증(게스트) 사용자에게 IAM 기반의 임시 보안 자격증명(권한)을 발급해, S3나 다이나모DB 같은 백엔드 AWS 리소스에 직접 접근할 수 있도록 돕는다.

    자바스크립트 환경에서는 'AWS SDK for JavaScript'를 활용해 코그니토 인증 함수(회원가입, 로그인 세션 획득 등)를 프론트엔드 코드 내부에서 직접 호출하고 제어할 수 있다.

     

    이 글은 『AWS 잘하는 개발자 되기』책을 학습한 내용을 정리한 것입니다.
    Comments