Amazon Web Services를 통해 배운 클라우드 개념 정리

·

3 min read

들어가면서

인프라에 대한 이해가 부족해서 AWS TechCamp 강의를 통해 클라우드 서비스를 실습하면서 기본 개념을 학습해보았다. 내가 수강한 강의는 총 3가지로 다음과 같다.

  1. AWS 서버리스로 서버 고민 없이 웹 애플리케이션 구축하기

  2. 기초부터 배우는 AWS 핵심 서비스로 웹 애플리케이션 구축하기

  3. Amazon ECS로 컨테이너 위에 웹 애플리케이션 구축하기

그림으로 이해하는 AWS 구조와 기술을 참고하여 새로 배운 개념을 정리해보고자 한다.


전체 그림을 그리기 위해서 사용자의 요청이 어떻게 처리되는지 예시를 들어보자.

사용자 요청 처리 흐름

  1. 사용자가 웹사이트 URL 입력

  2. Route 53(DNS 서버)에서 라우팅 처리

    • 해당 도메인의 로드밸런스 IP 주소 반환
  3. 로드 밸런서에서 여러 EC2 웹서버로 트래픽 분산

    • EC2와 로드밸런서가 위치한 VPC에서 트래픽 접근 제어 이루어짐

      • 보안 그룹 : HTTP/HTTPS(80/443번 포트) 요청만 허용

        • 특정 IP만 허용(예시 : 특정 국가)
      • 네트워크 ACL (Access Control List) : 서브넷 레벨에서 허용/차단 설정

        • 악의적인 IP 주소 차단
  4. VPC에서 허용된 요청이 EC2 인스턴스(웹서버)로 전달

    1. 웹서버가 요청 처리

      1. 필요시 DB와 통신 : 같은 VPC 내부에서만 가능

      2. 정적 파일은 S3에서 가져오기

    2. 클라이언트로 응답 반환


이제 각 AWS 용어와 역할을 더 자세히 살펴보자.

EC2 : 가상 웹 서버

  • 웹 서버 : 클라이언트 HTTP 요청을 이해하고 응답을 처리하는 서버

    • 정적인 페이지 요청은 웹 서버 내부에서 처리하고, 동적인 페이지 요청은 AP 서버에서 처리한다.

    • 정적인 파일만 호스팅하려면 S3와 같은 정적 호스팅 서비스 사용 가능하다.

    • 대량 접근을 처리하기 위해서 여러 웹서버를 통해 다중화로 구성하는 게 일반적이다.

  • 인스턴스 유형

    • CPU, 메모리, 장비 유형 어떤 걸 사용할 지 결정

    • 이미 만들어진 서버를 임대하는 것이 아니라서 하드웨어 구성과 OS의 조합을 탄력적으로 선택할 수 있다.

로드 밸런서란?

  • 한 서버에 과부하 걸리지 않도록 사용자 요청을 분산 처리하도록 도와준다.

S3 : 객체 스토리지 서비스

  • 데이터를 객체 단위로 관리한다.

  • 전세계적으로 접근 가능한 스토리지 서비스라서 VPC에 종속되지 않고, 독립적으로 동작한다. 따라서 브라우저에서 S3 URL 직접 열어서 이미지 확인 가능하다.

  • 기능

    • 웹 서버 기능

    • 쿼리 기능

VPC (Virtual Private Cloud)

  • 독립된 가상 네트워크 환경

    • 서버를 인터넷에 직접 노출시키지 않고 프라이빗 네트워크 안에서 운영하여 보안 강화된 환경 제공한다.

    • 외부에서 접근 필요한 경우, 제한된 포트나 IP 주소를 통해 제어 가능하다.

  • 네트워크 설계

    • 서브넷 : 설치할 네트워크의 범위

      • 퍼블릭 서브넷 : 인터넷 접근 필요한 웹 서버 배치

      • 프라이빗 서브넷

        • 오직 내부 네트워크를 통해서만 접근 가능

        • 민감한 리소스인 데이터베이스 서버 배치

    • 라우팅 테이블

    • 게이트웨이

      • 인터넷 게이트웨이 : 퍼블릭 서브넷에 있는 리소스가 요청과 응답 할 수 있도록 지원(양방향 통신)

      • NAT 게이트웨이 : 프라이빗 서브넷에 있는 리소스가 인터넷에 요청을 보내도록 허용하지만, 외부로부터 직접적인 접근은 차단(일방향 통신)

    • 접근 제어 : 웹서버만 데이터베이스 서버 접근하도록 제한하거나, 특정 IP에서만 외부 접근을 허용

      • 보안 그룹 : 트래픽 제어하는 방화벽 역할

        • 모든 트래픽이 차단되고, 허용된 규칙만 적용

          • 웹서버(EC2) : 80번(HTTP), 443번(HTTPS) 포트만 허용

          • 데이터 베이스(RDS) : 특정 IP나 웹 서버에서만 접근 허용

      • 네트워크 접근 제어 목록 (ACL)

        • VPC의 서브넷 레벨에서 트래픽 제어하는 추가 보안 레이어
  • 비용 효율성 증가 : VPC 내의 데이터 전송은 클라우드 내에서 이루어지기 때문에 외부 네트워크 비용 감소한다.

Route 53 : DNS 서비스

  • 도메인 이름을 IP 주소로 변환하여 트래픽을 라우팅한다.

  • 라우팅 방식

    • 라운드 로빈 : 트래픽을 여러 리소스에 고르게 분배

    • 지연 시간 기반 라우팅 : 사용자와 가장 가까운 서버로 요청 보냄

마무리

VPC, EC2를 통해 네트워크 분리, 보안 규칙 등 클라우드 인프라 관련 기초 내용을 배울 수 있었다. 다음에는 강의 내용을 복습하면서 EC2를 활용해 웹 애플리케이션을 배포해볼 계획이다. 인프라에 관심 있으신 분이라면, 초보자도 쉽게 따라하면서 배울 수 있는 AWS TechCamp 추천하고 싶다. 강의 수강하면 50달러 크레딧도 제공해서 더욱 좋았다. 그리고, 실습한 이후에는 사용되지 않는 리소스가 남아 추가 비용 발생하지 않도록 두 번 확인하길 추천한다. 나는 이전 실습에서 리소스 삭제를 누락해 추가 비용을 지불해야 했던 소중한 경험을 통해 확실히 배웠다.