블로그의 후속 조치 카우치베이스 AMI 설치 (Amazon 머신 이미지)를 AWS에 연결하는 방법을 살펴보겠습니다. 카우치베이스 동기화 게이트웨이 를 작동 중인 모바일 애플리케이션에서 Amazon EC2에서 실행되는 Couchbase Server에 연결합니다.

[1] 카우치베이스 웹 콘솔

CouchBase Server 인스턴스와 데이터 버킷을 보려면 다음에서 CouchBase 웹 콘솔에 로그인합니다. 이전 블로그의 4단계. 로그인하고 '서버 노드' 탭을 클릭하면 Couchbase 서버 인스턴스가 실행 중인 것을 볼 수 있습니다. 이것은 AWS 마켓플레이스에서 Couchbase AMI를 출시할 때 실행된 것입니다.

failoverwarning

또한 AMI 설치에서 미리 구성된 버킷이 있는 데이터 버킷 탭이 표시됩니다. 이 블로그에서는 Couchbase 동기화 게이트웨이와 Couchbase 서버를 함께 연결할 예정이므로 가장 먼저 해야 할 일은 데이터 버킷 이름 중 하나를 수정하는 것입니다.

 databuckets1

버킷의 이름을 수정하려면 먼저 버킷 이름 옆의 화살표를 클릭하여 아래와 같이 버킷의 정보를 드롭다운합니다. 그런 다음 '수정' 버튼을 클릭하여 설정 메뉴로 이동합니다.

databuckets2

다음으로 '버킷 구성' 메뉴에서 버킷 이름 필드 값의 이름을 모바일 애플리케이션이 가리킬 대상이 될 'todolite'로 변경합니다. 다른 모든 항목은 그대로 두고 버킷 이름을 수정한 다음 아래와 같이 오른쪽 하단의 '저장'을 클릭합니다.

configurebuckets

이제 데이터 버킷 탭에 두 개의 데이터 버킷이 표시되어야 하며, 그 중 하나가 애플리케이션에서 다음에 사용할 'todolite' 버킷입니다.

[2] Couchbase AWS 인스턴스에 연결하기

다음으로 AWS 콘솔에서 '공인 IP'를 가져와야 합니다. 다음을 참조할 수 있습니다. 이전 블로그의 4단계 를 다시 입력하여 공인 IP를 얻을 수 있는 AWS 웹 콘솔로 이동합니다. 실행 중인 Couchbase 인스턴스를 찾으면 공인 IP 주소를 복사합니다.

launchinstance

터미널 애플리케이션을 열고 이전에 다운로드한 개인 키 쌍 파일을 저장한 폴더를 찾습니다. 이 파일은 .pem 확장자 파일이며 AWS의 Couchbase 인스턴스에 연결하려면 해당 폴더에 있어야 합니다.

macbookpro

SSH가 작동하려면 키를 공개적으로 볼 수 없어야 하며, 필요한 경우 실행할 명령이 있어야 합니다:

macbookpro2

이전 예제에서 .pem 파일의 이름은 'couchbase_aws'였으므로 실행할 명령은 'chmod 400 couchbase_aws.pem'입니다.

다음으로 Amazon Linux AMI에 SSH로 로그인하고 개인 키 폴더의 위치에서 이 작업을 수행합니다. 실행할 명령은 다음과 같습니다:

여기서 "name_of_key.pem"과 "public_ip"는 각각 Amazon 웹 콘솔에서 이름을 지정하고 가지고 있는 사용자 자신의 것입니다. 터미널 콘솔 화면은 아래와 같습니다.

macbookpro3

[3] 동기화 게이트웨이 구성 파일 수정

Couchbase 동기화 게이트웨이와 Couchbase 서버를 연결하기 전 마지막 단계는 Couchbase 동기화 게이트웨이 구성 파일을 수정하는 것입니다. 우리가 필요로 하는 config.json 콘텐츠는 GitHub ToDoLite 리포지토리 리포지토리의 콘텐츠를 복사하여 AWS 인스턴스의 config.json 파일로 가져와야 합니다.

 macbookpro4

'config.json'이라는 이름의 구성 파일을 열고 다음과 같은 내용을 붙여넣습니다. 'sync-gateway-config.json' 파일 에 있습니다. 아래는 터미널 앱에서 명령을 실행한 후 config.json의 내용을 보여줍니다.

macbookpro5

위에 표시된 이 config.json 파일은 GitHub 리포지토리에 있는 것과 약간의 수정과 차이가 있음을 알 수 있습니다. 'server' 값은 이제 단순하고 제한적인 'walrus'가 아닌 'http://localhost:8091'입니다, 인메모리 데이터베이스 를 사용했습니다. 개발 중 Walrus 사용에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 모바일 포털. Walrus는 단위 테스트에 사용할 수 있지만 여기서는 동기화 게이트웨이가 포트에 위치한 클라우드의 로컬 AWS 인스턴스에 있는 Couchbase 서버를 대상으로 하도록 하겠습니다: '8091'. 서버 값을 다음과 같이 수정합니다:

또한 '데이터 베이스' 값에 'todolite'가 있는 것을 볼 수 있는데, 이는 이 블로그의 1단계에서 Couchbase 웹 콘솔에서 생성하거나 수정한 데이터 버킷이라는 것을 알 수 있습니다. 이제 이 동기화 게이트웨이는 포트 '8091'의 AWS Couchbase Server 인스턴스에 있는 'todolite'라는 특정 데이터 버킷을 대상으로 할 준비가 되었습니다. 키보드에서 'control+x'를 함께 실행하여 'nano' 프로그램을 종료하고 변경 사항을 config.json 파일에 저장합니다.

[4] 카우치베이스 모바일 애플리케이션 실행하기

이제 애플리케이션을 위한 동기화 게이트웨이 구성 파일인 config.json이 준비되었으므로 다음 단계는 모바일 애플리케이션이 타겟팅하려는 엔드포인트를 가리키도록 하는 것입니다.  ToDoLite 카우치베이스 모바일 샘플 애플리케이션 다운로드 에서 찾을 수 있으며, 이 블로그에서는 Android 버전을 참조하겠습니다. iOS ToDoLite 버전도 있으며, 애플리케이션을 Couchbase 동기화 게이트웨이 및 Couchbase Server에 연결하는 단계는 비슷합니다. 모바일 포털을 참조할 수 있습니다. 안드로이드에서 ToDoLite를 빌드하는 방법에 대한 가이드. 기기 또는 에뮬레이터에서 모바일 애플리케이션이 실행되고 있다고 가정하고 다음 단계는 동기화 URL을 수정하는 것입니다.

macbookpro6

동기화 URL을 수정하려면 'BuildConfig.java' 파일을 찾아야 하며, Android 스튜디오에서 바로 항목의 돋보기 아이콘을 클릭하고 'BuildConfig.java'를 입력한 다음 Enter 키를 누르고 파일을 열면 됩니다. 위와 같이 SYNC_URL_HTTP 변수가 'http://demo.couchbasemobile.com:4984/todolite/' 끝점을 가리키는 것을 볼 수 있을 것입니다. 이것은 원래 설정한 데모 상자이지만 이제 AWS에 자체 Couchbase 동기화 게이트웨이 및 Couchbase 서버 인스턴스가 있으므로 그에 따라 수정하여 설정한 인스턴스를 가리키도록 하겠습니다. 이렇게 하려면 먼저 대상 인스턴스가 될 Amazon 웹 콘솔에서 '공용 DNS'를 찾습니다. 다음을 수행할 수 있습니다. AMI 블로그의 4단계 참조 에서 공개 DNS를 얻는 방법과 위치에 대해 설명합니다. 동기화 게이트웨이는 포트 4984에서 동기화 API 명령을 수신하며, 대상 데이터 버킷의 이름은 'todolite'이므로 수정된 동기화 URL의 구조는 다음과 같습니다:

여기서 '공용 DNS'는 AWS 콘솔에서 가져온 사용자 고유의 DNS입니다. 이제 모바일 애플리케이션을 빌드하고 실행하기 전에 EC2 인스턴스 내에서 동기화 게이트웨이를 시작해야 합니다.

[5] 동기화 게이트웨이 시작

터미널 애플리케이션 내에서 이 블로그의 2단계 마지막에 설명한 대로 EC2 인스턴스에 로그인하고 '.bash_profile' 파일의 경로를 추가합니다. 사용자 디렉터리 '/home/ec2-user'에 있는 다음 다음과 같이 'nano .bash_profile'을 실행해야 합니다.

macbookpro7

다음으로 동기화 게이트웨이 위치의 전체 경로를 입력하지 않고도 인스턴스 내 어디에서나 Couchbase 동기화 게이트웨이 프로그램에 액세스할 수 있도록 '.bash_profile' 파일에 추가 줄을 추가합니다. 동기화 게이트웨이의 위치는 Couchbase AMI가 생성될 때 '/opt/couchbase-sync-gateway/bin'에 위치하며, 추가할 줄은 다음과 같습니다:

나노 프로그램 내에서 아래 이미지를 참조하여 PATH 값이 추가되는 위치를 확인할 수 있습니다.

exportpath

키보드에서 'control+x'를 실행하여 나노를 종료하고 변경한 내용을 '.bash_profile' 파일에 저장합니다. 'exit'를 입력하고 키보드에서 'enter'를 눌러 인스턴스를 종료한 다음 다시 SSH로 로그인하여 프로필에 경로를 확보합니다. 동기화 게이트웨이가 위치한 디렉터리에 액세스하려면 사용자 디렉터리 '/home/ec2-user' 내에서 아래를 따라가면 됩니다. 녹색 화살표는 실제 실행할 동기화 게이트웨이 프로그램을 가리킵니다.

syncgateway

마지막으로 EC2 인스턴스 내에서 동기화 게이트웨이를 실행할 준비가 되었으며, Couchbase 동기화 게이트웨이를 실행할 구성을 지정해야 하므로 'config.json' 파일이 있는 디렉토리로 다시 돌아갑니다. 아래 명령에 따라 '/home/ec2-user' 디렉토리로 돌아가서 실행합니다:

아래는 마지막 명령으로 표시됩니다.

 lastcommand

'config.json' 파일에 대해 동기화 게이트웨이를 실행하면 이제 모바일 애플리케이션이 적절한 포트에서 데이터를 복제할 수 있도록 Couchbase 서버와 Couchbase 동기화 게이트웨이가 모두 준비된 아래 구성 정보를 확인할 수 있습니다.

image1

[6] 카우치베이스 동기화 게이트웨이 및 서버에 데이터 복제

마지막으로 Android ToDoLite 애플리케이션을 실행하고 클라우드의 Couchbase 동기화 게이트웨이 및 Couchbase 서버와 데이터를 동기화할 수 있습니다. Couchbase Mobile 스택은 ToDoLite 프로젝트 내에서 소비되는 임베디드 JSON 데이터베이스인 Couchbase Lite로 구성되어 있으며, 이제 애플리케이션이 타겟팅하도록 동기화 게이트웨이와 서버를 설정했습니다. 이 작업은 안드로이드 스튜디오 내에서 'BuildConfig.java' 파일 내에서 'SYNC_URL_HTTP' 변수를 수정하여 수행했습니다.

couchbaselite

Android 스튜디오 내에서 애플리케이션의 두 개의 별도 인스턴스를 실행하고 두 명의 별도 사용자로 로그인합니다. 이렇게 하면 두 개의 다른 인스턴스에서 복제를 표시할 수 있습니다. 하나는 스톡 안드로이드 에뮬레이터를 사용하여 실행하고 다른 하나는 Genymotion 를 클릭합니다. 로그인하여 사용자들에게 목록을 공유하면 목록이 공유될 뿐만 아니라 입력한 작업이 두 클라이언트 장치에 모두 복제되는 것을 확인할 수 있습니다.

아래에는 동일한 데이터베이스의 사용자를 입력하고 공유하여 만든 'Couchbase AMI'라는 목록이 있습니다. 이 목록에서 '데이터 복제'라는 이름의 작업을 생성하고 Couchbase 동기화 게이트웨이를 통해 제목이 그에 따라 동기화되었습니다.

nexusscreenshot

이 복제가 작동하는 것을 확인할 수 있는 또 다른 방법은 Couchbase 웹 콘솔을 다시 열면 데이터 버킷이 생성한 작업 항목 제목으로 채워지는 것을 볼 수 있습니다. 1단계에서 했던 것처럼 Couchbase 콘솔에 로그인하고 데이터 버킷 탭을 클릭합니다. 'todolite'를 가리키는 화살표를 클릭한 다음 아래와 같이 '문서'를 클릭합니다.

databuckets3

'문서'를 열면 'ToDoLite' 모바일 애플리케이션 내에서 작업을 목록에 입력했을 때 생성된 모든 문서를 볼 수 있습니다. 문서를 클릭하여 열면 생성된 '작업' 유형이 표시되며, 이 예제에서는 제목을 아래와 같이 '데이터 복제'로 지정했습니다.

 todolite

축하합니다! 이제 Amazon AWS에서 서비스형 Couchbase를 실행하고 있으며, 모바일 애플리케이션인 ToDoLite가 프로덕션 환경에서 Couchbase Sync Gateway 및 Couchbase Server에 대해 실행되고 있습니다. config.json 파일 구성을 통해 동기화 게이트웨이를 사용하고 클라우드의 서버에 데이터를 저장하면서 두 Android 클라이언트 장치에서 데이터를 동기화할 수 있습니다. Couchbase Lite API에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 모바일 개발자 포털 그리고 Couchbase AMI 설치 방법 1부부터

작성자

게시자 윌리엄 호앙, 모바일 개발자 옹호자, Couchbase

윌리엄은 카우치베이스의 모바일 엔지니어링/개발자 경험 팀의 개발자 옹호자였습니다. 커피와 코드에 대한 그의 사랑은 오프라인 대면 경험을 즐기면서 모바일의 세계로 넘어왔습니다. 그 전에는 Twitter, BlackBerry, Microsoft에서 개발자 관계 팀에서 일했으며, Research In Motion에서 소프트웨어 임베디드 GPS 엔지니어로 근무하기도 했습니다. 윌리엄은 맥길 대학교에서 전기 소프트웨어 공학을 전공했습니다.

댓글 남기기