수십 년 동안 '라스트 마일'은 인터넷 인프라에서 가장 취약한 부분 중 하나였습니다. 오늘날 모바일 사업자는 모바일 애플리케이션을 위해 LAN과 같은 지연 시간으로 안정적이고 빠른 연결을 제공함으로써 이를 바꿀 준비가 되어 있습니다. 도입 AWS 파장 를 통해 개발자는 최신 5G 네트워크를 활용하고 애플리케이션 인프라를 이동통신사 데이터 센터에 직접 배포하여 고객에게 더 가까이 다가갈 수 있습니다.
파장 영역은 카우치베이스가 준비 과정에서 매우 흥미롭게 탐구한 새로운 기술입니다. AWS re:Invent 2021. 그 가능성과 마스터리스 아키텍처가 엣지 컴퓨팅을 더 쉽게 만드는 방법을 보여주기 위해, 라스베이거스의 Verizon 사용자들이 클래식과 엣지 컴퓨팅 간의 요청 지연 시간을 비교할 수 있는 데모 경매 애플리케이션을 선보였습니다. us-west-2 AWS 리전 및 라스베가스 파장 에지 영역. 이 블로그 게시물에서는 Couchbase 동기화 게이트웨이의 강력한 기능을 사용하여 엣지에서 데이터를 처리하는 방법을 검토합니다.
바스티온 서버 설정
파장 인스턴스에는 이동 통신사가 할당하고 이동 통신사의 네트워크와 VPC에서만 액세스할 수 있는 IP 주소가 있습니다. 따라서 통신사 네트워크 외부에서는 이러한 인스턴스에 연결할 수 없습니다.
따라서 웨이브렝스 인스턴스를 관리하려면 데브옵스 엔지니어가 운영자의 네트워크에 직접 연결하거나 다음과 같은 해결 방법을 사용해야 합니다. 바스티온 서버가장 간단한 경우에는 일반 가용성 영역에 배포된 AWS VPC의 인스턴스일 수 있습니다.
먼저 점프 서버에 액세스하는 데 사용할 AWS EC2 개인 키를 생성해 보겠습니다:
키 쌍을 생성하고 다운로드하여 안전한 곳에 보관하세요. 나중에 액세스할 수 없습니다.
이제 ssh 점프 호스트가 될 Amazon Linux 인스턴스를 배포할 수 있습니다. 이 인스턴스에 공인 IP 주소를 할당하고, 인바운드 및 아웃바운드 ssh 연결을 허용하도록 보안 그룹을 구성하고, 인스턴스를 시작할 때 키 쌍을 지정하는 것을 잊지 마세요:
컴퓨터에서 바스티온 노드에 액세스할 수 있는지 확인합니다:
- 아직 설치하지 않았다면 ssh-agent를 실행하여 시작하세요: eval $(ssh-agent -s)
- 다운로드한 키를 실행하여 추가합니다: ssh-add
- 인스턴스에 연결합니다: ssh
나중에 파장 영역에서 생성할 인스턴스에 로그인하려면 -J 인수를 추가합니다: ssh -J .
파장 영역 설정
이 예에서는 라스베이거스 버라이즌(USW2-WL1-LAS-WLZ1)를 에지 영역으로 설정합니다. 여기에 인스턴스를 배포하기 위해 VPC가 us-west-2 리전을 먼저 만들어야 합니다:
- 엣지 인스턴스를 인터넷과 통신사 네트워크에 연결하는 통신사 게이트웨이
- 인스턴스를 배포할 서브넷은 다음과 같습니다.
- 통신사 게이트웨이를 통해 서브넷을 오가는 인터넷 트래픽을 라우팅하는 라우팅 테이블
AWS를 사용하면 이 모든 작업을 한 번에 수행할 수 있습니다. 통신사 게이트웨이 생성 도구를 사용하세요. 또한 서브넷과 통신사 인프라의 인스턴스 간에 트래픽을 라우팅하는 라우팅 테이블을 생성하는 작업도 처리합니다:
카우치베이스 클러스터 설정
서브넷이 생성되면 향후 클러스터를 위한 EC2 인스턴스 생성을 진행할 수 있습니다. Couchbase를 배포하는 방법에는 여러 가지가 있는데, 그 중 두 가지를 소개합니다:
가장 쉬운 방법은 Kubernetes 클러스터를 생성하고 자율 운영자를 사용하여 Couchbase 클러스터를 배포 및 관리하는 것입니다. EKS 클러스터와 자동 확장 그룹은 서로 다른 지역에 2개의 서브넷이 필요하다는 점에 유의하세요. 여러 개의 Wavelength 가용 영역이 있지만, 이 모든 영역은 서로 다른 도시에 있습니다. 클러스터가 라스베가스에 위치하도록 보장하려면 클러스터를 수동으로 생성해야 합니다. 다음을 참조하세요. 설치 지침에 대한 Couchbase 자율 운영자 설명서.
다른 방법은 Couchbase를 EC2 인스턴스에 직접 설치하고 수동으로 구성하는 것입니다. 이것이 저희의 re:Invent 프레젠테이션을 참조하세요. Couchbase 설치에 대한 지침은 다음에서 얻을 수 있습니다. 문서.
Wavelength 인프라에서는 제한된 EC2 인스턴스 유형만 지원된다는 점에 유의하세요. 이 프레젠테이션에서는 t3.xlarge 를 카우치베이스 및 동기화 게이트웨이 노드로 사용합니다.
서버마다 다른 SSH 키를 사용하거나 적어도 클러스터마다 다른 SSH 키를 사용하는 것이 좋습니다. 바스티온 호스트를 사용하려면 생성한 모든 SSH 키를 실행하여 SSH 에이전트에 추가해야 합니다: ssh-add .
동기화 게이트웨이 설정
동기화 게이트웨이 설정 절차는 다음 문서에 광범위하게 설명되어 있습니다. 카우치베이스 문서 여기. TLS 암호화는 게이트웨이에서 기본적으로 지원됩니다. 이를 구성하려면 다음을 통해 인증서 및 개인 키의 경로를 제공하세요. SSLCert 그리고 SSLKey 구성 속성을 설정하면 게이트웨이 서비스에서 사용하는 포트가 SSL 포트로 변경됩니다.또는 프레젠테이션에서 했던 것처럼 NGINX와 같은 역방향 프록시를 사용하여 전송 계층 보안 암호화를 추가할 수도 있습니다. 다음은 동기화 게이트웨이 연결을 프록시하는 데 사용할 수 있는 NGINX 구성입니다:
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 |
서버 { 듣기 4984 ssl; 서버_이름 예제.com; SSL 인증서 /등/letsencrypt/라이브/예제.com/풀체인.pem; SSL_인증서_키 /등/letsencrypt/라이브/예제.com/privkey.pem; 클라이언트_최대_몸_크기 20m; 위치 / { 프록시_설정_헤더 호스트 $호스트; 프록시 설정_헤더 X-전달됨-호스트 $호스트; 프록시 설정_헤더 X-전달됨-Proto $scheme; 프록시 설정_헤더 X-실제-Ip $remote_addr; 프록시 설정_헤더 X-전달됨-For $프록시 추가_x_전송_용; 프록시_설정_헤더 업그레이드 $http_upgrade; 프록시_설정_헤더 연결 $연결 업그레이드; 프록시 패스 http://게이트웨이_노드:4984; proxy_http_버전 1.1; 프록시_패스_요청_헤더 on; 프록시 패스 헤더 수락; 프록시 패스 헤더 서버; 킵얼라이브_요청 1000; 킵얼라이브_시간 초과 360s; 프록시 읽기_시간 초과 360s; } } |
이 구성의 대부분은 웹 소켓 프록시에 대한 일반적인 솔루션이지만, 마지막 세 줄은 인터넷 연결의 안정성이 언제든지 저하될 수 있는 모바일 애플리케이션에 더 적합한 네트워크 타임아웃을 구성합니다.
또 다른 중요한 지침은 클라이언트_최대_바디_크기 는 모바일 디바이스가 단일 웹소켓 연결에서 전송할 수 있는 정보의 양에 대한 제한을 높입니다.
결론
Couchbase는 당연히 엣지 배포를 위해 선택되는 데이터베이스입니다. 기본적으로 모든 애플리케이션이 활용할 수 있는 일련의 서비스 중에서 선택할 수 있는 기회를 제공합니다:
- Couchbase 클러스터와 손쉽게 문서를 동기화할 수 있는 임베디드 데이터베이스인 Couchbase Lite
- 서로 다른 엣지 또는 클라우드 위치 간 동기화 게이트웨이 또는 XDCR 복제
- 널리 지원되는 멤캐시드 프로토콜을 기반으로 하는 강력한 인메모리 및 온디스크 키-값 스토리지
- 내장 캐싱 레이어
- 전체 텍스트 검색 기능
- 놀라운 N1QL 언어로 풍부한 문서 저장
- 반응형 프로그래밍 및 데이터 보강을 위한 이벤트 서비스
- 애플리케이션 성능에 영향을 주지 않고 데이터에서 인사이트를 추출할 수 있는 분석 서비스
이러한 기능은 웨이브렝스 엣지 영역의 초저지연과 결합하여 모든 모바일 애플리케이션을 위한 강력한 플랫폼을 제공하며, 이를 통해 구축할 수 있는 솔루션에 대한 기대가 큽니다.
리소스
후속 조치를 취하려면 이 블로그 게시물에 언급된 리소스에 대한 링크를 검토하세요: