Изучите регионы AWS и идентичность ресурсов

AWSBeginner
Практиковаться сейчас

Введение

Команда, занимающаяся отчётами, запускает приложение в двух местах. Каждому месту нужна собственная метка сервиса, хотя настройка имеет одинаковое имя. Вы создадите две настройки, сравните их, измените одно значение и удалите только свои учебные ресурсы.

Сначала выполните работу Первые шаги с AWS на LabEx. Здесь вам понадобятся освоенные в ней основы Terminal, AWS CLI, идентичности, параметров и AWS View. Эта работа начинается независимо: инструменты и подключение готовы, а прежние файлы, ресурсы и учётные данные не используются.

Parameter Store хранит именованные настройки. Ваш /labex/onboarding/service-label будет обычным String, а не секретом. В каждом регионе уже есть посторонний параметр /labex/reference/team; сохраните его. AWS View показывает те же ресурсы, которые вы запрашиваете через CLI.

Связь с сертификацией

Эта лабораторная работа помогает на практике изучить следующие темы экзаменов.

Создайте свой первый региональный ресурс

На этом шаге вы создадите настройку приложения в восточном регионе и увидите её в AWS View.

Нажмите Terminal и перейдите в подготовленный рабочий каталог:

cd /home/labex/project

В предыдущей работе все запросы использовали одно место. Команда может запускать приложения рядом с пользователями в разных частях мира, поэтому нужно выбирать, на какое место действует команда. Регион AWS — это географическая область, где работают сервисы. us-east-1 — код US East (N. Virginia), а us-west-2 — US West (Oregon). Параметр --region выбирает, где выполняется этот запрос. Ваша первая настройка будет находиться в us-east-1.

В одном аккаунте есть две отдельные региональные настройки с одинаковым именем

Схема понятия: настройки относятся к разным регионам. Создание одной не копирует её в другой.

Создайте её:

aws ssm put-parameter --name /labex/onboarding/service-label --type String --value finance-east --region us-east-1

ssm выбирает Systems Manager, а put-parameter записывает настройку. --name задаёт имя ресурса, --type String означает обычный текст, а --value передаёт этот текст. Косые черты упорядочивают имя AWS; они не создают локальные папки.

Ответ содержит "Version": 1. Вы создали первую версию. Прочитайте сохранённую настройку:

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1

Найдите Name, Value и Version в Parameter: имя заканчивается на service-label, значение равно finance-east, а версия — 1.

Нажмите AWS View рядом с Terminal. Проследите путь Terminal → Parameter Store → карточки регионов. В us-east-1 найдите новый параметр и сравните его значение с ответом CLI. Карточка us-west-2 содержит только эталонный параметр. Этот ресурс создан в одном регионе; он не был скопирован в другой.

Проверка выполнения читает вашу восточную настройку. Оставьте эталонные параметры без изменений.

Создайте такое же имя в другом регионе

На этом шаге вы создадите параметр с тем же именем во втором регионе и убедитесь, что два ресурса остаются независимыми.

В официальной Console меню Region выбирает место, которое вы просматриваете. Его названия и коды соответствуют параметру --region в CLI:

Меню Region официальной Console с N. Virginia us-east-1 и Oregon us-west-2

Источник: Руководство по AWS Console.

Теперь создайте метку западного приложения. Она использует прежнее имя, но другое значение --region и другое значение параметра:

aws ssm put-parameter --name /labex/onboarding/service-label --type String --value finance-west --region us-west-2

Ответ снова содержит "Version": 1. Это новый ресурс на западе, а не версия 2 восточного ресурса.

Прочитайте каждое сохранённое значение. get-parameter запрашивает у сервиса именованный ресурс:

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1
aws ssm get-parameter --name /labex/onboarding/service-label --region us-west-2

Оба ответа содержат объект Parameter с Name, Type, Value, Version и ARN. Сравните значения: восток возвращает finance-east, запад — finance-west. Имя одинаковое. ARN — это полный идентификатор ресурса; пока обратите внимание на us-east-1 в одном и us-west-2 в другом. Следующий шаг объясняет остальные части. AWS View показывает две отдельные карточки регионов. Появление ресурса в одном регионе не означает, что он существует в другом.

Параметры с одинаковым именем имеют разные региональные значения и ARN

В этом примере восточный и западный ресурсы показаны вместе. Идентификаторы аккаунтов и значения приведены для примера; используйте фактические поля из ответов на свои запросы.

Прочитайте идентификатор ресурса и измените только значение

На этом шаге вы разберёте ARN ресурса и обновите восточную настройку, не меняя её идентичность или западное значение.

Amazon Resource Name (ARN) идентифицирует ресурс. В AWS View найдите ARN под своей восточной настройкой. Для этого параметра он выглядит так:

arn:aws:ssm:us-east-1:ACCOUNT_ID:parameter/labex/onboarding/service-label

ARN указывает сервис, регион, аккаунт и имя ресурса

Прочитайте только части, нужные для определения этого параметра; запоминать формат не требуется.

Пока найдите сервис (ssm), регион (us-east-1), идентификатор аккаунта и имя параметра. Сравните западный ARN: его регион отличается, хотя имя одинаковое. ARN вызывающей идентичности, который вы видели в подготовительной работе, идентифицирует пользователя; этот ARN идентифицирует ресурс конфигурации. Запоминать форматы ARN не требуется.

Прочитайте восточную настройку перед изменением:

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1

Имя — /labex/onboarding/service-label; значение — finance-east. Они отвечают на разные вопросы: какую настройку вы читаете и какие данные она содержит? Само по себе изменение данных не переименовывает и не перемещает ресурс. Обычно put-parameter не позволяет случайно заменить существующий параметр; добавление --overwrite явно разрешает обновление значения. Обновите только восток:

aws ssm put-parameter --name /labex/onboarding/service-label --type String --value finance-east-reviewed --overwrite --region us-east-1

Ответ содержит "Version": 2. Прочитайте оба ресурса:

aws ssm get-parameter --name /labex/onboarding/service-label --region us-east-1
aws ssm get-parameter --name /labex/onboarding/service-label --region us-west-2

Восточное значение теперь равно finance-east-reviewed, а его Version — 2; при этом ARN не изменился. Запад по-прежнему возвращает finance-west с Version 1. Проверьте эти поля в обоих ответах JSON и в AWS View. Это различие помогает позже разбирать ошибки: правильное имя в неправильном регионе указывает на другой ресурс, а обновлённое значение может по-прежнему принадлежать тому же ресурсу.

Изменились только восточное значение и версия

Восточная метка обновлена до Version 2, а западная остаётся с Version 1. Оба эталонных параметра сохраняются.

Удалите только учебные ресурсы onboarding

На этом шаге вы удалите два созданных параметра и подтвердите, что эталонный набор ресурсов остался целым.

Для очистки следует использовать имена и регионы собственных ресурсов. delete-parameter удаляет именованный параметр. Успешный вызов может ничего не вывести; одно лишь отсутствие вывода не доказывает, что после него вы запросили правильный регион.

aws ssm delete-parameter --name /labex/onboarding/service-label --region us-east-1
aws ssm delete-parameter --name /labex/onboarding/service-label --region us-west-2

describe-parameters выводит метаданные параметров в выбранном регионе, в том числе имена и версии. Он не возвращает их значения. Успешно запросите оба региона:

aws ssm describe-parameters --region us-east-1
aws ssm describe-parameters --region us-west-2

Ваш /labex/onboarding/service-label отсутствует в обоих списках. Подготовленный /labex/reference/team по-прежнему присутствует. Прочитайте этот эталонный параметр в обоих регионах, чтобы подтвердить неизменность его значения:

aws ssm get-parameter --name /labex/reference/team --region us-east-1
aws ssm get-parameter --name /labex/reference/team --region us-west-2

Оба возвращают platform. Теперь AWS View показывает в каждом регионе только эталонный параметр. Не удаляйте эталонный набор ресурсов. Ошибки подключения или аутентификации не доказывают очистку; проверка выполнения требует успешных запросов к сервису и сохранённых эталонных данных.

Резюме

Вы создали параметры с одинаковым именем в двух регионах, прочитали разные значения и ARN, изменили только восточное значение и удалили два своих ресурса, сохранив эталонные. AWS View позволил увидеть изменения в сервисе рядом с результатами CLI. Далее используйте запросы CLI, чтобы находить нужные ресурсы в более крупном наборе.