본문 바로가기

DevOps/[AWS]

[AWS EKS] Application LoadBalancer(Ingress) IP주소 고정하기(ALB, NLB 사용)

반응형

 

INTRO


 

EKS 상에서 Ingress 를 생성하면 Loadbalancer controller가 AWS EC2의 Loadbalancer를 자동으로 생성한다.(ALB)

해당 Application Loadbalancer 의 IP를 고정하는 방법에 대해 알아본다.

 

 


 

1. 개요

- EKS 환경에서 Ingress를 생성할 때, 아래와 같은 특정 어노테이션을 사용하여 Loadbalancer Controller 를 동작하게 하고,

Loadbalancer Controller는 AWS의 Application Loadbalancer(ALB)를 자동으로 생성하여 클러스터 내부 오브젝트들을 외부로 노출한다.

  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip

 

- 이렇게 생성된 ALB는 고정된 IP주소를 가지지 않는다고 한다.

- 아직 바뀌는 경우는 경험하지 못했으나, 실제 운영 환경에서 바뀔 경우 영향도가 매우 크기때문에 사전에 고정할 필요가 있다.

- 2022년 현재 기준으로 구글링 결과, 기존에는 lambda와 NLB를 생성하여 주기적으로 IP 변경을 체크하고 NLB의 타겟 그룹을 업데이트 하는 방법이 있었으나,

https://nyyang.tistory.com/69

 

[AWS] NLB, ALB, Lambda를 통한 고정 IP 사용 방법

* 주의 : 추가 기능이 생성되었으며, 본 글의 방법은 Legacy 방법임. https://aws.amazon.com/ko/about-aws/whats-new/2021/09/application-load-balancer-aws-privatelink-static-ip-addresses-network-load-balancer/ 1. 개요 ALB의 IP 주소는

nyyang.tistory.com

 

- lambda를 생성하지 않고 해결할 수 있는 방법이 2021년 9월 경 부터 지원된다고 한다.

https://aws.amazon.com/ko/about-aws/whats-new/2021/09/application-load-balancer-aws-privatelink-static-ip-addresses-network-load-balancer/

 

Application Load Balancer는 이제 네트워크 로드 밸런서와 직접 통합하여 AWS PrivateLink 및 고정 IP 주소를

Elastic Load Balancing은 이제 Network Load Balancer(NLB)에서 Application Load Balancer(ALB)로의 직접 트래픽 전달을 지원합니다. 이 기능을 통해 이제 AWS PrivateLink를 사용하고 ALB 기반 애플리케이션에 대해 고정 IP

aws.amazon.com

- 본 포스팅은 최신 기준으로 IP를 고정하는 방법에 대해 설명한다.

 

2. (사전 준비) ingress 생성, loadbalancer controller 설치, ALB 생성, Elastic IP 생성(2개)

- 해당 사항에 대해서는 지난 포스팅에서 다루었으므로, 아래 포스팅을 참고한다.

https://rangsub.tistory.com/151

 

[AWS EKS] AWS EKS 구축하기 -3

🚦시리즈로 구성됩니다. 2022.09.27 - [DevOps/[AWS]] - [AWS EKS] AWS EKS 구축하기 -1 2022.09.27 - [DevOps/[AWS]] - [AWS EKS] AWS EKS 구축하기 -2 INTRO 2편에서 노드 그룹을 생성하고 노드 2개가 활성화 된 것을 확인할

rangsub.tistory.com

 

- Elastic IP(탄력적 IP)는 EC2 인스턴스들의 고정 IP를 만들 때 주로 사용한다.

- 추가하는 방법은 EC2 -> (네트워크 및 보안) 탄력적IP -> 탄력적 IP 주소 할당 으로 간편하게 생성 가능하다.

3. Target Group 생성

- 2번까지 진행했다면, ALB가 생성되어있을것이다.

- 타겟 그룹에 가보면 생성된 ALB 를 포함하고 있는 HTTP 프로토콜 타입의 타겟 그룹이 자동으로 생성되어있을것이다.

 

- 해당 타겟 그룹 말고, TCP 프로토콜 타입의 타겟 그룹 하나를 새로 생성한다.

- Create target group -> Application Load Balancer 선택 -> Target Group Name 입력 -> EKS Cluster의 VPC선택 후 Next

- 타겟 그룹으로 등록하고자 하는 로드밸런서를 선택 후 타겟 그룹을 생성한다.

4. Network Loadbalancer 생성

- 다시 로드밸런서 화면으로 진입하여, 로드 밸런서를 생성한다.

- 생성 시에는 NLB를 선택한다.

 

- Load Balancer Name 입력 -> Scheme, IP address Type은 본인의 설정에 맞게 선택한다.

- Network Mapping 에서는 클러스터의 VPC를 선택한다.

- 가용 영역은 AWS EKS 생성 튜토리얼대로 진행했다면, 2개가 있을 것이다.

- 2개의 AZ 에 대하여 Public Subnet을 선택 -> 사전 생성해놓은 탄력적 IP 2개를 할당한다.

 

- 이후 아까 생성한 Target Group을 원하는 포트로 등록한다.

- NLB를 생성하고 프로비저닝 되기를 기다린다.

- 활성 상태가 되면, 해당 NLB의 설명 탭에서 할당 된 IP를 확인할 수 있다.

 

 

 

마무리

ALB에 고정 IP를 할당하는 방법에 대해 포스팅했다.

꼭 EKS 환경이 아니더라도, ALB를 사용하는 환경에서는 범용적으로 적용 가능해 보이므로 알아두면 좋을 듯 하다.

 

참고 : 

https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/application-load-balancer-target.html

 

대상으로의 Application Load Balancer - Elastic Load Balancing

Application Load Balancer를 최대 2개의 Network Load Balancer의 대상으로 연결할 수 있습니다. 이렇게 하려면 Application Load Balancer가 별도의 대상 그룹에 있고 두 개의 서로 다른 Network Load Balancer에 할당되어

docs.aws.amazon.com

https://aws.amazon.com/ko/premiumsupport/knowledge-center/alb-static-ip/

 

고정 IP 주소에 대해 Network Load Balancer 뒤에 Application Load Balancer 등록

Application Load Balancer에 고정 IP 주소가 필요합니다. Network Load Balancer 뒤에 Application Load Balancer를 등록하려면 어떻게 해야 합니까? 최종 업데이트 날짜: 2022년 9월 1일 Application Load Balancer에 고정 IP 주

aws.amazon.com

 

 

 

 

 

 

 

 

 

-퍼가실 때는 출처를 꼭 같이 적어서 올려주세요!

 

반응형

'DevOps > [AWS]' 카테고리의 다른 글

[AWS EKS] AWS EKS 구축하기 -3  (0) 2022.09.29
[AWS EKS] AWS EKS 구축하기 -2  (0) 2022.09.27
[AWS EKS] AWS EKS 구축하기 -1  (0) 2022.09.27
[AWS] Linux 환경에서 AWS CLI 설치  (0) 2022.09.26
[AWS] EC2 인스턴스 생성해보기  (0) 2021.12.16