웹사이트 검색

CentOS 8에 Apache CouchDB NoSQL 데이터베이스를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Apache CouchDB 설치
  3. CouchDB 구성
  4. SELinux 및 방화벽 구성\n
  5. CouchDB 웹 UI에 액세스
  6. CouchDB 데이터베이스 작업
  7. 결론

Apache CouchDB는 Erlang으로 작성된 무료 오픈 소스 문서 지향 NoSQL 데이터베이스 시스템입니다. 다른 관계형 데이터베이스에 비해 데이터와 관계를 테이블에 저장하지 않습니다. JSON을 사용하여 데이터를 더 확장 가능하고 쉽게 모델링할 수 있는 데이터를 저장합니다. 또한 데이터베이스 문서를 생성, 편집 및 삭제할 수 있는 안정적인 HTTP API를 지원합니다.

이 튜토리얼에서는 CentOS 8에 Apache CouchDB NoSQL 데이터베이스를 설치하는 방법을 설명합니다.

전제 조건

  • CentOS 8을 실행하는 서버.\n
  • 서버에 루트 암호가 설정되어 있습니다.\n

아파치 CouchDB 설치

기본적으로 Apache CouchDB는 CentOS 8 기본 리포지토리에서 사용할 수 없습니다. 따라서 시스템에 Apache CouchDB 저장소를 생성해야 합니다.

CouchDB 리포지토리는 EPEL 리포지토리에 의존하므로 시스템에 EPEL 리포지토리를 설치해야 합니다. 다음 명령으로 설치할 수 있습니다.

dnf install epel-release -y

다음으로 아래 명령을 사용하여 Apache CouchDB 저장소를 생성합니다.

nano /etc/yum.repos.d/apache-couchdb.repo

다음 줄을 추가합니다.

[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1

완료되면 파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 Apache CouchDB를 설치합니다.

dnf install couchdb -y

설치가 성공적으로 완료되면 다음 단계를 진행할 수 있습니다.

CouchDB 구성

CouchDB를 독립형 모드 또는 클러스터 모드로 구성할 수 있습니다. 이 튜토리얼에서는 단일 모드에서 CouchDB 서버를 구성합니다. 기본적으로 CouchDB는 localhost에서 수신 대기하며 설치 중에 관리자 계정이 생성되지 않습니다. 따라서 CouchDB용 관리자 계정을 생성해야 합니다. local.ini 파일을 편집하여 만들 수 있습니다.

nano /opt/couchdb/etc/local.ini

bind-address를 0.0.0.0으로 설정하여 외부 IP 주소에서 액세스를 허용하고 아래와 같이 [admin] 섹션 내에서 관리자 비밀번호를 설정합니다.

[chttpd]
port = 5984
bind_address = 0.0.0.0  

[admins]
admin = password

완료되면 파일을 저장하고 닫습니다. 그런 다음 CouchDB 서비스를 시작하고 부팅 시 시작되도록 활성화합니다.

systemctl start couchdb
systemctl enable couchdb

이제 다음 명령을 사용하여 CouchDB 서비스의 상태를 확인할 수 있습니다.

systemctl status couchdb

다음과 같은 결과가 표시되어야 합니다.

? couchdb.service - Apache CouchDB
   Loaded: loaded (/usr/lib/systemd/system/couchdb.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-04-11 07:40:47 EDT; 35s ago
 Main PID: 11992 (beam.smp)
    Tasks: 43 (limit: 26213)
   Memory: 36.4M
   CGroup: /system.slice/couchdb.service
           ??11992 /opt/couchdb/bin/../erts-9.3.3.14/bin/beam.smp -K true -A 16 -Bd -- -root /opt/couchdb/bin/.. -progname couchdb -- -home /o>
           ??12004 /opt/couchdb/bin/../erts-9.3.3.14/bin/epmd -daemon
           ??12023 erl_child_setup 1024
           ??12045 sh -s disksup
           ??12047 /opt/couchdb/bin/../lib/os_mon-2.4.4/priv/bin/memsup
           ??12048 /opt/couchdb/bin/../lib/os_mon-2.4.4/priv/bin/cpu_sup

Apr 11 07:40:47 centos8 systemd[1]: Started Apache CouchDB.

다음 명령을 사용하여 CouchDB 수신 포트를 확인할 수도 있습니다.

netstat -pnltu | grep 5984

다음 출력이 표시되어야 합니다.

tcp        0      0 0.0.0.0:5984            0.0.0.0:*               LISTEN      11992/beam.smp

SELinux 및 방화벽 구성

기본적으로 SELinux는 시스템에서 활성화되어 있습니다. 따라서 시스템에서 SELinux를 비활성화하는 것이 좋습니다.

/etc/selinux/config 파일을 편집하여 SELinux를 비활성화할 수 있습니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

그리고 다음 줄로 바꿉니다.

SELINUX=permissive

파일을 저장하고 닫습니다. 그런 다음 시스템을 다시 시작하여 변경 사항을 적용하십시오.

다음으로 방화벽을 통해 포트 5984를 허용해야 합니다. 다음 명령으로 허용할 수 있습니다.

firewall-cmd --zone=public --permanent --add-port=5984/tcp
firewall-cmd --reload

완료되면 다음 단계로 진행할 수 있습니다.

CouchDB 웹 UI에 액세스

이 시점에서 CouchDB가 설치되고 구성됩니다. CouchDB가 작동하는지 여부를 확인할 시간입니다.

curl 명령을 사용하여 CouchDB를 확인할 수 있습니다.

curl http://your-server-ip:5984/

모든 것이 정상이면 다음과 같은 결과가 표시됩니다.

{"couchdb":"Welcome","version":"3.0.0","git_sha":"03a77db6c","uuid":"d0406ea8f0b1a3f18020ec90e627ae35","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

URL http://your-server-ip:5984/_utils/를 사용하여 CouchDB 웹 UI에 액세스할 수도 있습니다. CouchDB 로그인 페이지로 리디렉션됩니다.

관리자 사용자 이름, 암호를 제공하고 로그인 버튼을 클릭합니다. 다음 화면에 CouchDB 대시보드가 표시되어야 합니다.

CouchDB 데이터베이스 작업

CouchDB에서는 curl 명령을 사용하여 데이터베이스를 생성하고 삭제할 수도 있습니다.

CouchDB에 testdb라는 데이터베이스를 생성하려면 다음 명령을 실행합니다.

curl -u admin:password -X PUT http://your-server-ip:5984/testdb

다음 출력이 표시되어야 합니다.

{"ok":true}

CouchDB에 userdb라는 데이터베이스를 생성하려면 다음 명령을 실행합니다.

curl -u admin:password -X PUT http://your-server-ip:5984/userdb

다음 출력이 표시되어야 합니다.

{"ok":true}

아래와 같이 curl 명령을 사용하여 데이터베이스를 확인할 수도 있습니다.

curl -u admin:password -X GET http://your-server-ip:5984/testdb

다음 출력이 표시되어야 합니다.

{"db_name":"testdb","purge_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","update_seq":"0-g1AAAABXeJzLYWBgYMpgTmEQTM4vTc5ISXIwNDLXMwBCwxyQVB4LkGRoAFL_gSArkQGP2kSGpHqIoiwAtOgYRA","sizes":{"file":16700,"external":0,"active":0},"props":{},"doc_del_count":0,"doc_count":0,"disk_format_version":8,"compact_running":false,"cluster":{"q":2,"n":1,"w":1,"r":1},"instance_start_time":"0"}

CouchDB 대시보드를 새로 고쳐 웹 브라우저에서 데이터베이스를 볼 수도 있습니다.

데이터베이스 testdb를 삭제하려면 다음 명령을 실행하십시오.

curl -u admin:password -X DELETE http://your-server-ip:5984/testdb

다음과 같은 결과가 표시되어야 합니다.

{"ok":true}

결론

축하합니다! CentOS 8에 Apache CouchDB를 성공적으로 설치했습니다. 자세한 내용은 Apache CouchDB 설명서를 참조하세요.