API BaaS 설치

Private Cloud용 Edge v. 4.17.01

설치 개요

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

apigee-setup 유틸리티의 형식은 다음과 같습니다.

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

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

유일한 요구사항은 'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 한다는 것입니다.

예를 들어 다음 명령어를 사용하여 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을 설치하고 Cassandra는 설치하지 않습니다. 포털은 매우 가볍고 이 작업에 추가 리소스가 필요하지 않습니다.

Asa

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

구성 파일 만들기

구성 파일에는 API BaaS를 설치하는 데 필요한 모든 정보가 포함되어 있습니다. BaaS 설치에서 동일한 구성 파일을 사용하여 모든 구성요소를 설치할 수 있는 경우가 많습니다.

아래에 설명된 각 설치 토폴로지는 해당 토폴로지의 구성 파일 예를 보여줍니다. 구성 파일에 대한 전체 참조는 BaaS 구성 파일 참조를 확인하세요.

단일 노드에 API BaaS 설치

다음은 단일 노드에 API BaaS를 설치하기 위한 구성 파일입니다. 구성에 맞게 이 파일을 수정하세요. 구성 파일에 대한 전체 참조는 BaaS 구성 파일 참조를 확인하세요.

IP1=192.168.56.101   # IP address of single node

# 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=stackAdminPWord

# Because you are installing Cassandra,
# specify Cassandra data center and rack suffix.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1"

# Specify the Cassandra region.
REGION=dc-1

# 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 Cassandra data center name.
BAAS_CASS_LOCALDC=dc-1

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=dc-1

# Replication is in the form "dataCenterName:#CassandraNodes". 
# For dc-1 with one Cassandra node, it is dc-1:1.
BAAS_CASS_REPLICATION=dc-1:1

# Defines the initial contact points for members of the BaaS cluster. 
# For a single node install, specify the IP address of the node. 
BAAS_CLUSTER_SEEDS="dc-1:$IP1"

# Single ElasticSearch IP.
ES_HOSTS="$IP1"

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

# IP/DNS and port 8080 of a single Stack node.
BAAS_USERGRID_URL="http://$IP1:8080"

# URL and port of the BaaS Portal node.  
BAAS_PORTAL_URL="http://$IP1: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

자체 노드에 API BaaS를 설치하려면 다음 안내를 따르세요.

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

    '-p asa' 옵션은 모든 API BaaS 구성요소를 단일 노드(Cassandra, Elasticsearch, API BaaS 스택, API BaaS 포털, Tomcat)에 설치하도록 지정합니다.
    'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다.
  3. 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
  4. 아래의 새 조직 온보딩에 설명된 대로 조직을 온보딩합니다.

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

7개 또는 10개 노드에 API BaaS 설치

API BaaS의 노드 버전 7 또는 10을 설치하는 절차는 매우 유사합니다. 유일한 차이점은 다음과 같습니다.

  • 10 노드 설치 시 ElasticSearch 구성요소 3개와 API BaaS 스택 구성요소 3개를 별도의 노드에 설치하여 총 6개의 노드를 확보합니다. ElasticSearch에는 많은 양의 디스크 I/O와 메모리가 필요하므로 최고의 성능을 위해 권장되는 구성입니다.
  • 7 노드 설치 시 ElasticSearch 구성요소 3개와 API BaaS 스택 구성요소 3개를 동일한 노드에 설치하여 총 3개의 노드를 확보합니다.

API BaaS의 노드 버전 7과 10 모두 Cassandra 클러스터에 연결해야 합니다. Edge를 이미 설치한 경우 Cassandra 클러스터에 연결할 수 있습니다. 즉, API BaaS를 설치하는 과정에서 Cassandra를 설치할 필요가 없습니다.

다음은 10노드 API BaaS 설치를 위한 자동 구성 파일의 예시입니다. ElasticSearch 및 API BaaS 스택 구성요소를 동일한 3개의 노드에 설치하는 경우 파일을 다음과 같이 편집합니다.

  • IP1 및 IP4가 동일한 IP 주소로 설정됨
  • IP2 및 IP5가 동일한 IP 주소로 설정됨
  • IP3 및 IP6가 동일한 IP 주소로 설정됨

구성에 맞게 이 파일을 수정합니다. 구성 파일에 대한 전체 참조는 BaaS 구성 파일 참조를 확인하세요.

# 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=stackAdminPWord

# Only if you are installing Cassandra.
# Specify Cassandra data center and rack suffix.
# 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"

# Specify the Cassandra region.
REGION=dc-1

# 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.

# For a single data center, specify the same value as BAAS_CASS_LOCALDC.
BAAS_CASS_DC_LIST=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

# Defines the initial contact points for members of the BaaS cluster. 
# Specify the IP address of no more than two Stack nodes. 
BAAS_CLUSTER_SEEDS="dc-1:$IP4,dc-1:$IP5"

# 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

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

API BaaS를 Edge에서 사용하는 것과 동일한 Cassandra 클러스터에 연결할 수 있습니다. Edge를 설치하지 않은 경우 선택적으로 API BaaS에서 사용할 수 있도록 Cassandra를 설치할 수 있습니다.

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' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다.

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

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

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' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다.
  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' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다.

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

API BaaS 포털 설치: 머신 7

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

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

    '-p p' 옵션은 API BaaS 포털을 설치하도록 지정합니다.
    'apigee' 사용자가 구성 파일에 액세스하거나 읽을 수 있어야 합니다.

    설치 프로그램이 Nginx 웹 서버를 시작한 다음 API BaaS 포털 구성을 완료합니다.
  3. 다음 단계는 설치에 따라 다릅니다.
    1. Portalor Stack 노드 앞에 부하 분산기가 있는 경우 다음 섹션에서는 부하 분산기에 대해 API BaaS를 구성하는 방법을 설명합니다.
    2. Portalor Stack 노드 앞에 부하 분산기가 없는 경우 아래의 새 조직 온보딩에 설명된 대로 조직을 온보딩합니다.

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

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

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

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

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

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

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_portal.url=http://localhost:9000

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

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

  1. 스택 노드를 구성합니다.
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configuration
  2. BaaS 스택을 다시 시작합니다.
    > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart

    참고: BaaS 스택 노드를 다시 시작할 때 BAAS_CLUSTER_SEEDS에 나열된 것과 동일한 순서로 다시 시작하세요. BAAS_CLUSTER_SEEDS는 스택 노드를 최대 2개 나열합니다. 두 노드를 순서대로 다시 시작한 후 나머지 노드를 원하는 순서대로 다시 시작할 수 있습니다.

  3. portal.properties를 수정한 경우 포털 노드를 구성합니다.
    > /opt/apigee/apigee-service/bin/apigee-service baas-portalconfigure
  4. BaaS 포털을 다시 시작합니다.
    > /opt/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)를 참조하세요.