7-host 및 10-host API BaaS 설치

Private Cloud용 Edge v. 4.16.05

부하 분산기 사용

API BaaS의 프로덕션 설치에서는 API BaaS 포털 노드와 API BaaS 스택 노드 사이에 부하 분산기를 사용합니다. 포털을 구성할 때 스택 노드가 아닌 부하 분산기의 IP 주소 또는 DNS 이름을 지정합니다.

부하 분산기 대신 라운드 로빈 DNS를 사용할 수 있습니다. 이 시나리오에서는 BaaS 스택 IP 주소에 해당하는 여러 A 레코드가 있는 DNS 항목을 만듭니다. DNS 조회 중에 DNS 서버는 라운드 로빈 방식으로 A 레코드 값을 자동으로 반환합니다.

Cassandra에 연결

BaaS를 설치할 때 BaaS 및 Edge를 동일한 Cassandra 클러스터에 연결하거나 BaaS를 위한 별도의 Cassandra 클러스터를 만들 수 있습니다. 더 작은 BaaS 설치(즉, 트래픽 볼륨이 낮은 설치)는 종종 Cassandra 클러스터를 Edge와 공유합니다.

높은 처리량과 가용성을 위해 또는 Cassandra 클러스터를 여러 네트워크 영역으로 분리하려면 Apigee에서는 별도의 Cassandra 클러스터를 사용하는 것이 좋습니다. BaaS에서 트래픽 부하가 높은 경우 별도의 클러스터가 성능을 극대화합니다.

날짜 동기화

모든 서버의 날짜/시간을 동기화해야 합니다. 아직 구성되지 않은 경우 'ntpdate' 유틸리티가 이러한 목적으로 사용하여 서버가 시간 동기화되었는지 확인합니다. 'yum install ntp'를 사용하여 유틸리티를 설치할 수 있습니다.

Tomcat 보안

API BaaS 설치 프로그램은 또한 Tomcat 관리자 UI를 포함하여 모든 API BaaS 스택 노드에 Apache Tomcat 서버를 설치합니다. 설치 프로그램은 기본 관리자 사용자 인증 정보를 admin:admin에서 변경하지 않고 그대로 둡니다.

필요한 경우 Tomcat을 보호하는 과정에서 이러한 사용자 인증 정보를 변경할 수 있습니다. 자세한 내용은 다음을 참조하세요.

설치 개요

노드에 Edge apigee-setup 유틸리티를 설치한 후 이 유틸리티를 사용하여 노드에 하나 이상의 BaaS 구성요소를 설치합니다. apigee-setup 유틸리티의 형식은 다음과 같습니다.

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

설치에 대한 정보가 포함된 구성 파일을 apigee-setup 유틸리티에 전달합니다. 구성 파일에 필수 정보가 누락된 경우 apigee-setup 유틸리티가 명령줄에 정보를 입력하라는 메시지를 표시합니다.

유일한 요구사항은 'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 한다는 것입니다. 예를 들어, 이 파일을 노드의 /tmp 디렉터리에 넣습니다.

예를 들어 다음 명령어를 사용하여 API BaaS 스택을 설치합니다.

> sudo /opt/apigee/apigee-setup/bin/setup.sh -p b -f myConfig

Apigee setup.sh 유틸리티는 API BaaS 구성요소를 설치하기 위한 몇 가지 옵션을 지원합니다. 아래 안내에서는 독립형 옵션 (c, e, b, p)을 사용하지만 노드 구성에 따라 다른 옵션을 사용할 수도 있습니다.

옵션

설명

e

ElasticSearch만 설치합니다.

b

API BaaS 스택만 설치합니다. 이렇게 하면 Tomcat도 설치됩니다.

p

API BaaS 포털만 설치합니다. 이 경우 웹 서버로 사용할 Nginx 라우터도 설치합니다.

c

Cassandra만 설치합니다.

eb

노드에 ElasticSearch, API BaaS Stack 및 Tomcat을 설치합니다.

ebp

ElasticSearch, API BaaS 포털, API BaaS 스택 및 Tomcat을 설치합니다. 이 포털은 매우 가벼우므로 이를 위한 추가 리소스가 필요하지 않습니다.

Asa

단일 노드에 모든 API 구성요소 (Cassandra, Elasticsearch, API BaaS 스택, API BaaS 포털)에 설치합니다. 이 옵션은 프로덕션이 아닌 개발 및 테스트에만 사용하세요.

자동 구성 파일 만들기

다음은 10노드 API BaaS 설치를 위한 자동 구성 파일의 예시입니다. 구성에 맞게 이 파일을 수정하세요. 이 파일을 포함하려면 setup.sh에 -f 옵션을 사용합니다.

# Specify IP address or DNS name of node.
IP1=192.168.1.1   # ElasticSearch
IP2=192.168.1.2   # ElasticSearch
IP3=192.168.1.3   # ElasticSearch
IP4=192.168.1.4   # API BaaS Stack
IP5=192.168.1.5   # API BaaS Stack
IP6=192.168.1.6   # API BaaS Stack
IP7=192.168.1.7   # API BaaS Portal
IP8=192.168.1.8   # Cassandra (shared with Edge or standalone)
IP9=192.168.1.9   # Cassandra (shared with Edge or standalone)
IP10=192.168.1.10  # Cassandra (shared with Edge or standalone)

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Define the API BaaS administrator account.  
AS_ADMIN="superuser"    # User name - default is "superuser".
AS_ADMIN_EMAIL=stackAdmin@email.com
AS_PASSWD=stackAdminPWrod

# Only if you are installing Cassandra.
# Specify Cassandra configuration information.
# Must use IP addresses for CASS_HOSTS, not DNS names.
# CASS_HOSTS="$IP8:1,1 $IP9:1,1 $IP10:1,1"

# If connecting to existing Cassandra nodes, 
# specify Cassandra IPs.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP8 $IP9 $IP10"

# Cassandra uname/pword.
# Even if Cassandra authentication is disabled,
# you must still pass values for these properties.
CASS_USERNAME=cassandra    # Default value
CASS_PASSWORD=cassandra    # Default value

# Specify BaaS Cassandra connection information.
# Specify the data center name.
BAAS_CASS_LOCALDC=dc-1    # Default is dc-1.

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For example, for dc-1 with three Cassandra nodes, it is dc-1:3.
BAAS_CASS_REPLICATION=dc-1:3

# ElasticSearch IPs or DNS names, separated by spaces.
ES_HOSTS="$IP1 $IP2 $IP3"

# API BaaS Stack information.
# Default cluster name is "apigee_baas"
BAAS_USERGRID_CLUSTERNAME="apigee_baas" 

# URL and port of the load balancer for the API BaaS Stack nodes, 
# or IP/DNS and port 8080 of a single Stack node with no load balancer.
BAAS_USERGRID_URL=http://myloadbalancer:8443

# API BaaS Portal information.
# URL and port number of load balancer, if there is one in front of the Portal,
# or the URL and port of the Portal node.  
BAAS_PORTAL_URL="http://$IP7:9000"

# Portal port. Default value is 9000.
BAAS_PORTAL_LISTEN_PORT=9000 

# SMTP information. BaaS requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y

다음 표에는 이러한 속성에 대한 추가 정보가 포함되어 있습니다.

속성

참고

CASS_HOSTS

Cassandra를 설치하는 경우 Cassandra 노드 IP (DNS 이름이 아님)를 지정하고 Cassandra 노드의 데이터 센터와 랙을 지정하는 ':dc,ra' 수정자를 포함합니다.

예를 들어 '192.168.124.201:1,1 = datacenter 1 및 랙/가용성 영역 1' 및 '192.168.124.204:2,1 = datacenter 2 및 랙/가용성 영역 1'입니다.

CASS_USERNAME
CASS_PASSWORD

Cassandra 사용자 이름 및 비밀번호

Cassandra 인증이 사용 중지된 경우에도 이러한 값을 전달해야 합니다. 하지만 값은 무시됩니다.

BAAS_CASS_LOCALDC

지역 이름은 dc-# 형식이어야 하며 여기서 # 은 정수 값에 해당합니다.

예를 들어 dc-1, dc-2 등입니다. Edge와 함께 설치된 Cassandra 클러스터에 연결하는 경우 Edge 시스템 관리자에게 이 값을 요청할 수 있습니다. Edge 단일 데이터 센터 설치에서 기본값은 dc-1입니다.

API BaaS를 설치하는 과정에서 Cassandra를 설치한 경우 Cassandra 설치 중에 Cassandra IP 주소에 ':dc,ra' 수정자를 추가했습니다. 첫 번째 값 'dc'는 데이터 센터 번호입니다. 데이터 센터 이름은 데이터 센터 번호가 서픽스로 포함된 'dc-' 문자열입니다.

BAAS_CASS_REPLICATION

형식은 'dataCenterName:#CassandraNodes'입니다. 예를 들어 Cassandra 노드가 3개인 dc-1의 경우 dc-1:3입니다.

BAAS_USERGRID_URL

프로덕션 환경에서는 API BaaS 스택 노드 앞에 있는 부하 분산기의 URL 및 포트이며 형식은 다음과 같습니다.

http://myStackLoadBalancer:8443

API BaaS 스택 노드가 하나뿐인 테스트 또는 개발 환경에서는 API BaaS 스택 노드의 URL과 포트 번호(형식)일 수 있습니다.

http://stackIPorDNS:8080

API BaaS 스택 서버의 포트 번호는 8080입니다.

BAAS_PORTAL_URL

포털 앞에 부하 분산기가 있는 경우 부하 분산기의 URL 및 포트 번호이며 형식은 다음과 같습니다.

http://myPortalLoadBalancer:8443

부하 분산기가 없는 경우 포털 노드의 URL과 포트 번호는 다음과 같습니다.

http://portalIPorDNS:9000

기본적으로 포털 B 90aS의 포트 번호입니다.

BAAS_PORTAL_LISTEN_PORT

API BaaS 포털 서버의 포트 번호는 9000입니다. 이 포트를 사용할 수 없으면 다른 포트를 지정합니다.

BAAS_PORTAL_URL을 포털 노드의 URL로 설정하는 경우 두 속성의 포트 번호가 동일해야 합니다.

선택사항 - Cassandra 설치: 머신 8, 9, 10

API BaaS를 Edge에서 사용하는 것과 동일한 Cassandra 클러스터에 연결할 수 있지만 Apigee에서는 별도의 클러스터를 사용하는 것이 좋습니다.

Cassandra 클러스터가 인증을 사용하거나 Cassandra 인증을 사용 중지할 수 있습니다. 자세한 내용은 Cassandra 인증 사용 설정을 참조하세요.

  1. 인터넷 또는 인터넷이 아닌 절차를 사용하여 노드에 Edge apigee-setup 유틸리티를 설치합니다. 자세한 내용은 Edge Apigee-setup 유틸리티 설치를 참고하세요.
  2. 명령어 프롬프트에서 설정 스크립트를 실행합니다.
    > /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile

    '-p c' 옵션은 Cassandra를 설치하도록 지정합니다.
    'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다. 예를 들어, 노드의 /tmp 디렉터리에 파일을 넣습니다.

구성이 노드에서 데이터 스토어 설정을 성공적으로 완료합니다.

Cassandra에는 JMX가 기본적으로 사용 설정됩니다. Cassandra에 대한 JMX 원격 액세스에는 비밀번호가 필요하지 않습니다. JMX에 인증을 사용하도록 Cassandra를 구성할 수 있습니다. 자세한 내용은 모니터링 방법을 참고하세요.

Cassandra 크론 작업 설정

모든 Cassandra 노드에서 매시간 잠금이 실행되도록 nodetool을 사용하여 플러시하는 크론 작업을 설정합니다.

Cassandra 노드가 여러 개 있는 경우 모든 노드가 동시에 플러시되지 않도록 각 서버에서 크론 작업을 5분 오프셋합니다.

크론 작업은 다음 명령어를 실행해야 합니다.

/opt/apigee/apigee-cassandra/bin/nodetool -h IP_address flush Apigee_Baas_Locks

여기서 IP_address는 Cassandra 노드의 IP 주소입니다.

ElasticSearch 설치: 머신 1, 2, 3

ElasticSearch를 설치하려면 다음 단계를 따르세요.

  1. 인터넷 또는 인터넷 외 절차를 사용하여 노드에 Edge Apigee 설치 유틸리티를 설치합니다. 자세한 내용은 Edge Apigee-setup 유틸리티 설치를 참고하세요.
  2. 명령어 프롬프트에서 설정 스크립트를 실행합니다.
    > /opt/apigee/apigee-setup/bin/setup.sh -p e -f configFile

    '-p e' 옵션은 ElasticSearch를 설치하도록 지정합니다.
    'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다. 예를 들어, 노드의 /tmp 디렉터리에 파일을 넣습니다.
  3. (선택사항) API BaaS 스택으로 설치되지 않은 독립형 노드에 ElasticSearch를 설치하는 경우 기본 메모리 옵션을 조정하여 ElasticSearch에 할당되는 메모리를 4GB에서 6GB로 늘립니다.
    1. 편집기에서 /opt/apigee/customer/application/elasticsearch.properties를 엽니다. 이 파일이 없으면 새로 만듭니다.
    2. setenv_elasticsearch_max_mem_size 속성을 6g (기본값은 4g)로 설정합니다.
      setenv_elasticsearch_max_mem_size=6g
    3. 파일을 저장합니다.
    4. 다음 명령어를 실행합니다.
      > /opt/apigee/apigee-service/bin/apigee-service apigee-elasticsearch restart

구성이 노드에서 설정을 완료합니다.

API BaaS 스택 설치: 머신 4, 5, 6

API BaaS 스택을 설치하려면 다음 안내를 따르세요.

  1. 인터넷 또는 인터넷 외 절차를 사용하여 노드에 Edge Apigee 설치 유틸리티를 설치합니다. 자세한 내용은 Edge Apigee-setup 유틸리티 설치를 참고하세요.
  2. 명령어 프롬프트에서 설정 스크립트를 실행합니다.
    > /opt/apigee/apigee-setup/bin/setup.sh -p b -f configFile

    '-p b' 옵션은 API BaaS 스택 설치를 지정합니다.
    'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다. 예를 들어, 노드의 /tmp 디렉터리에 파일을 넣습니다.

설치 프로그램이 올바른 관리자 사용자 인증 정보를 가져온 후 Tomcat을 설치하고, API BaaS 키스페이스를 만들고, 서버에 API BaaS 스택을 설정합니다. SMTP도 UI에서 비밀번호 확인 이메일을 보낼 수 있도록 구성됩니다.

API BaaS 포털 설치: 머신 7

API BaaS 포털을 설치하려면 다음 안내를 따르세요.

  1. 인터넷 또는 인터넷 외 절차를 사용하여 노드에 Edge Apigee 설치 유틸리티를 설치합니다. 자세한 내용은 Edge Apigee-setup 유틸리티 설치를 참고하세요.
  2. 명령 프롬프트에서 설정 스크립트를 실행합니다.
    > /opt/apigee/setup/bin/setup.sh -p p -f configFile

    '-p p' 옵션은 API BaaS 포털을 설치하도록 지정합니다.
    'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다. 예를 들어, 노드의 /tmp 디렉터리에 파일을 넣습니다.

설치 프로그램은 Nginx 웹 서버를 시작한 다음 API BaaS 포털 구성을 완료합니다.

API BaaS 포털 URL을 기록해 둡니다. 이 URL은 API BaaS 포털 사용자 인터페이스에 액세스하기 위해 브라우저에 입력하는 URL입니다.

스택 또는 포털 부하 분산기용 API BaaS 노드 구성

스택 또는 포털 노드 앞에 부하 분산기를 포함하는 경우 올바른 부하 분산기 URL로 노드를 구성해야 합니다. 예를 들어 스택 노드에는 다음과 같은 경우에 이 정보가 필요합니다.

  • BaaS API 요청의 응답에 URL 포함
  • 비밀번호를 재설정하거나 기타 알림을 보낼 때 이메일 템플릿에 링크 추가
  • 사용자를 특정 포털 페이지로 리디렉션합니다.

스택 노드 앞에 부하 분산기를 사용하는 경우 /opt/apigee/customer/application/usergrid.properties에서 다음 속성을 설정합니다.

usergrid-deployment_swagger.basepath=http://localhost:8080
usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate
usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate
usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw
usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm
usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate
usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm
usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw

http://localhost:8080을 부하 분산기의 URL로 바꿉니다. 부하 분산기가 TLS를 사용하도록 구성된 경우 HTTPS 프로토콜을 사용합니다. 비표준 포트, 즉 HTTP의 경우 포트 80, HTTPS의 경우 포트 443 이외의 포트를 사용하는 경우에만 포트를 포함하면 됩니다.

또한 스택 노드 앞에 부하 분산기를 사용하는 경우 /opt/apigee/customer/application/portal.properties 에 다음 속성을 설정해야 합니다.

baas.portal.config.overrideUrl=http://localhost:8080

http://localhost:8080을 스택의 부하 분산기 URL로 바꿉니다.

포털 노드 앞에서 부하 분산기를 사용하는 경우 usergrid.properties에서 다음 속성을 설정합니다.

usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000
usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000

http://localhost:9000을 부하 분산기의 URL로 바꿉니다. 부하 분산기가 TLS를 사용하도록 구성된 경우 HTTPS 프로토콜을 사용합니다. 비표준 포트, 즉 HTTP의 경우 포트 80, HTTPS의 경우 포트 443 이외의 포트를 사용하는 경우에만 포트를 포함하면 됩니다.

usergrid.properties portal.properties를 편집한 후:

  1. 스택 노드를 구성합니다.
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid configuration
  2. 변경사항을 Tomcat에 배포합니다.
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid deploy
  3. BaaS 스택을 다시 시작합니다.
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-usergrid restart
  4. portal.properties를 수정한 경우 포털 노드를 구성합니다.
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portalconfigure
  5. 변경사항을 배포합니다.
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal deploy
  6. BaaS 포털을 다시 시작합니다.
    > /<inst_root>/apigee/apigee-service/bin/apigee-service baas-portal restart

새 조직 온보딩

온보딩은 조직 및 조직 관리자를 만드는 프로세스입니다. 조직 및 조직 관리자를 만든 후 API BaaS 포털 UI에 로그인하여 API BaaS REST API에 요청할 수 있습니다.

조직을 만들 때 조직 관리자의 이메일 주소는 다음과 같습니다.

  • 시스템 관리자의 이메일 주소와 달라야 합니다.
  • 다른 모든 조직과 고유해야 합니다. 즉, 조직 관리자의 이메일 주소가 동일한 두 조직을 만들 수 없습니다. 하지만 조직을 만든 후에 여러 조직에 복제할 수 있는 관리자를 추가할 수 있습니다.

온보딩을 수행하려면 create_org_and_user.py Python 스크립트를 사용합니다. 명령줄 인수 없이 이 스크립트를 호출하면 모든 정보를 입력하라는 메시지가 표시됩니다.

> python create_org_and_user.py

또는 일부 옵션 또는 모든 옵션을 명령줄 인수로 전달할 수 있습니다. 명령줄에서 생략한 정보를 입력하라는 메시지가 표시됩니다.

> python create_org_and_user.py -o '<org name>'
> python create_org_and_user.py -o '<org name>' -a '<new admin email>' -p '<new admin password>'

조직을 만들려면 다음 단계를 따르세요.

  1. 디렉터리를 /opt/apigee/baas-usergrid/bin으로 변경합니다.
  2. create_org_and_user.py Python 스크립트를 호출합니다.
    시스템 관리자만 실행할 수 있도록 BaaS 시스템 관리자의 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.
  3. API BaaS 포털 URL 설치가 끝나면 기록한 URL을 사용하여 웹브라우저에서 API BaaS 포털에 로그인합니다. 포털에 액세스하려면 다음 형식으로 API BaaS 포털 URL을 입력합니다.
    http://{portalExternalIP}:9000/

    참고: IP는 포털 머신의 외부 IP 주소/호스트 이름입니다. 포트가 열려 있는지 확인합니다.
  4. 포털 로그인 화면이 표시되면 다음 중 하나를 수행할 수 있습니다.
    • 조직 관리자의 사용자 이름과 비밀번호를 사용하여 로그인합니다.
    • 시스템 관리자의 사용자 이름 및 비밀번호를 사용하여 로그인합니다.

API BaaS REST API 액세스

API BaaS REST API에 액세스하려면 다음 형식의 URL을 사용합니다.

https://{loadBalancerIP}:8080/{your-org}/{your-app}

개발 환경에서는 모든 API BaaS 구성요소를 단일 노드에 설치할 수 있습니다. 즉, 하나의 API BaaS 스택이 있습니다. 또는 단일 API BaaS 스택 노드가 있고 부하 분산기가 없는 작은 환경이 있을 수 있습니다. 이러한 유형의 환경에서는 API BaaS 스택 노드에 직접 API 호출을 수행할 수 있습니다.

curl -v "http://portalExternalIP:8080/status"

API BaaS 포털을 시작하는 방법에 대한 자세한 내용은 Apigee 문서(http://apigee.com/docs/content/build-apps-home)를 참조하세요.