AWS Fargate 소개 안내서

AWS Fargate는 Amazon ECS 및 Amazon EKS와 함께 사용할 수 있는 기술입니다. Amazon EC2 인스턴스의 서버 또는 클러스터를 관리하지 않고도 컨테이너를 실행할 수 있습니다.

파게이트 컨테이너를 실행하기 위해 가상 머신 클러스터를 구성, 확장 또는 프로비저닝할 필요가 없습니다. 서버 종류를 선택하거나 클러스터 확장을 예약하거나 클러스터 패킹을 최적화할 필요가 없습니다.

Fargate 시작 유형 또는 Fargate 용량 공급자를 사용하여 Amazon ECS 작업 및 서비스를 실행할 수 있습니다. Fargate를 사용하려면 애플리케이션을 컨테이너에 패키징하고, 운영 체제, CPU 및 메모리 요구 사항을 지정하고, 네트워킹 및 IAM 정책을 구성하고, 실행할 수 있습니다.

컨테이너를 호스팅하기 위해 기본 CPU 및 RAM 용량을 유지할 필요가 없습니다. 작업에 필요한 리소스 양을 AWS에 알리고 나머지 작업은 AWS에 맡길 수 있습니다. 각 Fargate 작업에는 격리 장벽이 있으므로 기본 커널, CPU, 메모리 또는 탄력적 네트워크 인터페이스를 다른 작업과 공유하지 않습니다.

Fargate는 어떻게 작동합니까?

Fargate를 사용하면 컨테이너를 호스팅할 인프라를 설정하거나 관리하지 않고도 컨테이너를 배포할 수 있습니다. 실행할 컨테이너 이미지와 할당할 CPU 및 메모리 리소스 수를 Fargate에 알려줍니다. 그러면 호스트 서버가 Fargate에 의해 자동으로 프로비저닝됩니다. 컨테이너가 실행 중일 때 사용한 리소스에 대해서만 비용을 지불합니다.

Fargate는 최종 사용자가 컨테이너를 호스팅하는 서버를 관리할 필요가 없으므로 서버리스 컴퓨팅 엔진입니다. 분명히 말하면 서버는 여전히 존재합니다. AWS는 단순히 관리합니다. Fargate는 컨테이너를 염두에 두고 생성되지 않은 또 다른 서버리스 컴퓨팅 서비스인 AWS Lambda와 혼동해서는 안 됩니다(Lamba는 이제 컨테이너 이미지 배포를 지원하지만).

  Microsoft 계정에서 프로필 사진을 제거하는 방법

Fargate는 어떻게 도움이 됩니까?

AWS Fargate는 작업에 필요한 컴퓨팅, 메모리 및 기타 리소스의 정확한 양을 계산하므로 인스턴스 종류를 선택하거나 클러스터 용량을 확장하는 것에 대해 걱정할 필요가 없습니다.

이를 통해 컨테이너를 사용하는 대로 운영하는 데 필요한 리소스에 대해 비용을 지불할 수 있으므로 과잉 프로비저닝을 방지하고 필요하지 않은 서버에 대한 비용을 지불할 수 있습니다.

Fargate 작업(포드)은 자체 커널에서 실행되므로 워크로드가 격리되고 보안이 강화된 안전하고 격리된 컴퓨팅 환경이 생성됩니다.

이를 통해 팀은 서버 확장 및 보안 또는 운영 체제 패치와 같은 시간 소모적인 인프라 관리 활동을 처리할 필요 없이 ECS 또는 EKS 컨테이너를 사용하여 앱을 설계하고 실행할 수 있습니다.

Amazon CloudWatch Container Insights와 같은 다른 AWS 서비스와의 기본 연결을 통해 AWS Fargate는 높은 수준의 관찰 가능성을 제공합니다. 여러 타사 기술을 사용하여 로그 및 메트릭을 수집할 수도 있습니다.

또한 Fargate와 함께 컨테이너를 사용할 때 방대한 AWS 서비스를 효율적으로 활용할 수 있습니다.

Fargate는 컨테이너의 요구 사항에 맞게 컴퓨팅 리소스를 지속적으로 시작하고 확장하여 과도한 프로비저닝을 방지하고 사용하지 않는 리소스에 대해 비용을 지불하지 않도록 합니다. 절약 전략을 계산할 수도 있습니다. Fargate Spot 옵션을 사용하면 일반 비용에서 최대 70%까지 절약할 수 있지만 중단 가능한 애플리케이션에만 최적입니다.

Fargate의 구성 요소

클러스터

작업 또는 서비스의 논리적 그룹은 Amazon ECS 클러스터입니다. 클러스터를 사용하여 애플리케이션을 격리할 수 있습니다. Fargate를 사용하여 작업을 수행하면 클러스터 리소스가 관리됩니다.

작업 정의

작업 정의는 응용 프로그램의 컨테이너 중 하나 이상을 설명하는 텍스트 파일입니다. JSON 파일입니다. 한 번에 최대 10개의 컨테이너를 설명하는 데 사용할 수 있습니다. 애플리케이션의 작업 정의는 청사진 역할을 합니다. 애플리케이션의 수많은 매개변수를 지정합니다.

예를 들어, 이를 사용하여 운영 체제 매개변수, 사용할 컨테이너, 애플리케이션에 대해 열 포트 및 작업의 컨테이너와 함께 사용할 데이터 볼륨을 정의할 수 있습니다. 응용 프로그램의 요구 사항에 따라 작업 정의에 사용할 수 있는 특정 매개 변수가 결정됩니다.

  실습: iPhone 또는 iPad에서 PS4 게임을 플레이하는 방법

작업

작업은 작업 정의의 클러스터 수준 인스턴스화입니다. Amazon ECS에서 애플리케이션에 대한 작업 정의를 생성했으면 클러스터에서 실행할 작업 수를 선택할 수 있습니다. 서비스 또는 별도의 프로세스의 일부로 작업을 실행할 수 있습니다.

서비스

Amazon ECS 클러스터에서 Amazon ECS 서비스를 활용하여 원하는 수의 작업을 동시에 실행하고 유지할 수 있습니다. 어떤 이유로든 작업이 실패하거나 중단되면 Amazon ECS 서비스 스케줄러는 작업 정의에 따라 다른 인스턴스를 실행합니다. 이를 대체하고 서비스의 작업 수를 올바른 수준으로 유지하기 위해 수행합니다.

운영 체제 및 CPU 아키텍처

Fargate에서 지원하는 운영 체제는 Amazon Linux 2, Windows Server 2019 Full 및 Windows Server 2019 코어입니다.

ARM 및 X86_64는 Amazon ECS 작업 정의에 사용할 수 있는 두 가지 아키텍처입니다. Windows 컨테이너를 사용하는 경우 X86_64 CPU 아키텍처가 있어야 합니다. 대조적으로 Linux 컨테이너를 사용하는 경우 ARM 기반 애플리케이션용 ARM64 아키텍처와 X86_64 CPU 아키텍처를 사용할 수 있습니다.

EC2 인스턴스가 있는 ECS AWS Fargate를 사용한 ECS

EC2 인스턴스 모델에서 컨테이너는 클러스터의 EC2 인스턴스(VM)에 배포됩니다. ECS는 작업 정의의 일부인 작업과 함께 이를 관리합니다.

장점 👍

  • 여기에서 사용되는 EC2 인스턴스 유형은 전적으로 사용자가 제어할 수 있습니다.
  • 비용을 최대 90%까지 절감하는 스팟 인스턴스를 사용할 수 있습니다.

단점 👎

  • 인스턴스의 보안 패치와 네트워크 보안을 관리해야 합니다. 또한 클러스터의 확장성에 대한 책임도 있습니다.

Fargate 모델에서는 더 이상 EC2 인스턴스나 서버에 대해 걱정할 필요가 없습니다. 필요한 CPU 및 메모리 구성을 선택하면 Fargate가 컨테이너를 배포합니다.

장점 👍

  • 서버를 관리할 필요가 없습니다.
  • AWS는 가용성과 확장성을 책임지지만 여전히 올바른 메모리와 CPU를 선택하는 것이 좋습니다. 그렇지 않으면 응용 프로그램을 사용할 수 없게 될 위험이 있습니다.
  • Fargate Spot을 사용하기로 결정한 경우 Fargate 가격에서 최대 70% 할인을 받을 수 있습니다.
  Microsoft Word에서 표와 이미지를 정렬하는 방법

단점 👎

  • AWS Fargate가 포함된 ECS는 하나의 네트워킹 모드 -awsvpc-만 지원합니다. 결과적으로 네트워킹 계층에 대한 제어가 제한됩니다.

Fargate가 없는 EKS와 비교 Fargate가 있는 EKS

Fargate 모델이 없는 EKS에서는 클러스터의 크기를 미리 결정해야 합니다. 나중에 언제든지 수동으로 노드를 변경할 수 있지만 처음부터 이상적인 크기를 지정하는 것에 비해 번거롭습니다.

장점 👍

  • 이 모델은 HostNetwork 및 HostPort와 같은 구성 변수를 지정할 수 있는 것과 같이 다양한 방식으로 더 많은 제어를 제공합니다.
  • Fargate는 일부 지역에서 지원되지 않으므로 더 많은 지역에서 컨테이너를 사용할 수 있도록 하려면 Fargate 없이 EKS를 사용하는 것이 좋습니다.

단점 👎

  • Fargate가 없는 EKS는 사용하기가 약간 어렵습니다.

Fargate 모델이 있는 EKS에서는 클러스터 크기를 미리 지정할 필요가 없습니다.

장점 👍

  • Fargate가 포함된 EKS는 전용 가상 머신 내에서 실행되기 때문에 더 안전합니다. 특권 모드를 지원하지 않는다는 사실은 일종의 보안 기능입니다.
  • 장기적으로 보면 더 저렴합니다.

단점 👎

  • 다양한 방식으로 제어력이 떨어집니다.

결론

Fargate는 매우 강력하고 성숙한 도구입니다. 모든 인프라 관리를 자동으로 수행하여 비용, 시간 및 많은 노력을 절약할 수 있습니다. Fargate는 컨테이너를 처음 사용하고 단순히 애플리케이션을 유지 관리하는 것보다 구축하는 데 집중하려는 경우에 특히 유용합니다.