[신기능] 네트워크 환경 생성을 간소화 한 AWS VPC Lattice

AWS VPC의 신기능인 Lattice의 미리 보기에 대해 작성한 글 입니다
2022.12.06

안녕하세요 클래스메소드의 수재입니다.
이번 리인벤트 기간 중 VPC의 새로운 기능으로 Lattice가 공개되었습니다.
아직 실제 환경에서는 사용할 수 없지만 어떤 기능인지는 공식 블로그 글로 공개되었습니다.
이번 글에서는 그 내용에 대해 알아보도록 하겠습니다.

VPC Lattice 란?

Simplify service-to-service connectivity, security, and monitoring
이 기능을 사용하면 서비스 간 통신을 연결, 보안 및 모니터링하기 위한 일관적인 방법이 제공됩니다. VPC Lattice를 사용하면 트래픽 관리, 네트워크 액세스, 모니터링을 위한 정책을 정의하여 모든 AWS 컴퓨팅 서비스(인스턴스, 컨테이너, 서버리스 함수)에서 간단하고 일관적으로 애플리케이션을 연결할 수 있습니다.

lattice(격자) 라는 뜻 그대로 VPC와 관련된 네트워크, 보안, 모니터링의 틀을 제공하는 서비스입니다.
예로 들면 네트워크에 대해 잘 모르는 개발자라도 네트워크 환경 구성을 쉽게 할 수 있습니다. 혹은 환경 구성 이외의 작업에 시간을 쓰고 싶은 경우에도 lattice를 이용하면 시간을 많이 절약할 수 있게 됩니다.
또한 IAM과 통합이 가능하기 때문에 기존의 IAM을 베이스로 한 유저 인증 등도 그대로 이용할 수 있습니다.

무엇을 제공하는가?

네트워크 환경을 구성하기 위한 일관된 방법이 제공됩니다.
필요한 네트워크의 구성 뿐만 아니라 블루/그린 및 카나리아 배포 요청과 로그 수집이나 경보 등의 모니터링도 가능합니다.
다음과 같은 방식으로 작동됩니다.

공식 문서에서 제공하고 있는 사용 사례는 다음과 같습니다.

  • 규모에 맞게 서비스 간 연결 간소화
    • 네트워크 복잡성을 증가시키지 않고 VPC와 계정에서 수천 개의 서비스를 연결합니다.
  • 애플리케이션 계층 보안 강화
    • 중앙 집중식 액세스 제어, 인증 및 상황별 권한 부여를 통해 서비스 간 보안을 개선하고 제로 트러스트 아키텍처를 지원합니다.
  • 고급 트래픽 관리 구현
    • 블루/그린 및 카나리아 배포를 위한 요청 수준 라우팅 및 가중 대상과 같은 세분화된 트래픽 제어를 적용합니다.
  • 서비스 간 상호 작용에 대한 가시성 확보
    • 요청 유형, 트래픽 볼륨, 오류, 응답 시간 등에 대한 서비스 간 통신을 모니터링하고 문제를 해결합니다.

사용 방법

아직 정식 공개가 되지 않았기 때문에 공식 블로그에 공개된 사용 방법을 간략히 요약하자면 다음과 같습니다.

우선 Lattice를 사용하면 서비스 네트워크라는 논리적 애플리케이션 계층 네트워크가 생성됩니다.
이 서비스 네트워크에 여러 서비스를 연결할 수 있습니다.
서비스는 특정 작업이나 기능을 제공하는 소프트웨어의 독립적으로 배포 가능한 단위입니다. VPC Lattice에서 서비스는 VPC나 계정 내에서 실행할 수 있는 논리적 구성 요소이며, 결합된 컴퓨팅 유형(가상 머신, 컨테이너, 서버리스 함수)에서 실행할 수 있습니다. 서비스 구성은 다음과 같습니다.

  • 서비스에서 트래픽이 통과할 것으로 예측하는 포트와 프로토콜을 정의하는 리스너 1~2개
  • 리스너에는 우선 순위(priority), 적용을 위한 조건(condition), 대상 그룹으로 포트포워딩하는 규칙(rule)이 있습니다
    • 그리고 조건에 충족되지 않거나 기본이 되는 기본 규칙(default rule)이 있습니다
  • 라우팅하려는 특정 워크로드를 실행 중인 컴퓨팅 리소스의 모음인 대상 그룹(target group)

즉, 로드밸런서를 작성할 때와 같다고 이해하면 편할 것 같습니다.
서비스 네트워크 안에서는 서로 다른 서비스를 검색할 수 있습니다.

서비스 네트워크의 VPC 내에서 HTTP/HTTPS 및 gRPC 프로토콜을 통해 애플리케이션 간 통신을 활성화 할 수 있습니다.
VPC가 서비스 네트워크에 활성화되면 VPC의 클라이언트가 DNS를 통해 네트워크에서 서비스를 자동 검색하고 모든 애플리케이션 간 트래픽을 VPC Lattice를 통해 보냅니다.

서비스 액세스 제어를 구성하는 데 액세스 정책을 사용할 수 있습니다. 액세스 정책은 서비스 네트워크 및 개별 서비스와 연결할 수 있는 IAM 리소스 정책입니다.
액세스 정책에서는 ‘PARC'(주체(principal), 작업(action), 리소스(resource), 조건(condition)) 모델을 사용하여 서비스에 컨텍스트별 액세스 제어를 적용할 수 있습니다.

흐름

간략하게 작성 흐름을 정리하자면 다음과 같습니다.

  1. 대상 그룹 등록
    • 인스턴스 혹은 람다 등을 대상 그룹에 등록합니다
  2. VPC Lattice 서비스 만들기
    • 인증 유형, 모니터링, 리스너 등을 설정합니다
  3. 서비스 네트워크 만들기
    • 서비스 네트워크를 만들고 작성한 서비스를 등록합니다. 마찬가지로 인증 방법이나 모니터링 여부 등을 설정할 수 있습니다

마무리

네트워크를 잘 모르더라도 전체적인 환경을 구성할 수 있도록 돕는다는 점이 인프라를 잘 몰라도 배포할 수 있게 해주는 elastic beanstalk 와 비슷하다고 느꼈습니다.
현재 Lattice는 프리뷰 상태이며 사용해보고 싶다면 다음 사이트에서 응모가 필요합니다

이 글은 공식 블로그의 내용을 참고로 간략하게 정리한 것이니 자세한 내용은 공식 블로그FAQ를 참고해주세요.

긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 언제나 환영합니다. must01940 지메일로 연락 주시면 감사합니다!


본 블로그 게시글을 보시고 문의 사항이 있으신 분들은
클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !