ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [4월 2주차-4/8(1)]AWS 서비스 3대장 기초부터 알아보기
    Why Not SW CAMP 5기/수업 기록 2025. 4. 8. 10:21

     

    ✅ 예시: 간단한 웹서비스 구조

    상황: 웹 사이트 서비스(IFITV)

    전체 그림:

    [사용자] → [ELB] → [EC2] ↔ [RDS]
                           ↕
                          [S3]
    

    1. EC2(Elastic Compute Cloud) – 서버 역할

    • 사용자가 웹사이트에 접속하면, 그 요청은 EC2에서 실행 중인 프로그램(예: Flask, Node.js 등)이 처리함
    • 이 EC2는 웹 페이지도 렌더링하고, 사용자 요청에 따라 데이터도 처리함

    ✅ 핵심 개념

    • AWS에서 가상의 컴퓨터(서버)를 임대해서 사용하는 서비스
    • OS 선택 가능 (Ubuntu, Amazon Linux, Windows 등)
    • 웹 서버, API 서버, 배치 처리 서버 등으로 활용 가능

    📦 구성 요소

    AMI (Amazon Machine Image) OS + 소프트웨어 패키지를 담은 템플릿
    인스턴스 타입 CPU, RAM, 네트워크 성능을 조합한 사양 (예: t2.micro)
    키 페어 SSH로 접속하기 위한 공개/개인 키 쌍
    보안 그룹 이 인스턴스로 들어오고 나가는 트래픽을 제어하는 방화벽
    퍼블릭 IP 외부에서 접속 가능하도록 부여된 주소 (필요시 Elastic IP로 고정 가능)

    🔐 보안 그룹 설정 예시 (Django 서버용)

    SSH 22 내 IP (접속용)
    HTTP 80 0.0.0.0/0 (모두 허용)
    HTTPS 443 0.0.0.0/0
    Custom TCP 8000 S3나 프론트가 백엔드 호출 시 필요

     

    📌 탄력적 IP(Elastic IP)란?

    고정된 공인 IP 주소를 AWS가 제공해주는 서비스
    쉽게 말해, EC2 인스턴스에 고정된 외부 IP 주소를 붙여주는 것

    ❓ 왜 필요할까?

    기본적으로 EC2를 만들면 퍼블릭 IP가 자동으로 할당됨. 그런데 EC2를 껐다 켜면 이 IP가 바뀜
    → 이러면 도메인이나 API 클라이언트 연결이 끊김 😥

    그래서 필요한 게 탄력적 IP!

    • 한 번 발급받으면 내가 직접 붙였다 뗐다 할 수 있는 고정 IP
    • EC2를 껐다 켜도 IP가 변하지 않음
    • 여러 서버에 재사용 가능

    💸 요금 주의 사항

    • 사용 중이면 무료 (EC2에 연결되어 있으면)
    • 연결 안 하고 방치하면 요금 발생!
    • 탄력적 IP는 자원이니까, 놀리면 돈 받는다는 것

    📌 요약 정리

    항목설명
    목적 EC2에 고정된 공인 IP 제공
    장점 재부팅해도 IP 유지, 다른 서버에 재사용 가능
    요금 연결돼 있으면 무료, 미사용 시 유료
    사용 예 고정 도메인 연결, API 서버 외부 통신, 서버 교체 대비

    2. RDS(Relational Database Service) – 데이터 저장소

    • 사용자의 이름, 선호 채널, 시청 기록 등은 전부 관계형 데이터베이스(RDS)에 저장
    • EC2는 이 데이터를 읽고 쓰면서 맞춤 추천을 처리함

    ✅ 핵심 개념

    • AWS가 DB 서버를 자동으로 관리해주는 서비스
    • MySQL, PostgreSQL, Oracle 등 다양한 엔진 지원
    • 백업, 복구, 모니터링, 장애 처리까지 자동으로 제공

    📦 구성 요소

    DB 엔진 MySQL, MariaDB, PostgreSQL 등
    인스턴스 클래스 성능 사양 (db.t3.micro 등)
    스토리지 SSD, 프로비저닝 IOPS 선택
    멀티 AZ 장애 대비 이중화 구성 가능
    엔드포인트 DB 주소 (mydb.xxxxxxx.us-east-1.rds.amazonaws.com)

    🔐 보안 그룹 설정 예시

    • 포트 3306 (MySQL 기본 포트)을 열어야 함
    • 허용 대상은 "EC2가 속한 보안 그룹"으로 설정하면 보안적으로 좋음
    MySQL/Aurora 3306 EC2의 보안 그룹 (예: sg-12345678)

    3. S3(Simple Storage Service) – 파일 저장소

    • 사용자 프로필 사진, 채널 썸네일, 추천 알고리즘 모델 파일 등 파일 형태로 된 건 S3에 저장
    • EC2는 필요할 때 S3에서 파일을 불러와서 사용자에게 보여줌

    ✅ 핵심 개념

    • 파일(정적 리소스)을 저장하고 제공하는 저장소 서비스
    • 버킷(Bucket) 단위로 구분됨
    • 무제한 저장 가능 / 안정성 99.999999999%
    • 정적 웹 호스팅 기능 제공

    🗃️ 자주 쓰는 활용 예

    • 정적 웹사이트 호스팅 (React 빌드 파일)
    • 사용자 업로드 파일 저장
    • AI 모델/로그/이미지 저장소

    🔐 권한 관리 방식

    1. 퍼블릭 접근 설정

    • 정적 웹사이트로 쓸 때 사용
      → "모든 사람에게 읽기 허용" 설정해야 됨

    2. IAM 역할 + 정책 사용

    • EC2가 S3에 접근할 때는 IAM 역할을 통해 권한 부여

    🔐 보안 그룹 vs IAM 요약

    항목                          보안 그룹                                              IAM 역할

    대상 네트워크 접근 제어 리소스(EC2, Lambda 등)의 AWS 서비스 접근 권한
    작동 방식 포트/프로토콜 기반 허용/차단 서비스에 따라 API 접근 가능 여부 제어
    예시 EC2에서 80포트만 열기 EC2가 S3에서 파일 읽도록 허용

    💡 추가로 알아두면 좋은 AWS 서비스들

    🌀 ELB (Elastic Load Balancer)

    트래픽 분산기

    • 사용자가 많아지면 EC2 하나로는 감당이 안 됨
      → 여러 개의 EC2를 실행해야 함
      → 그럼 누가 어떤 서버로 보내줄지 정해주는 게 필요함
    • ELB가 이 역할을 해줘요: "사용자 요청을 여러 서버로 고르게 나눠줘요"

    👉 쉽게 말해:
    "사람 줄 세우는 안내원 역할!"


    🌐 VPC (Virtual Private Cloud)

    나만의 AWS 네트워크 공간

    • AWS 안에 내 프로젝트만을 위한 가상의 네트워크 공간을 만드는 것
    • 여기서 보안 그룹 설정도 하고, 외부에서 접근 가능한 것과 아닌 것을 세부적으로 설정 가능

    👉 쉽게 말해:
    "나만의 아파트 단지를 만들고, 입구에 경비도 세우는 느낌!"


    🔐 IAM (Identity and Access Management)

    권한 관리 시스템

    • 누가 어떤 AWS 서비스에 접근할 수 있는지 설정하는 서비스
    • 예를 들어, EC2는 S3에서 파일을 읽을 수 있지만, 삭제는 못하게 하고 싶을 때 IAM으로 설정

    👉 쉽게 말해:
    "열쇠랑 잠금장치를 관리하는 관리자!"


    📊 CloudWatch

    모니터링 시스템

    • EC2가 CPU를 얼마나 쓰고 있는지, RDS가 얼마나 느린지, 에러가 얼마나 났는지 등을 실시간으로 볼 수 있음
    • 알람도 설정할 수 있어서, 트래픽 폭주나 다운타임에 대비 가능

    👉 쉽게 말해:
    "CCTV + 상태판 역할!"


    🎯 정리 요약

    서비스 역할 비유

    EC2 서버 컴퓨터 웹 프로그램 실행기
    RDS 관계형 데이터 저장소 사용자 정보 저장소
    S3 파일 저장소 이미지/영상/문서 보관함
    ELB 트래픽 분산기 사용자 줄 세우기
    VPC 가상 네트워크 우리 아파트 단지
    IAM 권한 설정 누가 뭘 할 수 있을지 잠금 설정
    CloudWatch 모니터링 실시간 상태 감시카메라

     


     

    🎯 현실적인 팁

    • EC2, RDS, S3를 같이 쓰면 보안 그룹 간 연결을 잘해야 데이터가 잘 오감
    • RDS는 직접 퍼블릭하게 열지 말고, EC2만 접근 가능하게 설정
    • S3는 업로드/다운로드만 하게 하고 삭제 권한은 제한하는 게 안전
    • IAM 역할로 EC2 → S3 권한 연결할 땐 EC2 생성 시 IAM Role을 붙여야 함

     

Designed by Tistory.