TIL - 20251008

juni·2025년 10월 7일

TIL

목록 보기
147/316

1008 AWS 배포 아키텍처 총정리 : 인프라 설계와 구축


✅ 1. 보안의 첫걸음: IAM (Identity and Access Management)

  • AWS의 모든 작업은 IAM에서 시작됩니다. 루트 사용자는 최초 생성 시에만 사용하고, 평소 모든 작업은 필요한 최소한의 권한만 가진 IAM 사용자를 통해 수행하는 것이 철칙입니다.
  • EC2 인스턴스가 다른 AWS 서비스(S3, RDS 등)에 접근해야 할 때는, 액세스 키를 코드에 넣는 대신 IAM 역할(Role)을 부여하여 임시 보안 자격 증명을 사용하도록 구성해야 합니다.

✅ 2. 네트워크의 기초: VPC (Virtual Private Cloud)

  • VPC는 클라우드 위에 구축하는 논리적으로 격리된 나만의 데이터 센터입니다.
  • 설계 순서:
    1. VPC 생성: 전체 IP 대역(CIDR)을 정의합니다.
    2. 서브넷 분할: VPC를 더 작은 단위인 서브넷으로 나눕니다. 각 서브넷은 특정 가용 영역(AZ)에 속합니다.
      • 퍼블릭 서브넷: 외부 인터넷과 직접 통신이 필요한 리소스(웹 서버, ALB)를 배치합니다.
      • 프라이빗 서브넷: 외부에서 직접 접근하면 안 되는 보안이 중요한 리소스(DB 서버, WAS)를 배치합니다.
    3. 게이트웨이 연결:
      • 인터넷 게이트웨이(IGW): VPC와 인터넷을 연결하는 양방향 통로. 퍼블릭 서브넷의 라우팅 테이블에 추가합니다.
      • NAT 게이트웨이: 프라이빗 서브넷의 리소스가 외부로 나갈 수만 있게 하는 단방향 출구. 퍼블릭 서브넷에 생성하여 프라이빗 서브넷의 라우팅 테이블에 추가합니다.

✅ 3. 컴퓨팅과 데이터베이스 계층 구축

➕ EC2 (Elastic Compute Cloud)

  • VPC 내에 생성되는 가상 서버입니다.
  • AMI라는 서버 템플릿을 기반으로 생성되며, 인스턴스 유형으로 사양을 결정합니다.
  • 보안 그룹이라는 인스턴스 수준의 방화벽을 통해 인바운드/아웃바운드 트래픽을 제어합니다.

➕ RDS (Relational Database Service)

  • AWS가 직접 관리해주는 완전 관리형 관계형 데이터베이스입니다.
  • 보안: 가장 안전한 프라이빗 서브넷에 배치하는 것이 원칙입니다.
  • 고가용성 (Multi-AZ): 주 DB를 다른 AZ의 예비 DB에 실시간 복제하여, 장애 발생 시 자동으로 장애 조치(Failover)를 수행합니다.

✅ 4. EC2와 RDS의 안전한 연동

  • 가장 중요한 실전 개념 중 하나로, 퍼블릭 서브넷의 EC2가 프라이빗 서브넷의 RDS에 안전하게 접근하도록 설정하는 과정입니다.

  • 설정 방법:

    1. EC2 인스턴스에 보안 그룹 A를 할당합니다.
    2. RDS 인스턴스에 보안 그룹 B를 할당합니다.
    3. RDS의 보안 그룹(B)의 인바운드 규칙을 수정합니다.
      • 유형: MYSQL/Aurora (포트 3306)
      • 소스 (Source): EC2의 IP 주소가 아닌, EC2의 보안 그룹 A의 ID (sg-xxxxxxxx)를 지정합니다.
  • 핵심: 이 설정을 통해, "보안 그룹 A에 속한 모든 EC2 인스턴스"에게만 데이터베이스 접근을 허용하게 되어, IP 주소 변경에 영향을 받지 않는 유연하고 안전한 아키텍처가 완성됩니다.


📌 요약

  • AWS 인프라 구축은 IAM으로 보안 주체를 정의하고, VPC로 네트워크 경계를 설정하는 것에서 시작합니다.
  • EC2는 애플리케이션을 실행하는 컴퓨팅 리소스, RDS는 데이터를 저장하는 관리형 데이터베이스 리소스입니다.
  • 보안을 위해 리소스는 퍼블릭/프라이빗 서브넷에 역할을 나누어 배치하고, 보안 그룹을 통해 리소스 간의 통신을 정교하게 제어해야 합니다.

0개의 댓글