Link do strony: https://cloud.google.com/
Dla nowych użytkowników istnieje możliwość wykorzystania zasobów do wartości $300
Ponad 20 produktów dostępnych darmowo w ramach odnawialnych, miesięcznych limitów, w szczególności:
e2-micro
w regionie
us-west1
, us-central1
lub
us-east1
gcloud
CLIDokumentacja: https://cloud.google.com/sdk/gcloud
Aplikacja CLI dająca dostęp do możliwości GCP
Pierwsze kroki:
$ gcloud auth login
$ gcloud projects create aplikacje-w-chmurze
$ gcloud config set project aplikacje-w-chmurze
Lista dostępnych obrazów:
$ gcloud compute images list
...
NAME PROJECT FAMILY DEPRECATED STATUS
ubuntu-minimal-2204-jammy-v20230425 ubuntu-os-cloud ubuntu-minimal-2204-lts READY
...
Lista stref i regionów:
$ gcloud compute zones list
NAME REGION STATUS NEXT_MAINTENANCE TURNDOWN_DATE
...
us-east1-b us-east1 UP
us-east1-c us-east1 UP
us-east1-d us-east1 UP
us-central1-c us-central1 UP
us-central1-a us-central1 UP
us-central1-f us-central1 UP
us-central1-b us-central1 UP
us-west1-b us-west1 UP
us-west1-c us-west1 UP
us-west1-a us-west1 UP
...
Lista dostępnych typów maszyn:
$ gcloud compute machine-types list --zones us-east1-b,us-east1-c,us-east1-d
NAME ZONE CPUS MEMORY_GB DEPRECATED
...
e2-micro us-east1-b 2 1.00
e2-micro us-east1-c 2 1.00
e2-micro us-east1-d 2 1.00
...
Stworzenie maszyny wirtualnej:
$ gcloud compute instances create NAZWA \
--image-family ubuntu-minimal-2204-lts \
--image-project ubuntu-os-cloud \
--machine-type e2-micro \
--zone us-east1-b
Połączenie SSH:
$ gcloud compute ssh NAZWA
Wypisanie listy instancji:
$ cloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
NAZWA us-east1-b e2-micro ?.?.?.? ?.?.?.? RUNNING
Usunięcie maszyny wirtualnej:
$ gcloud compute instances delete NAZWA
W przypadku wykorzystania Ansible:
gcloud compute ssh
, bo krok ten konfiguruje klucze SSH na
maszynie~/.ssh/google_compute_engine
LUB skonfigurować
Ansible do szukania kluczy w podanej ścieżceKorzystając z GUI/CLI jesteśmy w stanie stworzyć i zarządzać infrastrukturą
Otrzymujemy jednak bardzo podstawowe funkcje i większość logiki trzeba by zaprogramować samemu (np. sprawdź czy instancja istnieje, jeśli nie to stwórz ją i obsłuż błędy)
Podejściem, które lepiej wpisuje się w ideę Infrastructre-as-Code jest Terraform
W ramach Terraform opisujemy infrastrukturę w postaci zwięzłego, deklaratywnego kodu/konfiguracji
Oprogramowanie Terraform współpracuje z wieloma różnymi dostawcami infrastruktury oraz wspiera liczne wtyczki tworzone przez społeczność
Terraform przygotowuje listę zmian (operacji do wykonania), które skutkują ustanowieniem pożądanej konfiguracji infrastruktury
Projekt Terraform tworzy się w dedykowanym katalogu w plikach o
rozszerzeniu .tf
Pierwsze uruchomienie:
terraform init
Zlecenie zastosowania zmian:
terraform apply
Usuwanie zasobów:
terraform destroy