10๋‹จ๊ณ„: Helm์„ ์‚ฌ์šฉํ•˜์—ฌ Apigee Hybrid ์„ค์น˜

Apigee Hybrid ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์š”์†Œ ์„ค์น˜

์ด ๋‹จ๊ณ„์—์„œ๋Š” Helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ Apigee Hybrid ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  • Apigee ์šด์˜์ž
  • Apigee ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด
  • Apigee ์›๊ฒฉ ๋ถ„์„
  • Apigee Redis
  • Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ด€๋ฆฌ์ž
  • Apigee ์กฐ์ง
  • Apigee ํ™˜๊ฒฝ

๊ฐ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ฐจํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜ ์ „ ์ฐธ๊ณ ์‚ฌํ•ญ

  1. Helm v3.14.2 ์ด์ƒ์„ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์œผ๋ฉด Helm ์„ค์น˜์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  2. Apigee Hybrid๋Š” ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— Helm ๊ฐ€๋“œ๋ ˆ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๊ฐ ๋ช…๋ น์–ด ์ถœ๋ ฅ์—์„œ ๊ฐ€๋“œ๋ ˆ์ผ ๊ด€๋ จ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    # Source: apigee-operator/templates/apigee-operators-guardrails.yaml
    apiVersion: v1
    kind: Pod
    metadata:
      name: apigee-hybrid-helm-guardrail-operator
      namespace:  APIGEE_NAMESPACE
      annotations:
        helm.sh/hook: pre-install,pre-upgrade
        helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
      labels:
        app: apigee-hybrid-helm-guardrail
    

    helm upgrade ๋ช…๋ น์–ด๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๊ฐ€๋“œ๋ ˆ์ผ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•ด์„œ ์›์ธ์„ ์ง„๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋“œ๋ ˆ์ผ๋กœ ๋ฌธ์ œ ์ง„๋‹จ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. Helm ์—…๊ทธ๋ ˆ์ด๋“œ/์„ค์น˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋ช…๋ น์–ด ๋์— --dry-run=server๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Helm ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ง€์›๋˜๋Š” ๋ช…๋ น์–ด, ์˜ต์…˜, ์‚ฌ์šฉ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด helm install --h๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์„ค์น˜ ๋‹จ๊ณ„

  1. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” APIGEE_HELM_CHARTS_HOME ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. Apigee Operator/Controller๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml \
      --dry-run=server
    

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade operator apigee-operator/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

    Apigee ์šด์˜์ž ์„ค์น˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    helm ls -n APIGEE_NAMESPACE
    
    NAME       NAMESPACE       REVISION   UPDATED                                STATUS     CHART                                       APP VERSION
    operator   apigee   3          2023-06-26 00:42:44.492009 -0800 PST   deployed   apigee-operator-1.15.0   1.15.0
    

    ๊ฐ€์šฉ์„ฑ์„ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager   1/1     1            1           7d20h
    
  3. Apigee ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml \
      --dry-run=server
    

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

    ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ apigeedatastore๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
    
  4. Apigee ์›๊ฒฉ ๋ถ„์„์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml \
      --dry-run=server
    

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

    ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee-telemetry   running   2d
    
  5. Apigee Redis๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml \
      --dry-run=server
    

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

    ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
    
  6. Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ด€๋ฆฌ์ž๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml \
      --dry-run=server
    

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

    ๊ฐ€์šฉ์„ฑ์„ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-ingressgateway-manager   2/2     2            2           2d
    
  7. Apigee ์กฐ์ง์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์…ธ์—์„œ $ORG_NAME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ๋‹ค์Œ ๋ช…๋ น์–ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade $ORG_NAME apigee-org/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml \
      --dry-run=server
    

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade $ORG_NAME apigee-org/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides.yaml
    

    ํ•ด๋‹น ์กฐ์ง์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          running   2d
    
  8. ํ™˜๊ฒฝ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ•œ ๋ฒˆ์— ํ™˜๊ฒฝ ํ•˜๋‚˜๋งŒ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --set env=ENV_NAME์œผ๋กœ ํ™˜๊ฒฝ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์…ธ์—์„œ $ENV_NAME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ๋‹ค์Œ ๋ช…๋ น์–ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      --set env=$ENV_NAME \
      -f overrides.yaml \
      --dry-run=server
    

      ENV_RELEASE_NAME์€ apigee-env ์ฐจํŠธ ์„ค์น˜ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์€ ์„ค์น˜ ๋‚ด ๋‹ค๋ฅธ Helm ์ถœ์‹œ ์ด๋ฆ„๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ENV_NAME๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™˜๊ฒฝ ์ด๋ฆ„์ด ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ด๋ฆ„๊ณผ ๊ฐ™์œผ๋ฉด ํ™˜๊ฒฝ๊ณผ ํ™˜๊ฒฝ ๊ทธ๋ฃน์— ์„œ๋กœ ๋‹ค๋ฅธ ์ถœ์‹œ ์ด๋ฆ„(์˜ˆ: dev-env-release ๋ฐ dev-envgroup-release)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Helm์˜ ์ถœ์‹œ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Helm ๋ฌธ์„œ์˜ ์ฃผ์š” ๊ฐœ๋… 3๊ฐ€์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      --set env=$ENV_NAME \
      -f overrides.yaml
    

    ํ•ด๋‹น ํ™˜๊ฒฝ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d
    
  9. ํ™˜๊ฒฝ ๊ทธ๋ฃน(virtualhosts)์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    1. ํ•œ ๋ฒˆ์— ํ™˜๊ฒฝ ๊ทธ๋ฃน(virtualhost) ํ•˜๋‚˜๋งŒ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --set envgroup=ENV_GROUP์œผ๋กœ ํ™˜๊ฒฝ ๊ทธ๋ฃน์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์…ธ์—์„œ $ENV_GROUP ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ๋‹ค์Œ ๋ช…๋ น์–ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. overrides.yaml ํŒŒ์ผ์— ์–ธ๊ธ‰๋œ ํ™˜๊ฒฝ ๊ทธ๋ฃน๋งˆ๋‹ค ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

      ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml \
        --dry-run=server
      

        ENV_GROUP_RELEASE_NAME์€ apigee-virtualhosts ์ฐจํŠธ ์„ค์น˜ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์€ ์„ค์น˜ ๋‚ด ๋‹ค๋ฅธ Helm ์ถœ์‹œ ์ด๋ฆ„๊ณผ ๋‹ค๋ฅด๊ฒŒ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ENV_GROUP๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ด๋ฆ„์ด ์„ค์น˜์˜ ํ™˜๊ฒฝ ์ด๋ฆ„๊ณผ ๊ฐ™์œผ๋ฉด ํ™˜๊ฒฝ ๊ทธ๋ฃน๊ณผ ํ™˜๊ฒฝ์— ์„œ๋กœ ๋‹ค๋ฅธ ์ถœ์‹œ ์ด๋ฆ„(์˜ˆ: dev-envgroup-release ๋ฐ dev-env-release)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Helm์˜ ์ถœ์‹œ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Helm ๋ฌธ์„œ์˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ๋…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

      ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

      helm upgrade $ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --atomic \
        --set envgroup=$ENV_GROUP \
        -f overrides.yaml
      
    2. ApigeeRoute(AR) ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

      virtualhosts๋ฅผ ์„ค์น˜ํ•˜๋ฉด Apigee ๊ฐ์‹œ์ž๊ฐ€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์—์„œ ํ™˜๊ฒฝ ๊ทธ๋ฃน ๊ด€๋ จ ์„ธ๋ถ€์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„ ๋‚ด๋ถ€์ ์œผ๋กœ ApigeeRoute(AR)๋ฅผ ๋งŒ๋“œ๋Š” ApigeeRouteConfig(ARC)๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น AR์˜ ์ƒํƒœ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

      kubectl -n APIGEE_NAMESPACE get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2d
      
      kubectl -n APIGEE_NAMESPACE get ar
      
      NAME                                        STATE     AGE
      apigee-org1-dev-egroup-xxxxxx                running   2d
      

๋‹ค์Œ ๋‹จ๊ณ„

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜

GKE์— Apigee Hybrid๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์„œ๋น„์Šค ๊ณ„์ •์„ ์ธ์ฆํ•˜๋„๋ก ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ํด๋Ÿฌ์Šคํ„ฐ์˜ Kubernetes ์„œ๋น„์Šค ๊ณ„์ •๊ณผ Google ์„œ๋น„์Šค ๊ณ„์ • ๊ฐ„์— ์—ฐ๊ฒฐ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

1 2 3 4 5 6 7 8 9 10 (๋‹ค์Œ) 11๋‹จ๊ณ„: ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ์„ค์ •

๊ธฐํƒ€ ๋ชจ๋“  ์„ค์น˜

๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ”„๋ก์‹œ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ์„ค์น˜๋ฅผ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

(๋‹ค์Œ) 1๋‹จ๊ณ„: Apigee ์ธ๊ทธ๋ ˆ์Šค ๋…ธ์ถœ 2