Google Cloud Platform (GCP)

Contents

GCP Fundamentals

Core Concepts

  • Projects and Organizations
  • Regions and Zones
  • Resource Hierarchy
  • Cloud Console
  • Cloud Shell
# Initialize gcloud gcloud init # List Projects gcloud projects list # Set Project gcloud config set project my-project-id # List Available Zones gcloud compute zones list

Compute Services

Compute Engine

# Create VM Instance gcloud compute instances create my-instance \ --zone=us-central1-a \ --machine-type=e2-medium \ --image-family=debian-10 \ --image-project=debian-cloud # Instance Operations gcloud compute instances start my-instance --zone=us-central1-a gcloud compute instances stop my-instance --zone=us-central1-a gcloud compute instances delete my-instance --zone=us-central1-a

Cloud Functions

# Deploy Function gcloud functions deploy my-function \ --runtime nodejs14 \ --trigger-http \ --entry-point helloWorld # Example Function exports.helloWorld = (req, res) => { res.send('Hello from Cloud Functions!'); };

Storage and Databases

Cloud Storage

# Create Bucket gsutil mb gs://my-bucket-name # Upload Files gsutil cp local-file.txt gs://my-bucket-name/ gsutil rsync -r local-directory gs://my-bucket-name/ # Set Bucket Policy gsutil iam ch allUsers:objectViewer gs://my-bucket-name

Cloud SQL

# Create MySQL Instance gcloud sql instances create my-instance \ --database-version=MYSQL_8_0 \ --tier=db-f1-micro \ --region=us-central1 # Create Database gcloud sql databases create mydatabase \ --instance=my-instance # Connect to Database gcloud sql connect my-instance --user=root

Networking

VPC Networks

# Create VPC Network gcloud compute networks create my-network \ --subnet-mode=custom # Create Subnet gcloud compute networks subnets create my-subnet \ --network=my-network \ --region=us-central1 \ --range=10.0.0.0/24 # Create Firewall Rule gcloud compute firewall-rules create allow-ssh \ --network=my-network \ --allow=tcp:22

Load Balancing

# Create HTTP Load Balancer gcloud compute url-maps create web-map \ --default-service web-backend-service gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map gcloud compute forwarding-rules create http-content-rule \ --global \ --target-http-proxy http-lb-proxy \ --ports 80

Kubernetes Engine (GKE)

Cluster Management

# Create Cluster gcloud container clusters create my-cluster \ --zone us-central1-a \ --num-nodes 3 # Get Credentials gcloud container clusters get-credentials my-cluster \ --zone us-central1-a # Deploy Application kubectl create deployment hello-app \ --image=gcr.io/google-samples/hello-app:1.0 kubectl expose deployment hello-app \ --type=LoadBalancer \ --port=80 \ --target-port=8080

Node Pools

# Create Node Pool gcloud container node-pools create new-pool \ --cluster my-cluster \ --zone us-central1-a \ --num-nodes 2 \ --machine-type n1-standard-2 # Autoscaling gcloud container clusters update my-cluster \ --enable-autoscaling \ --min-nodes 1 \ --max-nodes 5 \ --zone us-central1-a

Security and IAM

IAM Management

# Add IAM Policy Binding gcloud projects add-iam-policy-binding my-project \ --member="user:john@example.com" \ --role="roles/editor" # Create Service Account gcloud iam service-accounts create my-service-account \ --display-name="My Service Account" # Generate Key gcloud iam service-accounts keys create key.json \ --iam-account=my-service-account@my-project.iam.gserviceaccount.com

Security Policies

# Create Security Policy gcloud compute security-policies create my-policy \ --description="My security policy" # Add Rule gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --description="Allow internal traffic" \ --action="allow" \ --src-ip-ranges="10.0.0.0/8"

Monitoring and Operations

Cloud Monitoring

# Install Monitoring Agent curl -sSO https://dl.google.com/cloudagents/add-monitoring-agent-repo.sh sudo bash add-monitoring-agent-repo.sh sudo apt-get update sudo apt-get install stackdriver-agent # Create Alert Policy gcloud beta monitoring policies create \ --display-name="High CPU Usage" \ --conditions="metric.type='compute.googleapis.com/instance/cpu/utilization' comparison.gt.threshold=0.8" \ --notification-channels="projects/my-project/notificationChannels/12345"

Cloud Logging

# View Logs gcloud logging read "resource.type=gce_instance" \ --limit=10 # Create Log Sink gcloud logging sinks create my-sink \ storage.googleapis.com/my-bucket \ --log-filter="resource.type=gce_instance"

Machine Learning

AI Platform

# Create Model gcloud ai-platform models create my-model \ --regions=us-central1 # Deploy Model gcloud ai-platform versions create v1 \ --model my-model \ --origin gs://my-bucket/model \ --runtime-version 2.4 \ --framework tensorflow \ --python-version 3.7

AutoML

# Create Dataset gcloud automl tables datasets create \ --display-name=my-dataset \ --region=us-central1 # Import Data gcloud automl tables import \ gs://my-bucket/data.csv \ --dataset-id=my-dataset \ --region=us-central1