티스토리 뷰

Backend/AWS

[AWS] ECS Fargate? (Feat. ChatGPT)

HarryJeonn 2023. 6. 8. 22:27
💡 GPT가 소개해준 커리큘럼
- AWS Fargate 서비스 개요
- 서버리스 컨테이너 실행 방법
- ECS Fargate 작업 정의 작성 및 배포

AWS Fargate 서비스 개요

AWS Fargate란?

AWS의 관리형 컨테이너 오케스트레이션 서비스로, 개발자가 컨테이너 애플리케이션을 실행하고 관리할 수 있는 환경을 제공한다. Fargate는 개발자가 서버 인스턴스를 직접 관리하지 않아도 되므로 서버리스 컴퓨팅의 이점을 활용할 수 있다.

주요 기능

  • 서버리스 컴퓨팅
    • Fargate를 사용하면 개발자는 애플리케이션을 실행하기 위해 서버 인스턴스를 프로비저닝하거나 관리할 필요가 없다.
    • 개발자가 인프라 관리에 신경쓰지않고 애플리케이션에 집중할 수 있도록 도와준다.
  • 탄력적인 확장성
    • 애플리케이션의 요구 사항에 따라 자동으로 컨테이너를 확장하거나 축소하여 트래픽에 대응할 수 있다.
    • 애플리케이션의 성능을 최적화하고 사용자들에게 끊김없는 경험을 제공하는 데 도움이 된다.
  • 컨테이너 관리
    • 컨테이너 오케스트레이션 작업을 개발자로부터 추상화하여 컨테이너의 실행, 모니터링, 복구 등을 자동으로 처리한다.
    • 개발자는 컨테이너 이미지를 정의하고 배포하는 것에만 집중할 수 있다.
  • AWS 서비스 통합
    • 다른 AWS 서비스와 통합이 가능하다. 예를 들어 ECR을 사용하여 이미지를 저장하고, ELB를 사용하여 트래픽을 분산시킬 수 있다.
    • 애플리케이션을 더욱 강력하게 구축하고 운영할 수 있도록 도와준다.

이 다음부터는 AWS도 사용해야하고 Docker도 사용해봐야한다.

하지만 아직 AWS도 Docker도 잘 모르기 때문에 우선은 이론적으로 간략하게 알아만가고 조만간 실제로 사용할 때 다시 한번 이 글을 참고하여 사용해보자.

서버리스 컨테이너 실행 방법

  1. 컨테이너 이미지 작성
    • 컨테이너 이미지는 애플리케이션과 필요한 종속성을 포함하고 있어야 한다.
    • 일반적으로 Docker를 사용하여 컨테이너 이미지를 빌드하고 Docker 이미지 레지스트리에 업로드한다.
    • 서버리스 환경에서 컨테이너를 실행하기 위해서는 먼저 컨테이너 이미지를 작성해야 한다.
  2. AWS Fargate 설정
    • AWS 계정을 생성하고 필요한 권한을 설정해야한다.
    • 그런다음 AWS Management Console 혹은 AWS CLI를 통해 Fargate를 구성한다.
    • Amazon ECS 사용 설정 - Amazon ECS
  3. 애플리케이션 배포
    • 컨테이너 이미지를 저장하는 Docker 이미지 레지스트리를 설정한다. AWS에서는 ECR을 사용할 수 있다.
    • ECR에 컨테이너 이미지를 업로드한다.
    • Fargate Task를 정의하고 실행할 컨테이너 이미지를 지정한다. 이때 리소스 요구사항을 설정할 수 있다.
    • 필요한 경우 로드 밸런서를 설정하여 트래픽을 분산시킬 수 있다.
  4. 모니터링과 로깅
    • 서버리스 컨테이너 실행에서는 모니터링과 로깅이 중요한 요소이다.
    • AWS Fargate는 다양한 모니터링 및 로깅 도구와 통합될 수 있다.
    • 예를 들어 Amazon CloudWatch를 사용하여 컨테이너 및 애플리케이션의 메트릭과 로그를 모니터링할 수 있다.
  5. 스케일링
    • AWS Fargate는 수평 및 수직 스케일링을 자동으로 처리하므로 애플리케이션의 성능과 가용성을 유지할 수 있다.
    • 서버리스 환경에서는 필요에 따라 자동으로 컨테이너를 확장하거나 축소하여 트래픽에 대응할 수 있다.

ECS Fargate Task Definitions 작성 및 배포

  1. Task Definitions 작성
    • ECS Fargate 작업을 실행하기 위해서는 먼저 Task Definitions를 작성해야 한다.
    • 컨테이너 실행에 필요한 정보를 정의하는 JSON 형식의 파일이다.
    • 컨테이너 이미지, 리소스 할당량, 환경 변수, 네트워킹 설정 등의 정보를 포함해야 한다.
  2. 컨테이너 정의 추가
    • Task Definitions에는 한 개 이상의 컨테이너 정의를 추가해야 한다.
    • 각 컨테이너 정의는 컨테이너 이미지, 포트 매핑, 환경 변수 등 컨테이너 실행에 필요한 설정을 포함한다.
    • 필요에 따라 여러 개의 컨테이너 정의를 작성할 수 있다.
  3. 작업 실행 구성
    • Task Definitions을 생성한 후에는 작업 실행 구성을 생성해야 한다. 작업 실행 구성은 작업을 어떻게 실행할 지에 대한 구성을 정의한다.
    • 작업 수, 작업 크기, 네트워킹 및 로깅 설정 등이 포함된다.
  4. 작업 배포
    • 위 단계를 마치면 배포할 준비가 완료된다.
    • 배포는 ECS 콘솔, AWS CLI, AWS SDK를 통해 수행할 수 있다.
    • 배포 시에는 Task Definitions와 작업 실행 구성을 지정하고, 필요한 경우 로드 밸런서나 서비스 디스커버리 등의 추가 설정을 수행할 수 있다.
  5. 모니터링과 로깅
    • 작업이 실행되면 모니터링과 로깅을 설정하여 애플리케이션의 상태를 볼 수 있다.

'Backend > AWS' 카테고리의 다른 글

[AWS] AWS CDK? (Feat. ChatGPT)  (0) 2023.07.06
[AWS] AWS VPC? (Feat. ChatGPT)  (0) 2023.06.27
[AWS] ECS? (Feat. chatGPT)  (0) 2023.06.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함