Регионы и зоны доступности

В этой статье рассмотрим 2 важных понятия AWS: регионы (Regions) и зоны доступности (Availability Zones). Они необходимы для понимания где же ваши сервисы будут располагаться физически, что позволит строить более отказоустойчивые системы.

Regions

Список регионов На данный момент доступны 14 регионов, каждый из которых полностью изолирован от остальных и представляет собой географически объединённую группу ЦОД. Название региона строится по следующему принципу: глобальный префикс (США us, Канада ca, Европа eu, Азия ap и Южная Америка sa), за ним локация (east, west, south) и в конце порядковый номер. Допустим, Лондон будет eu-west-2, Сеул ap-northeast-2, Мумбаи ap-south-1. Вы можете строить инфраструктуру как можно ближе к пользователям, чтобы сократить время задержки ответов (здесь можно проверить пинг от вас до каждого региона). Однако, каждый регион имеет свою специфику как по доступным сервисам, так и по ценам. Например, одна и та же виртуалка t2.nano при покупке на год будет стоить в Огайо всего $34, в Ирландии — $37, а в Сеуле уже $51. Разница весьма ощутима. Как правило самый дешёвый регион — us, за ним идёт eu и ca и самый дорогой — ap и sa.

Помимо цен стоит обратить внимание и на список сервисов, доступных в выбранном регионе. Базовые типа EC2, RDS, ElastiCache или SQS доступны в каждом, но вот тот же SES (отправка почты) есть только в Ирландии (eu-west), Северной Вирджинии (us-east) и Орегоне (us-west). Так что, если вы решили разместиться во Франкфурте (eu-central), то письма всё равно придётся отправлять из Ирландии. Отсутствие SES, конечно, не так страшно, но вот с сервисами, которые чувствительны к задержкам, надо быть аккуратнее. Абсолютно всё есть в Северной Вирджинии, но мало чем уступает и Ирландия, так что я советую остановиться на выборе из этих двух регионов, если большинство ваших пользователей из США, Европы и России.

Availability Zones

Зоны доступности Каждый регион состоит как минимум из двух зон доступности, каждая из которых представляет собой отдельно стоящий ЦОД с независимыми источниками питания и интернет-кабелями. Строго говоря, в одной AZ может быть и несколько датацентров, но для простоты я буду использовать отношение 1-к-1. Указывается конкретный ЦОД с помощью буквы после региона. Например, us-east-1e это пятый ЦОД в Северной Вирджинии. Да, где-то их 5, а вот в соседней Канаде всего 2. Однако, в целях равномерного распределения нагрузки буквы перемешиваются. То есть физически us-east-1a у одного аккаунта может быть us-east-1d у другого.

Трафик между несколькими AZ внутри одного региона бесплатен. Даже более того — для production везде, где только можно (RDS, Load Balancer, ElastiCache), рекомендуется ставить галочку Multi-AZ, чтобы неполадки в одном датацентре не привели к сбою всего приложения. Стоить это будет соответственно в 2 раза больше 🙂

Endpoints

Отдельно хотелось бы поговорить об адресах, которые получают ваши сервисы. Как правило, все они строятся по следующей схеме: <ваше название>.<уникальный идентификатор>.<регион>.<сервис>.amazonaws.com. Например, для моей RDS URL будет таким geopuzzle.cd1hw1nj0qdz.eu-west-1.rds.amazonaws.com. Полный же список суффиксов можно посмотреть здесь.