문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

AWS App Mesh | |
개발사 | |
분류 | 서비스 메시 |
주요 용도 | 마이크로서비스 애플리케이션의 통신 모니터링 및 제어 |
최초 등장 | 2018년 11월 |
플랫폼 | |
상세 정보 | |
정의 | 애플리케이션 수준의 네트워킹을 제공하여 서비스 간 통신을 쉽게 모니터링하고 제어할 수 있게 해주는 서비스 메시 |
기능 | 서비스 검색 트래픽 라우팅 로드 밸런싱 모니터링 보안 통신 |
지원 런타임 환경 | Amazon Elastic Container Service |
데이터 플레인 | Envoy 프록시 |
관련 서비스 | |

AWS App Mesh는 Amazon Web Services가 2018년 11월에 출시한 완전관리형 서비스 메시이다. 이 서비스는 클라우드 컴퓨팅 환경에서 실행되는 마이크로서비스 애플리케이션의 통신을 모니터링하고 제어하는 데 주로 사용된다.
서비스 메시는 애플리케이션의 개별 구성 요소인 마이크로서비스 간의 네트워크 통신을 관리하는 전용 인프라 계층을 제공한다. AWS App Mesh는 이 계층을 구현하여, 애플리케이션 코드를 수정하지 않고도 서비스 간 트래픽의 라우팅, 모니터링, 보안 정책을 중앙에서 쉽게 관리할 수 있게 한다.
이 서비스는 Amazon Elastic Container Service, Amazon Elastic Kubernetes Service, Amazon EC2 및 AWS Fargate와 같은 다양한 컴퓨팅 플랫폼에서 실행되는 서비스와 통합되어 작동한다. 이를 통해 개발자와 운영팀은 복잡한 분산 애플리케이션의 가시성을 높이고, 신뢰성을 개선하며, 통신 흐름을 세밀하게 제어할 수 있다.

AWS App Mesh는 마이크로서비스 애플리케이션 내에서 서비스 간 통신을 관리하기 위한 일관된 가시성과 네트워크 트래픽 제어 기능을 제공한다. 이 서비스는 애플리케이션 코드를 수정하지 않고도 서비스 메시를 구현할 수 있게 하여, 운영 복잡성을 줄이고 개발자가 비즈니스 로직에 집중할 수 있도록 지원한다.
주요 기능으로는 세밀한 트래픽 라우팅이 있다. 이를 통해 사용자는 가중치 기반 라우팅, A/B 테스트, 카나리아 배포, 지연 시간 기반 라우팅과 같은 고급 트래픽 제어 정책을 구성할 수 있다. 이를 통해 새로운 버전의 서비스를 안전하게 롤아웃하거나 특정 조건에 따라 트래픽을 분기할 수 있다.
또한, 서비스 간 모든 통신에 대한 종합적인 가시성을 제공한다. 애플리케이션 성능 관리 도구인 AWS X-Ray 및 Amazon CloudWatch와 통합되어 요청 지연 시간, 오류율, 요청 볼륨과 같은 지표를 수집하고 시각화한다. 이를 통해 운영 팀은 애플리케이션 상태를 실시간으로 모니터링하고 문제를 신속하게 진단할 수 있다.
마지막으로, 내결함성을 강화하는 기능을 포함한다. 회로 차단기, 재시도 정책, 시간 초과 설정을 구성하여 서비스 장애가 연쇄적으로 전파되는 것을 방지하고 애플리케이션의 전반적인 복원력을 높일 수 있다. 이러한 통신 제어는 컨테이너 오케스트레이션 서비스인 Amazon ECS, Amazon EKS, AWS Fargate 및 Amazon EC2에서 실행되는 서비스에 일관되게 적용된다.

AWS App Mesh의 아키텍처는 마이크로서비스 간의 모든 네트워크 트래픽을 투명하게 관리하기 위해 설계되었다. 핵심 구성 요소는 가상 서비스, 가상 노드, 가상 라우터, 가상 게이트웨이 및 라우팅 규칙이다. 가상 서비스는 실제 서비스를 대표하는 논리적 엔티티로, 가상 노드나 가상 게이트웨이와 연결된다. 가상 노드는 Amazon Elastic Container Service, Amazon Elastic Kubernetes Service, Amazon EC2와 같은 실제 컴퓨팅 리소스에 대한 논리적 포인터 역할을 한다.
가상 라우터는 가상 서비스에 대한 트래픽을 처리하며, 경로 기반 라우팅을 위해 하나 이상의 라우팅 규칙을 정의한다. 라우팅 규칙은 트래픽을 적절한 가상 노드로 전달하는 방법을 결정하며, 가중치 기반 라우팅, 헤더 기반 라우팅, 서비스 메시 내 장애 조치를 위한 타임아웃 설정 등을 구성할 수 있다. 가상 게이트웨이는 메시 외부의 클라이언트로부터 들어오는 트래픽을 메시 내부의 가상 서비스로 라우팅하는 진입점을 제공한다.
이 모든 구성 요소는 Envoy 프록시를 기반으로 하는 사이드카 프록시인 App Mesh Envoy 관리형 프록시를 통해 구현된다. 각 마이크로서비스 인스턴스와 함께 배포된 이 프록시는 모든 인바운드 및 아웃바운드 트래픽을 가로채어, 중앙에서 정의된 라우팅 및 관찰 가능성 정책을 적용한다. 관리형 프록시는 AWS가 자동으로 프로비저닝하고 업데이트하므로, 사용자는 인프라 관리보다 애플리케이션 로직과 트래픽 제어에 집중할 수 있다.

AWS App Mesh는 애플리케이션의 네트워크 트래픽을 가로채고 제어하기 위해 사이드카 프록시 패턴을 활용한다. 애플리케이션의 각 마이크로서비스 인스턴스(예: Amazon ECS 태스크 또는 Amazon EKS 파드)와 함께 Envoy 프록시가 사이드카 컨테이너로 배포된다. 이 Envoy 프록시는 서비스 간의 모든 인바운드 및 아웃바운드 네트워크 트래픽을 처리하는 역할을 맡는다.
App Mesh는 사용자가 정의한 라우팅 규칙, 트래픽 제어 정책, 가상 서비스 및 가상 노드와 같은 추상화된 구성 요소를 관리한다. 이 구성 정보는 App Mesh의 제어 평면에 저장되며, 각 Envoy 프록시는 제어 평면으로부터 자신이 속한 서비스에 대한 최신 구성과 라우팅 테이블을 동적으로 수신한다. 이를 통해 프록시는 트래픽을 적절한 대상으로 라우팅하고, 로드 밸런싱을 수행하며, 회로 차단기와 같은 복원력 패턴을 적용할 수 있다.
이 아키텍처 덕분에 애플리케이션 코드는 네트워크 수준의 복잡성(예: 서비스 디스커버리, 헬스 체크, 암호화)에서 분리된다. 운영자는 App Mesh 콘솔, AWS CLI 또는 AWS CloudFormation을 통해 중앙에서 트래픽 흐름을 관찰하고, 카나리아 배포를 위한 트래픽 분할을 구성하거나, 지연 시간 기반의 장애 조치 정책을 설정하는 등의 작업을 수행할 수 있다. 모든 통신 메트릭과 로그는 Amazon CloudWatch 및 AWS X-Ray와 같은 모니터링 서비스로 자동 전송되어 가시성을 제공한다.

AWS App Mesh는 복잡한 마이크로서비스 애플리케이션을 운영하는 팀에게 명확한 가시성과 강력한 제어 기능을 제공한다. 주요 사용 사례로는 서비스 간 통신의 세밀한 모니터링, 트래픽 라우팅 및 제어, 그리고 보안 통신의 구현이 있다. 개발팀은 이를 통해 로드 밸런싱, 서킷 브레이커, 카나리 배포와 같은 기능을 애플리케이션 코드를 수정하지 않고도 구성할 수 있다.
이 서비스의 핵심 이점은 운영의 복잡성을 애플리케이션 레이어에서 인프라 레이어로 옮겨 개발자가 비즈니스 로직에 집중할 수 있게 한다는 점이다. 모든 서비스 간 통신이 가상 라우터와 가상 노드를 통해 이루어지므로, 트래픽 흐름과 상태를 중앙에서 일관되게 관찰하고 관리할 수 있다. 이는 문제 발생 시 원인을 신속하게 진단하고, 새로운 버전의 서비스를 안전하게 롤아웃하는 데 큰 도움이 된다.
또한, App Mesh는 AWS Fargate, Amazon ECS, Amazon EKS, AWS Lambda 및 Amazon EC2와 같은 다양한 컴퓨팅 서비스에서 실행되는 서비스들을 통합하여 관리할 수 있다. 이는 하이브리드 또는 다중 컴퓨팅 환경을 사용하는 조직이 일관된 정책과 모니터링 체계를 구축하는 데 유용하다. 모든 통신에 TLS 암호화를 적용하고 네트워크 수준의 보안 정책을 중앙 집중식으로 관리할 수 있어 보안성도 강화된다.
결과적으로, App Mesh를 도입하면 마이크로서비스 애플리케이션의 내결함성을 높이고, 배포를 더 안전하게 만들며, 종합적인 모니터링을 통해 시스템의 전반적인 건강 상태를 파악하는 것이 가능해진다. 이는 더 빠른 출시 주기와 안정적인 서비스 운영으로 이어진다.

AWS App Mesh의 구성 및 설정은 가상 서비스, 가상 노드, 가상 라우터와 같은 핵심 구성 요소를 정의하는 것으로 시작한다. 사용자는 먼저 AWS Management Console, AWS CLI, 또는 Terraform과 같은 IaC 도구를 통해 서비스 메시 자체를 생성한다. 이후, 애플리케이션을 구성하는 각 마이크로서비스에 해당하는 가상 노드를 정의하고, 이 노드들 간의 트래픽 흐름 규칙을 가상 라우터와 라우팅 정책을 통해 설정한다.
실제 애플리케이션 파드나 태스크가 Amazon EKS 또는 Amazon ECS에서 실행될 때, Envoy 프록시 사이드카가 함께 배포된다. App Mesh는 이 사이드카 프록시에 구성 정보를 자동으로 주입하여, 애플리케이션 코드를 변경하지 않고도 서비스 간 통신이 메시를 통해 이루어지도록 한다. 설정 과정에서는 트래픽 라우팅(예: 카나리 배포), 회로 차단기, 요청 재시도, 지연 시간 기반 로드 밸런싱 등의 정책을 세부적으로 구성할 수 있다.
구성 관리는 주로 YAML 또는 JSON 형식의 선언적 매니페스트 파일을 통해 이루어지며, 이를 통해 인프라 상태를 코드로 관리하고 버전 관리할 수 있다. 설정 변경은 새로운 라우팅 구성을 생성하고 점진적으로 트래픽을 전환하는 방식으로 수행되어 서비스 중단 없이 안전하게 배포할 수 있다.

AWS App Mesh는 Amazon Web Services의 광범위한 클라우드 컴퓨팅 생태계 내에서 다른 여러 서비스와 긴밀하게 통합되어 작동한다. 특히 마이크로서비스 기반 애플리케이션을 구축하고 실행하는 데 필수적인 서비스들과의 연계가 두드러진다.
가장 핵심적인 연동 서비스는 Amazon Elastic Container Service와 Amazon Elastic Kubernetes Service이다. App Mesh는 이들 컨테이너 오케스트레이션 서비스에서 실행되는 마이크로서비스의 트래픽을 제어하고 가시성을 확보하는 데 사용된다. 또한 AWS Fargate와 같은 서버리스 컴퓨팅 플랫폼에서 실행되는 작업과도 원활하게 통합된다. 애플리케이션의 로드 밸런싱을 위해 Application Load Balancer나 Network Load Balancer와 함께 사용될 수 있으며, 모니터링 데이터는 Amazon CloudWatch와 AWS X-Ray로 전송되어 종합적인 관찰 가능성을 제공한다.
보안 측면에서는 AWS Identity and Access Management를 통해 접근 제어를 관리하며, AWS Certificate Manager를 활용하여 서비스 간 통신에 필요한 TLS 인증서를 발급하고 관리할 수 있다. 이러한 깊은 통합을 통해 개발자는 App Mesh를 AWS 인프라의 자연스러운 확장으로 활용하여, 네트워크 구성의 복잡성을 줄이고 애플리케이션 개발에 더 집중할 수 있는 환경을 조성한다.

AWS App Mesh는 2018년 11월에 Amazon Web Services가 공개한 완전관리형 서비스 메시이다. 이 서비스는 클라우드 컴퓨팅 환경에서 실행되는 마이크로서비스 애플리케이션 간의 통신을 표준화하고, 가시성을 확보하며, 제어하는 데 중점을 둔다. 서비스 메시는 컨테이너 기반 애플리케이션의 복잡성을 관리하는 핵심 인프라로 자리 잡았으며, App Mesh는 AWS의 관리형 서비스 생태계와의 긴밀한 통합을 주요 특징으로 내세운다.
App Mesh의 등장은 Istio나 Linkerd와 같은 오픈소스 서비스 메시 프로젝트들이 주목받기 시작한 시기와 맞물려 있다. AWS는 자체적으로 Envoy 프록시를 기반으로 한 관리형 솔루션을 제공함으로써, 사용자가 인프라 관리 부담 없이 서비스 메시의 이점을 활용할 수 있도록 했다. 이는 AWS의 Fargate, Elastic Kubernetes Service, Elastic Container Service와 같은 컨테이너 오케스트레이션 서비스와 자연스럽게 연동되도록 설계되었다.
서비스 메시 도입의 주요 동인은 마이크로서비스 아키텍처에서 발생하는 통신의 복잡성 해결이다. App Mesh는 서비스 디스커버리, 로드 밸런싱, 장애 복구, 모니터링 지표 수집, A/B 테스트를 위한 트래픽 라우팅과 같은 기능을 애플리케이션 코드 외부에서 제공한다. 이를 통해 개발팀은 비즈니스 로직 개발에 더 집중할 수 있으며, 운영팀은 표준화된 방식으로 서비스 간 통신을 관리할 수 있다.