Créer un service de backend externe
< Cloud computing | Google Cloud Platform | Procédures diverses
Sauter à la navigation
Sauter à la recherche
Révision datée du 3 novembre 2022 à 08:55 par Jordan (discussion | contributions) (Page créée avec « ==Présentation== Cette section a pour objet de regrouper tous les sujets traitant de la plateform de cloud computing de Google : Google Cloud Platform. ==Contexte== ==… »)
Présentation
Cette section a pour objet de regrouper tous les sujets traitant de la plateform de cloud computing de Google : Google Cloud Platform.
Contexte
Mise en œuvre
export PARENT_FOLDER_ID=123456789
export PROJECT_FOLDER_NAME=my-great-project
export PROJECT_STEP=prod
export PROJECT_NAME=${PROJECT_FOLDER_NAME}-${PROJECT_STEP}
export BILLING_ACCOUNT_ID=123ABC-456DEF-789GHI
export REGION=europe-west9
gcloud resource-manager folders create \
--display-name=$PROJECT_FOLDER_NAME \
--folder=$PARENT_FOLDER_ID
export PROJECT_FOLDER_ID=$(gcloud resource-manager folders list \
--folder=$PARENT_FOLDER_ID \
--filter 'displayName='$PROJECT_FOLDER_NAME \
--format="value(ID)")
gcloud projects create $PROJECT_NAME \
--folder=$PROJECT_FOLDER_ID
wait ....
export PROJECT_ID=$(gcloud projects list \
--filter 'name='$PROJECT_NAME \
--format="value(projectId)")
gcloud beta billing projects link ${PROJECT_ID} \
--billing-account=${BILLING_ACCOUNT_ID}
gcloud services enable compute.googleapis.com \
--project=${PROJECT_ID}
gcloud compute addresses create ${PROJECT_NAME}-ip \
--network-tier=PREMIUM \
--ip-version=IPV4 \
--global \
--project=${PROJECT_ID}
Optionnel :
export IP_ADDRESS=$(gcloud compute addresses describe ${PROJECT_NAME}-ip \
--format="get(address)" \
--global \
--project=${PROJECT_ID})
gcloud compute ssl-certificates create ${PROJECT_NAME}-mydomain-cert \
--description="SSL cert for mydomain front" \
--domains=www.mydomain.com,mydomain.com \
--global \
--project=${PROJECT_ID}
gcloud compute ssl-certificates create ${PROJECT_NAME}-mydomain-cert-temp \
--certificate=mydomain.com.fullchain.pem \
--private-key=mydomain.com.privkey.pem \
--global \
--project=${PROJECT_ID}
gcloud compute network-endpoint-groups create ${PROJECT_NAME}-my-external-server-neg \
--global \
--network-endpoint-type=INTERNET_IP_PORT \
--default-port=80 \
--project=${PROJECT_ID}
NB : adresse IP factice
gcloud compute network-endpoint-groups update ${PROJECT_NAME}-my-external-server-neg \
--global \
--add-endpoint=ip=111.222.333.444,port=80 \
--project=${PROJECT_ID}
gcloud compute backend-services create ${PROJECT_NAME}-my-external-server-be \
--load-balancing-scheme=EXTERNAL \
--enable-logging \
--logging-sample-rate=1 \
--global \
--project=${PROJECT_ID}
gcloud compute backend-services add-backend ${PROJECT_NAME}-my-external-server-be \
--global \
--network-endpoint-group=${PROJECT_NAME}-my-external-server-neg \
--global-network-endpoint-group \
--project=${PROJECT_ID}
cat <<EOF>/tmp/url.yaml
defaultUrlRedirect:
httpsRedirect: true
redirectResponseCode: MOVED_PERMANENTLY_DEFAULT
stripQuery: false
kind: compute#urlMap
name: ${PROJECT_NAME}-http-to-https-lb
EOF
gcloud compute url-maps validate \
--source=/tmp/url.yaml \
--project=${PROJECT_ID}
gcloud compute url-maps import ${PROJECT_NAME}-http-to-https-lb \
--source /tmp/url.yaml \
--global \
--project=${PROJECT_ID}
gcloud compute url-maps create ${PROJECT_NAME}-my-external-server-lb \
--default-service ${PROJECT_NAME}-my-external-server-be \
--project=${PROJECT_ID}
gcloud compute target-http-proxies create ${PROJECT_NAME}-http-proxy \
--url-map=${PROJECT_NAME}-http-to-https-lb \
--global \
--project=${PROJECT_ID}
gcloud compute target-https-proxies create ${PROJECT_NAME}-https-proxy \
--ssl-certificates=${PROJECT_NAME}-mydomain-cert-temp,${PROJECT_NAME}-mydomain-cert \
--url-map=${PROJECT_NAME}-my-external-server-lb \
--project=${PROJECT_ID}
gcloud compute forwarding-rules create ${PROJECT_NAME}-http-rule \
--load-balancing-scheme=EXTERNAL \
--network-tier=PREMIUM \
--address=${PROJECT_NAME}-ip \
--global \
--target-http-proxy=${PROJECT_NAME}-http-proxy \
--ports=80 \
--project=${PROJECT_ID}
gcloud compute forwarding-rules create ${PROJECT_NAME}-https-rule \
--load-balancing-scheme=EXTERNAL \
--network-tier=PREMIUM \
--address=${PROJECT_NAME}-ip \
--target-https-proxy=${PROJECT_NAME}-https-proxy \
--global \
--ports=443 \
--project=${PROJECT_ID}
gcloud compute target-https-proxies update ${PROJECT_NAME}-https-proxy \
--ssl-certificates=${PROJECT_NAME}-mydomain-cert \
--project=${PROJECT_ID}