본문 바로가기
프로젝트&&스터디/AWES 3기 (2025.01~)

[AEWS 3기] AWS EKS Fargate 사용하기

by james_janghun 2025. 2. 8.

 

이 포스팅은 가시다(gasida)님이 진행하는 AEWS(Amazon EKS Workshop Study) 3기에서 학습한 내용을 정리하고 제가 스스로 공부한 내용을 기록하고자 하는 포스팅입니다.

 

EKS Fargate 시리즈

[AEWS] AWS EKS Fargate 개요

[AEWS] AWS EKS Fargate 사용하기 ( 현재글) 

Fargate 배포

Fargate는 기본적으로 Node의 형태를 띄는 pod이다.

 

 

Fargate Profile 생성

Fargate는 기본적으로 Profile이 반드시 존재해야한다.

이는 컴퓨팅 탭에서 확인할 수 있다.

 

각 프로파일에는 최대 5개의 Selector를 추가할 수 있습니다.

Selector는 키:값으로 이뤄지며, 해당 Selector를 기반으로 작동하게 됩니다.

 

각 Selector에는 네임스페이스와 선택적 레이블이 포함되어 있습니다.

네임스페이스는 반드시 지정해야하고, 레이블은 키-값으로 구성됩니다.

 

만약 프로파일의 설정 값이 겹치게 되어, pod에서 직접 프로파일을 선택할 수도 있습니다.

 

Fargate가 적용되는 pod는 아래와 같은 label 정보를 태그로 가져가야 합니다. 따라서 이 label이 있어야 해당 파드가 fargate로 붙을 수 있습니다.

eks.amazonaws.com/fargate-profile: my-fargate-profile

 

 

Fargate에서는 다음과 같은 내용을 요구합니다.

 

Fargate Pod 역할 : Fargate에게 역할을 부여합니다.

따라서 만약 해당 Pod 가 AWS 내의 어떤 서비스를 이용하게 될 경우 EC2에 역할을 부여하는 것 처럼 다양한 역할을 부여할 수 있다는 말이됩니다. 이는 IRSA를 활용한 기능으로 연결되어 매우 핵심적이고 중요한 기능이 됩니다.

 

당연한 이야기지만 반드시 Fargate Role을 만들때는 Fargate pod 서비스를 신뢰관계로 등록해야합니다.

 

가장 기본으로 들어가는 정책은 AmazonEKSFargatePodExcutionRolePolicy입니다.

해당 역할은 ecr에서 이미지를 받아올 경우를 대비한 정책임을 확인할 수 있습니다.

 

 

Subnet : Fargate가 속하는 서브넷 위치를 지정합니다.

Fargate를 특정 서브넷에 할당할 수 있습니다. 따라서 해당 프로파일로 생성되는 모든 Pod는 여기서 지정된 서브넷으로 들어갑니다.

참고로 해당 서브넷은 프라이빗 서브넷만 지정할 수 있음을 유의하기 바랍니다.

 

 

다음은 Selector에 대한 지정입니다.

먼저 label없이 네임스페이스만 지정할 경우 해당 네임스페이스에 생성되는 것은 모두 Fargate로 생성하겠다는 것입니다.

참고로 default 네임스페이스도 Fargate로 쓰고싶다면 반드시 지정해줘야합니다.

 

같은 프로파일에 지정하려면 네임스페이스 추가 버튼을 활용해서 늘릴 수 있습니다.

레이블은 최대 5개까지 추가됩니다.

 

자 Fargate를 생성하면 이렇게 등록됩니다.

참고로 Fargate 프로파일은 생성과 삭제가 매우 느리며, 한 번에 삭제가 불가능하고 하나씩 삭제해야 합니다.

따라서 여러개의 프로파일을 이용하고 계시다면 충분한 시간을 가지고 삭제하셔야합니다.

 

 

이제 Fargate 프로파일을 만들고 난뒤 EKS로 접근해 보겠습니다.

최초에 프로파일만 있다고 모두 Fargate로 나오는 것이 아니라 label로 처음에 언급한

eks.amazonaws.com/fargate-profile: my-fargate-profile 이런 라벨정보가 등록되어야 작동됩니다.

 

위의 그림은 라벨이 없기때문에 Fargate로 띄워지지 않았으나 아래 그림처럼 라벨이 존재하면서 Fargate로 등록됩니다.

 

로그도 살펴보면 Fargate-scheduler가 동작한 것을 확인할 수 있습니다.

 

node로 검색해보면 다음과 같이 보이는데, 위 2개는 fargate이고 아래 2개는 nodegroup입니다.

fargate에서도 version에 보면 쿠버네티스 버전으로 등록된것을 확인할 수 있습니다.