[AWS][Practitioner Essentials] M2 . 클라우드 컴퓨팅(EC2) - 추가 컴퓨팅 서비스 ( 서버리스, Lambda, ECS, EKS, Fargate )

CodeKong의 기술 블로그·2023년 10월 15일
1

AWS

목록 보기
7/8
post-thumbnail

📌 학습목표

  • 서버리스
  • Lambda
  • ECS, EKS
  • Fargate

  • 💡 등장배경

    EC2 인스턴스는 최소한의 손실로 프로비저닝해서 AWS에서 가동하고, 실행할 수 있는 가상 머신입니다.

    하지만 사용사례에 때라 대안을 찾아야 할 수도 있습니다.

    사례

    EC2를 사용하면 사용자가 시간에 따라 인스턴스 플릿을 직접 설정하고 관리해야 합니다.
    또한, 새 소프트웨어 패키지가 출시되면 인스턴스 패치를 내가 직접 책임지고 인스턴스의 규모 조정을 설정하고, 솔루션이 가용성이 높은 방식으로 호스팅되도록 아키텍처를 설계했는지 확인해야합니다.

    여기서 서버리스라는 용어가 등장합니다.


    💡 서버리스

    ✅ 서버리스는 애플리케이션을 호스팅하는 기본 인프라나 인스턴스를 마치 서버가 없는 것처럼 관리할 필요가 없다는 뜻입니다.

    ✅ 필요한 프로비저닝, 규모 조정, 고가용성 및 유지 관리와 관련한 모든 기본적인 환경 관리를 AWS가 대신 처리해줍니다.

    ✅ 서버리스 컴퓨팅을 사용하면 서버를 유지 관리하는 대신 새로운 제품과 기능을 혁신하는 데 더 집중할 수 있습니다.

    ✅ 처리량 및 메모리와 같은 소비 단위를 수정하여 애플리케이션의 용량을 조정하여 애플리케이션을 자동으로 확장할 수 있는 유연성을 가지고 있습니다.


    💡 AWS Lambda

    ✅ AWS Lambda는 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있는 서비스입니다.

    ❗️Lambda 작동 방식

    ✅ Lambda는 사용자가 코드를 Lambda 함수라는 곳에 업로드할 수 있게 도와주는 서비스입니다.
    ✅ 먼저 트리거를 구성하면 Lambda 함수에서 서비스가 트리거를 기다립니다.
    ✅ 트리거가 감지되면 코드가 관리형 환경에서 자동으로 실행됩니다.

    ❗️Lambda의 특징과 이점

    ✅ 자동으로 규모가 조절되고 가용성이 높으며 환경 내 모든 유지관리를 AWS가 수행해준다.

    ✅ 트리거가 하나만 있든 천 개가 있든 Lambda는 수요에 맞게 함수의 규모를 조정합니다.

    ✅ Lambda는 코드를 15분 미만으로 실행하도록 설계되었습니다.
    ➡️딥 러닝 같은 장기 실행 프로세스에는 적합하지 않다.

    하지만 서버리스를 이용할 준비가 되지 않았거나 혹은 기본 환경에 엑세스해야 하지만 여전히 효율성과 휴대성이 필요한 상황이 있습니다.


    💡 ECS와 EKS

    ECS와 EKS는 모두 Docker 컨테이너 오케스트레이션 도구입니다.

    ❓Docker❓

    ✔️ Docker는 운영 체제 수준에서의 가상화를 사용하여 컨테이너에 소프트웨어를 제공합니다.

    ❓컨테이너❓

    업로드중..

    ✔️ 컨테이너는 애플리케이션과 애플리케이션에서 실행해야 하는 모든 구성을 모아 놓은 코드 패키지입니다.

    ✔️ 컨테이너는 EC2 인스턴스에서 실행이 되고 가상 머신을 작동하는 방식과 굉장히 비슷하게 서로 격리되어 실행됩니다.

    ✔️ AWS에서 Docker 컨테이너를 사용할 때는 단일 EC2 인스턴스 뿐만 아니라 클러스터라고 하는 인스턴스 모음에서 실행되는 컨테이너도 시작, 중지, 재시작, 모니터링하는 프로세스가 필요합니다.
    ➡️ 이런 프로세스를 컨테이너 오케스트레이션이라고 합니다.

    ECS와 EKS

    ✅ ECS는 자체 컨테이너 오케스트레이션 소프트웨어를 관리하는 번거로움 없이컨테이너화된 애플리케이션을 대규모로 실행하는 데 도움이 되도록 설계되었습니다.

    ✅ EKS는 비슷한 작업을 수행하지만 다른 도구와 다른 기능을 사용합니다.

    ✅Amazon ECS와 Amazon EKS는 모두 EC2에서 실행할 수 있습니다.
    ❗️하지만 기본 OS에 액세스할 필요가 없거나 EC2 인스턴스를 직접 컨트롤하면서 컨테이너를 호스팅하지 않아도 되는 경우에는 AWS Fargate라는 컴퓨팅 플랫폼을 사용하는 게 더 좋습니다.


    📋 정리

    💫 EC2

    ✅ 기존 방식의 애플리케이션을 호스팅
    ✅ Linux나 Window같은 기본 운영 체제에 대한 완전한 엑세스

    💫 Lambda

    ✅ 단기적인 실행 함수나 서비스 지향 또는 이벤트 기반 애플리케이션을 호스팅
    ✅ 기본 환경은 전혀 관리하고 싶지 않음

    💫 ECS & EKS

    ✅ Docker 컨테이너 기반 워크로드를 실행
    ✅ 컨테이너를 내가 관리하는 EC2 인스턴스에서 실행

    💫 Fargate

    ✅ 컨테이너를 AWS가 모두 관리

    0개의 댓글