TIL - 20250924

juni·2025년 9월 24일

TIL

목록 보기
135/315

0924 AWS 입문: 클라우드 컴퓨팅과 EC2 웹 서버 구축


✅ 1. 클라우드 컴퓨팅과 AWS의 기본 개념

  • 클라우드 컴퓨팅(Cloud Computing)이란 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스, 소프트웨어 등 IT 리소스를 필요할 때마다 빌려 쓰고(On-demand), 사용한 만큼만 비용을 지불하는(Pay-as-you-go) 서비스입니다.

  • AWS (Amazon Web Services)는 전 세계에서 가장 널리 사용되는 클라우드 컴퓨팅 플랫폼으로, 수백 가지의 다양한 IT 서비스를 제공합니다.

➕ AWS 글로벌 인프라

  • AWS는 전 세계에 분산된 데이터 센터를 통해 서비스를 제공합니다. 이 구조를 이해하는 것은 안정적인 서비스 운영의 기본입니다.
    • 리전 (Region): AWS 서비스가 위치한 지리적 영역입니다. (e.g., ap-northeast-2 서울 리전) 리전은 다른 리전과 완전히 격리되어 있어, 한 리전의 장애가 다른 리전에 영향을 주지 않습니다.
    • 가용 영역 (Availability Zone, AZ): 각 리전 내에 존재하는, 하나 이상의 물리적인 데이터 센터 그룹입니다. AZ들은 서로 물리적으로 떨어져 있어, 한 AZ의 장애(정전, 화재 등)로부터 다른 AZ를 보호할 수 있습니다. 고가용성(High Availability)을 위해 보통 2개 이상의 AZ에 서비스를 분산 배포합니다.

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

  • IAM은 AWS 리소스에 대한 접근을 안전하게 제어하기 위한 서비스입니다. "누가(Who) 무엇을(What) 할 수 있는지"를 정의하여 권한을 관리합니다.

  • 루트 사용자 (Root User): AWS 계정을 처음 생성할 때 만들어지는 계정으로, 모든 권한을 가집니다. 보안을 위해 루트 사용자는 평소에는 사용하지 않고, 결제나 계정 관리 등 꼭 필요한 경우에만 사용하는 것이 원칙입니다.

➕ IAM의 주요 구성 요소

  1. 사용자 (User): AWS와 상호작용하는 사람 또는 애플리케이션입니다. 각 사용자는 고유한 보안 자격 증명(비밀번호, 액세스 키)을 가집니다.
  2. 그룹 (Group): 사용자들의 모음입니다. 여러 사용자에게 동일한 권한을 부여해야 할 때, 각 사용자에게 개별적으로 권한을 주는 대신 그룹에 권한을 부여하고 사용자를 그룹에 추가하여 관리를 용이하게 합니다.
  3. 정책 (Policy): 특정 리소스에 대한 권한(Permission)을 정의한 JSON 문서입니다. (e.g., "EC2 인스턴스에 대한 모든 접근을 허용한다.")
  4. 역할 (Role): 특정 사용자나 서비스에게 임시적으로 권한을 부여할 때 사용하는 메커니즘입니다.
  • 보안 모범 사례: 루트 계정 대신, 필요한 최소한의 권한만 가진 IAM 사용자를 생성하여 평소 작업을 수행하고, MFA(다중 인증)를 활성화하여 계정 보안을 강화해야 합니다.

✅ 3. EC2 (Elastic Compute Cloud): 가상 서버 호스팅

  • EC2는 AWS 클라우드에서 크기 조정이 가능한 컴퓨팅 용량(가상 서버)을 제공하는 서비스입니다. 물리적인 서버 컴퓨터를 구매하고 관리할 필요 없이, 몇 분 만에 가상 서버를 생성하고 사용할 수 있습니다.

➕ EC2 인스턴스 생성 과정의 핵심 요소

  1. 인스턴스 (Instance): EC2를 통해 생성된 하나의 가상 서버를 의미합니다.
  2. AMI (Amazon Machine Image): 인스턴스를 시작하는 데 필요한 정보를 담고 있는 템플릿입니다. 운영체제(OS), 애플리케이션 서버 등이 미리 구성되어 있습니다. (e.g., Amazon Linux 2, Ubuntu, Windows Server)
  3. 인스턴스 유형 (Instance Type): CPU, 메모리, 스토리지, 네트워크 용량 등 인스턴스의 하드웨어 사양을 결정합니다. (e.g., t3.micro - 프리티어에서 사용 가능)
  4. 키 페어 (Key Pair): 인스턴스에 안전하게 SSH로 원격 접속하기 위한 암호화 키입니다. 공개 키는 AWS에 저장되고, 개인 키(.pem 파일)는 사용자가 다운로드하여 안전하게 보관해야 합니다.
  5. 보안 그룹 (Security Group): 인스턴스로 들어오고 나가는 트래픽을 제어하는 가상 방화벽 역할을 합니다. 특정 포트와 IP 주소에 대한 접근을 허용하거나 차단하는 규칙(Inbound/Outbound Rules)을 설정합니다. (e.g., "TCP 22번 포트(SSH)는 내 IP에서만 허용", "TCP 80번 포트(HTTP)는 모든 IP에서 허용")

✅ 4. EC2에 웹 서버 구축하기 (실습)

  • 생성된 EC2 인스턴스에 원격으로 접속하여 간단한 웹 서버(Apache httpd)를 설치하고 실행하는 과정입니다.
  1. EC2 인스턴스에 접속: 다운로드한 키 페어(.pem 파일)를 사용하여 터미널에서 SSH를 통해 인스턴스에 접속합니다.
    # 권한 변경 (최초 1회)
    chmod 400 My-First-Server-Key.pem
    # SSH 접속
    ssh -i "My-First-Server-Key.pem" ec2-user@<EC2_PUBLIC_IP>
  2. 패키지 업데이트 및 웹 서버 설치:
    sudo yum update -y
    sudo yum install -y httpd
  3. 웹 서버 실행 및 자동 시작 설정:
    sudo systemctl start httpd
    sudo systemctl enable httpd
  4. 테스트 페이지 생성:
    echo "<h1>Hello from my EC2 Web Server</h1>" | sudo tee /var/www/html/index.html
  5. 보안 그룹 설정 확인: EC2 인스턴스의 보안 그룹에서 HTTP (80번 포트)에 대한 인바운드 규칙이 모든 IP(0.0.0.0/0)에 대해 열려 있는지 확인합니다.
  6. 결과 확인: 웹 브라우저에서 EC2 인스턴스의 퍼블릭 IP 주소로 접속하여 "Hello from my EC2 Web Server" 메시지가 보이는지 확인합니다.

📌 요약

  • 클라우드 컴퓨팅은 IT 리소스를 빌려 쓰는 서비스이며, AWS는 이를 위한 글로벌 인프라(리전, 가용 영역)를 제공합니다.
  • AWS 계정 보안의 핵심은 IAM이며, 루트 계정 대신 최소 권한의 IAM 사용자를 생성하여 사용하는 것이 원칙입니다.
  • EC2는 클릭 몇 번으로 생성할 수 있는 가상 서버이며, AMI, 인스턴스 유형, 키 페어, 보안 그룹 등의 설정을 통해 구성됩니다.
  • 보안 그룹은 인스턴스의 가상 방화벽으로, 특정 포트(SSH: 22, HTTP: 80)에 대한 접근을 제어하는 매우 중요한 역할을 합니다.

0개의 댓글