์ด ๋จ๊ณ์์๋ Apigee Hybrid๊ฐ ์๋ํ๋ ๋ฐ ํ์ํ Google Cloud ์๋น์ค ๊ณ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๊ฐ์
Apigee Hybrid๋ Google Cloud ์๋น์ค ๊ณ์ ์ ์ฌ์ฉํ์ฌ ์น์ธ๋ API ํธ์ถ์ ๋ง๋ค์ด ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์ฑ์์๊ฐ ํต์ ํ ์ ์๋๋ก ํฉ๋๋ค.
ํ๋ก๋์ ํ๊ฒฝ ๋ฐ ๋นํ๋ก๋์ ํ๊ฒฝ ๋น๊ต
์ด ๊ฐ์ด๋์์๋ ํ๋ก๋์ ('ํ๋ก๋์ ') ๋ฐ ๋นํ๋ก๋์ ('๋นํ๋ก๋์ ') ์ค์น๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ํ๋ก๋์ ์ค์น๋ ์ฌ์ฉ ์ฉ๋, ์คํ ๋ฆฌ์ง, ํ์ฅ์ฑ์ ๋์ด๋๋ก ์กฐ์ ๋ฉ๋๋ค. ๋นํ๋ก๋์ ์ค์น๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ฒ ์ฌ์ฉํ๋ฉฐ ์ฃผ๋ก ํ์ต ๋ฐ ๋ฐ๋ชจ์ฉ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
Apigee Hybrid์ฉ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ ๊ตฌ์ฑํ ๋ ํ๊ฒํ ํ๋ ์ค์น ์ ํ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
ํ๋ก๋์ ์ค์น์ ๊ฒฝ์ฐ Apigee Hybrid ๊ตฌ์ฑ์์๋ง๋ค ๋ณ๋์ ์๋น์ค ๊ณ์ ์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด runtime, mart, metrics, udca ๋ฑ์ ๊ฐ๊ฐ ์์ฒด ์๋น์ค ๊ณ์ ์ ๊ฐ์ ธ์ต๋๋ค.
๋นํ๋ก๋์ ์ค์น์ ๊ฒฝ์ฐ ๋ชจ๋ ๊ตฌ์ฑ์์์ ์ ์ฉ๋๋ ๋จ์ผ ์๋น์ค ๊ณ์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
Apigee์์ ์ฌ์ฉํ๋ ์๋น์ค ๊ณ์ ๊ณผ ํ ๋น๋ ์ญํ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Hybrid ๊ตฌ์ฑ์์์์ ์ฌ์ฉํ๋ ์๋น์ค ๊ณ์ ๋ฐ ์ญํ ์ ์ฐธ์กฐํ์ธ์.
GKE์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ
GKE ๊ธฐ๋ฐ์ Apigee Hybrid ์ค์น์์๋ Google Cloud๊ฐ Hybrid ๋ฐํ์ ๊ตฌ์ฑ์์๋ฅผ ์ธ์ฆํ๊ธฐ ์ํด ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ๋ผ๋ ์ต์ ์ ์ ๊ณตํฉ๋๋ค. ์ด ์ต์ ์ ์๋น์ค ๊ณ์ ์ ์ธ์ฆํ๊ธฐ ์ํด ๋ค์ด๋ก๋ํ ์ธ์ฆ์ ํ์ผ์ ์ฌ์ฉํ์ง ์๊ณ , ๋์ ์ด ๋จ๊ณ์์ ๋ง๋๋ Google Cloud ์๋น์ค ๊ณ์ ์ Kubernetes ํด๋ฌ์คํฐ์ Kubernetes ์๋น์ค ๊ณ์ ๊ณผ ์ฐ๊ฒฐํฉ๋๋ค.
์ํฌ๋ก๋ ์์ด๋ดํฐํฐ๋ GKE ์ค์น์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ
๋ค์ ์ ์ฐจ์ ๋ฐ๋ผ Hybrid ์ค์น์ ํ์ํ Google Cloud ์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.
create-service-account
๋๊ตฌ: GKE ์ด์ธ์ ํ๋ซํผ์ Apigee Hybrid๋ฅผ ์ค์นํ๊ฑฐ๋ GKE์ ์ค์นํ์ง๋ง ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด Apigee์์ ์ ๊ณตํ๋ ๋๊ตฌ์ธcreate-service-account
๋ฅผ ์ฌ์ฉํด ๋จ์ผ ๋ช ๋ น์ด๋ก ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ , ์๋น์ค ๊ณ์ ์ ์ญํ ์ ํ ๋นํ๊ณ , ์๋น์ค ๊ณ์ ์ ํค ํ์ผ์ ๋ง๋ค๊ณ ๋ค์ด๋ก๋ํฉ๋๋ค.
create-service-account
๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ์ ์ ์ฐจ๋ฅผ ๋ฐ๋ฆ ๋๋ค.- Google Cloud console ๋๋
gcloud
: GKE์ Apigee Hybrid๋ฅผ ์ค์นํ๊ณ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ Google Cloud console ๋๋gcloud
๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ง ์๊ณ ์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค. Google Cloud console ์์ ๋๋gcloud
๋ก ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ์
์ ์ฐจ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
create-service-account
๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ
๋ค์๊ณผ ๊ฐ์ ์ํฉ์์๋ create-service-account
๋๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- GKE ์ด์ธ์ ํ๋ซํผ์ ์ค์นํ๋ ๊ฒฝ์ฐ
- GKE์ ์ค์นํ๊ณ ์์ง๋ง ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ณํ์ ๋๋ค.
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ Google Cloud console ์์ ๋๋ gcloud
๋ก ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ๋ก ๊ฑด๋๋๋๋ค.
- HYBRID_FILES ๋ฐ PROJECT_ID ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋์ด ์์ด์ผ ํฉ๋๋ค.
create-service-account
๋๊ตฌ๊ฐ PROJECT_ID ํ๊ฒฝ ๋ณ์๋ฅผ ์ฝ์ด ์ฌ๋ฐ๋ฅธ ํ๋ก์ ํธ์ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ธฐ ๋๋ฌธ์ PROJECT_ID๊ฐ Google Cloud ํ๋ก์ ํธ ID๋ก ์ค์ ๋์ด์ผ ํฉ๋๋ค.echo $HYBRID_FILES
echo $PROJECT_ID
- ๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.
๋นํ๋ก๋์
์ด ๋ช ๋ น์ด๋ ๋นํ๋ก๋์ ์ค์น์ ์ฌ์ฉํ ๋จ์ผ ์๋น์ค ๊ณ์
apigee-non-prod
๋ฅผ ๋ง๋ค๊ณ$HYBRID_FILES/service-accounts
๋๋ ํฐ๋ฆฌ์ ์๋ ์๋น์ค ๊ณ์ ์ ํค ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
ํ๋ก๋์
์ด ๋ช ๋ น์ด๋ ํ๋ก๋์ ์ค์น๋ฅผ ์ํ ๋ชจ๋ ๊ฐ๋ณ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ
$HYBRID_FILES/service-accounts
๋๋ ํฐ๋ฆฌ์ ์๋น์ค ๊ณ์ ์ ํค ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
๋ค์ ํ๋กฌํํธ๊ฐ ํ์๋๋ฉด y๋ฅผ ์ ๋ ฅํฉ๋๋ค.
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
ํน์ ์๋น์ค ๊ณ์ ์ ์ฒ์ ๋ง๋๋ ๊ฒฝ์ฐ ์ถ๊ฐ ํ๋กฌํํธ ์์ด ๋๊ตฌ์์ ์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.
ํ์ง๋ง ๋ค์ ๋ฉ์์ง ๋ฐ ํ๋กฌํํธ๊ฐ ํ์๋๋ฉด y๋ฅผ ์ ๋ ฅํ์ฌ ์ ํค๋ฅผ ์์ฑํฉ๋๋ค.
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
๋ค์ ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ํค๊ฐ ์์ฑ๋์๋์ง ํ์ธํฉ๋๋ค. ์ด๋ฌํ ๋น๊ณต๊ฐ ํค๋ฅผ ์์ ํ๊ฒ ๋ณด๊ดํ ์ฑ
์์ ์ฌ์ฉ์์๊ฒ ์์ต๋๋ค. ํค ํ์ผ ์ด๋ฆ์๋ Google Cloud ํ๋ก์ ํธ ์ด๋ฆ์ด ํ๋ฆฌํฝ์ค๋ก ์ถ๊ฐ๋ฉ๋๋ค.
ls $HYBRID_FILES/service-accounts
๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ํ์๋ฉ๋๋ค.
project_id-apigee-non-prod.json
create-service-account
๋ฐ ๋ชจ๋ ์ต์ ์ ๋ํ ์์ธํ ๋ด์ฉ์create-service-account
๋ฅผ ์ฐธ์กฐํ์ธ์.- ๊ด๋ จ Google Cloud ๊ฐ๋ ์ ๋ํ ์์ธํ ๋ด์ฉ์์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ์ ์๋น์ค ๊ณ์ ํค ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
Google Cloud console ์์ ๋๋ gcloud
๋ก ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ
GKE์์ ์ํฌ๋ก๋ ์์ด๋ดํฐํฐ๋ฅผ ์ฌ์ฉํ์ฌ Hybrid ๋ฐํ์ ๊ตฌ์ฑ์์๋ฅผ ์ธ์ฆํ๋ ค๋ ๊ฒฝ์ฐ ์๋น์ค ๊ณ์ ์ ์ธ์ฆ์ ํ์ผ์ ๋ง๋ค๊ณ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ create-service-account
๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์. ๋์ Google Cloud console ์์ ๋๋ gcloud
์์ IAM API๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ create-service-account
๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ๋ก ๊ฑด๋๋๋๋ค.
์ฝ์
์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ์ ์๋ด๋ฅผ ๋ฐ๋ผ ๋ค์ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ ๋ค์ ์ญํ ์ ์๋น์ค ๊ณ์ ์ ํ ๋นํฉ๋๋ค.
๋นํ๋ก๋์
๋นํ๋ก๋์ ์ค์น:
์๋น์ค ๊ณ์ ์ด๋ฆ | IAM ์ญํ |
---|---|
apigee-non-prod |
|
ํ๋ก๋์
ํ๋ก๋์ ์ค์น:
ํ๋ก๋์ ์ค์น | |
---|---|
์๋น์ค ๊ณ์ ์ด๋ฆ | IAM ์ญํ |
apigee-cassandra |
์คํ ๋ฆฌ์ง ๊ฐ์ฒด ๊ด๋ฆฌ์ |
apigee-logger |
๋ก๊ทธ ์์ฑ์ |
apigee-mart |
Apigee Connect ์์ด์ ํธ |
apigee-metrics |
๋ชจ๋ํฐ๋ง ์ธก์ ํญ๋ชฉ ์์ฑ์ |
apigee-runtime |
์ญํ ํ์ ์์ |
apigee-synchronizer |
Apigee ๋๊ธฐํ ๊ด๋ฆฌ์ |
apigee-udca |
Apigee ์ ๋๋ฆฌํฑ์ค ์์ด์ ํธ |
apigee-watcher |
Apigee ๋ฐํ์ ์์ด์ ํธ |
gcloud
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ IAM ์ญํ ์ ํ ๋นํฉ๋๋ค.
๋นํ๋ก๋์
๋นํ๋ก๋์ ์ค์น:
apigee-non-prod
์๋น์ค ๊ณ์ ์ ๋ง๋ญ๋๋ค.gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- ์๋น์ค ๊ณ์ ์ IAM ์ญํ ์ ํ ๋นํฉ๋๋ค.
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- ์ญํ ๋ฐ์ธ๋ฉ์ ํ์ธํฉ๋๋ค.
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
ํ๋ก๋์
ํ๋ก๋์ ์ค์น:
๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ ์์ํ๋ IAM ์ญํ ์ ํ ๋นํฉ๋๋ค.
apigee-cassandra
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
apigee-logger
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
apigee-mart
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
apigee-metrics
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
apigee-runtime
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
apigee-synchronizer
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
apigee-udca
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
apigee-watcher
์๋น์ค ๊ณ์ :gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
gcloud
๋ก ์๋น์ค ๊ณ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ด์ ์๋น์ค ๊ณ์ ์ ๋ง๋ค๊ณ Apigee Hybrid ๊ตฌ์ฑ์์์ ํ์ํ ์ญํ ์ ํ ๋นํ์ต๋๋ค. ๋ค์์ผ๋ก ํ์ด๋ธ๋ฆฌ๋ ์ธ๊ทธ๋ ์ค ๊ฒ์ดํธ์จ์ด์์ ํ์ํ TLS ์ธ์ฆ์๋ฅผ ๋ง๋ญ๋๋ค.
1 2 3 4 (๋ค์) 5๋จ๊ณ: TLS ์ธ์ฆ์ ๋ง๋ค๊ธฐ 6 7 8 9 10 11