Целью работы является знакомство студентов с платформой облачных сервисов Google Cloud Platform.
В ходе работы студенты:
Google Cloud Platform (GCP) использует систему аутентификации на основе учетной записи Google. Вход в веб-консоль осуществляется через Google Cloud Console, где пользователи управляют облачными ресурсами. В отличие от AWS, где используется IAM с отдельными учетными записями для каждого пользователя, в GCP доступ регулируется через Google Identity and Access Management (IAM) с привязкой к Google-аккаунту.
После входа пользователи видят дашборд, где можно управлять проектами, ресурсами, мониторингом и биллингом. Консоль GCP напоминает AWS Management Console, но с упором на интеграцию с Google-сервисами. Для работы с GCP также можно использовать Google Cloud SDK (gcloud CLI), аналог AWS CLI, что позволяет автоматизировать управление ресурсами.
В GCP проект (Project) — это основная единица организации ресурсов, аналогичная AWS Account. Все ресурсы (виртуальные машины, базы данных, хранилища и т. д.) создаются внутри проекта. У каждого проекта есть уникальный идентификатор (Project ID), который используется в API-запросах и командной строке.
Для работы с платными ресурсами необходимо привязать Billing Account (биллинг-аккаунт) к проекту. В отличие от AWS, где платежная информация привязана к аккаунту, в GCP биллинг-аккаунт можно использовать сразу для нескольких проектов. Это упрощает управление расходами в крупных организациях.
Создание ресурсов в GCP похоже на AWS, но с некоторыми отличиями. Например, при создании виртуального сервера в AWS, используется EC2 Key Pair для SSH-доступа, однако в GCP можно войти через браузерную консоль или добавить SSH-ключи в Metadata проекта. Кроме того, в GCP при удалении виртуальной машины связанные диски не удаляются автоматически, в отличие от AWS, где корневой EBS том можно настроить на автоматическое удаление.
Таким образом, несмотря на схожесть с AWS, GCP имеет свои особенности, которые важно учитывать при работе с облачными ресурсами.
Шаг 1. Получение доступа в веб-консоль
Сообщите преподавателю Google-аккаунт (Gmail), который будет использоваться для работы в GCP. Дождитесь приглашения в проект, созданный преподавателем (IMI-SVFU). Приглашение будет отправлено на почту указанного аккаунта.
Откройте почту Gmail и найдите письмо с приглашением в проект GCP. Примите приглашение, после чего вас перенаправит на страницу Google Cloud.
Откройте в браузере Google Cloud Console по ссылке: https://console.cloud.google.com. Если требуется, подтвердите свою личность, войдя в аккаунт Google. Если вы входите в первый раз, то GCP попросит выбрать страну, выберите любую по своему усмотрению.
В верхней части страницы, рядом с логотипом Google Cloud, нажмите на выпадающее меню выбора проекта и выберите проект, созданный преподавателем (IMI-SVFU).
Самостоятельно ознакомьтесь с элементами интерфейса веб-консоли GCP.
Шаг 2. Создание виртуального сервера
В меню слева выберите Compute Engine → VM Instances.
Нажмите кнопку Create Instance (Создать инстанс).
<группа>-<фамилия>.europe-north1 (Finland) либо europe-north2 (Stockholm).В списке инстансов найдите созданную VM, нажмите SSH, чтобы открыть терминал во всплывающем окне браузере. Установите веб-сервер:
sudo apt update
sudo apt install -y nginx
Q):
systemctl status nginx
sudo ss --numeric --listening --processes --tcp
Откройте в браузере внешний IP-адрес VM (его можно найти в списке инстансов) и убедитесь, что отображается стартовая страница Nginx.
Вернитесь в терминал и запустите дополнительный веб-сервер:
index.html с произвольным сообщением:
echo "Hello World!" > index.html
python3 -m http.server 8080
Разрешите доступ по альтернативному TCP-порту 8080:
http-server-8080 и нажмите кнопку Save.В браузере откройте адрес http://[EXTERNAL_IP]:8080. Убедитесь, что отображается index.html с текстом вашего сообщения.
Шаг 3. Создание облачного хранилища файлов
<Группа>-<Фамилия>.Regioneurope-north1index.html с произвольным содержимым.Шаг 4. Включение статического веб-хостинга
В списке бакетов на строке с вашим бакетом нажмите кнопку ⋮ и выберите Edit website configuration, в поле Index (main) page suffix введите index.html и нажмите Save.
Откройте ваш бакет, перейдите во вкладку Permissions, в разделе View by principals нажмите Grant Access. В открывшейся справа панели:
allUsers.Storage Object Viewer.Убедитесь что на вкладке Permissions, панель Public access имеет предупреждение Public to internet. Если вместо этого отображается Not public, то нажмите кнопку Revove Public Access Prevention и подтвердите отключение блокировки публичного доступа.
На вкладке Objects в строке с файлом index.html найдите и скопируйте Public URL. Откройте URL в браузере и убедитесь, файл успешно открывается.
Шаг 5. Работа с интерфейсом командной строки
В правой верхней части веб-консоли нажмите кнопку Activate Cloud Shell (либо нажмите последовательно клавиши G и S) и дождитесь открытия в нижней части окна панели с интерфейсом командной строки.
gcloud compute instances list
gcloud compute instances delete <имя сервера> --zone <имя зоны>
gcloud storage buckets list
gcloud storage buckets delete <имя бакета>