Vpc aws что это
Работа в Amazon WorkSpaces: опыт развертывания и настройки
Анатомия современной «удаленки»
Работа удаленно сегодня может ничем не отличаться по эффективности от работы в офисе, но при одном базовом условии. Рабочее пространство, среда, в которой оперирует сотрудник, должна обладать всеми привычными инструментами, используемыми сотрудниками для решения повседневных задач.
Сегодня это в подавляющем большинстве случаев – ИТ-сервисы, приложения, корпоративные системы и базы данных, доступ к которым обеспечивается удаленно по сети Интернет, FTP и другим протоколам. По большому счету весь переход на удаленный режим упирается в способность компании предоставить сотруднику доступ к его привычному рабочему столу в любой точке мира.
При этом, помимо грамотно составленного набора ИТ-инструментов и онлайн-решений, чрезвычайно важны скорость и качество связи, а также защищенность всех операций.
Все существующие сегодня решения по организации удаленной работы делятся на три базовых типа по своей функциональности:
Что такое Amazon WorkSpaces
С учетом всех факторов, а также опыта тестирования различных инструментов из всех трех категорий, мы остановили свой выбор при развертывании ИТ-среды для удаленной офисной работы на решении Amazon WorkSpaces.
Amazon WorkSpaces – это удаленный рабочий стол в облаке Amazon, реализуемый по модели Desktop-as-a-Service – DaaS.
Сервис предоставляет доступ по требованию к рабочим столам в облаке и избавляет от необходимости покупать резервные компьютеры. Объемы вычислительных ресурсов, оперативной памяти и дискового пространства таких рабочих столов настраиваются в зависимости от задач компании и потребностей конкретных пользователей.
Amazon WorkSpaces можно использовать для развертывания рабочих столов на базе Windows или Linux. Сервис позволяет быстро масштабировать ресурсы и создавать буквально тысячи рабочих столов для сотрудников по всему миру.
Биллинг осуществляется за фактически использованные ресурсы, что позволяет оптимизировать расходы по сравнению с традиционными рабочими столами и локальными решениями с использованием инфраструктуры виртуальных рабочих столов (VDI). Конечно, для эффективного управления расходами важно уже на старте работы понимать, какие параметры виртуальных машин необходимы для ваших задач, чтобы не переплачивать за избыточные ресурсы.
Владеть и управлять аппаратным обеспечением, обновлять версии ОС и применять исправления, а также администрировать инфраструктуру виртуальных рабочих столов (VDI) – не нужно.
Как устроен сервис: нюансы и тонкости
Для управления информацией о пользователях, подключающихся к удаленным рабочим столам, WorkSpaces использует инструмент AWS Directory Service, который является службой AWS Managed Microsoft AD.
То есть, Amazon WorkSpaces не может работать без сервиса AWS Directory Service, и, следовательно, требуется оплата их обоих. Однако стоит отметить, что и Amazon WorkSpaces, и AWS Directory Service имеют бесплатные пакеты на срок до 1500 часов. Соответственно, есть возможность протестировать решение.
Кроме стандартных рабочих станций сервис Amazon WorkSpaces доступен с vGPU.
Этот пакет предлагает высокопроизводительный виртуальный рабочий стол. Он отлично подходит для разработчиков 3D-приложений и моделей, инженеров, использующих инструменты CAD, CAM или CAE.
Данный пакет доступен во всех регионах, где в настоящее время предлагается WorkSpaces, и может использоваться с любым устройством. Такое решение может стать альтернативой мощным офисным рабочим станциям в дизайн-студиях, которые в период изоляции оказалось невозможно доставить домой к сотрудникам, из-за чего компаниям пришлось либо организовывать закупку дорогостоящих ноутбуков, либо предлагать сотрудникам работу на личных устройствах.
Также, рабочие столы Amazon WorkSpaces с графическими процессорами можно использовать для анализа и визуализации данных. Так как мощности графического пакета находятся рядом с основными сервисами, такими как EC2, RDS, Amazon Redshift, S3 и Kinesis, можно проанализировать данные на сервере и затем визуально оформить результаты в смежном рабочем пространстве.
Эту комбинацию сервисов AWS можно использовать для создания приложений, разработка которых не была бы экономически эффективна при работе на обычных виртуальных машинах без использования графического процессора.
Как проходило тестирование
Мы протестировали сервис, проверив доступность удаленного рабочего стола из Интернета и с тестовой виртуальной машины в нашем облаке в Санкт-Петербурге.
1. Установили связность между нашей инфраструктурой в ЦОДе и нашим VPC (virtual private cloud) в AWS. Здесь все стандартно — настройка BGP, DCC, Virtual Gateway.
2. Определились с AD (Active Directory).
Согласно документации Amazon, можно использовать AD как управляемый Amazon, так и управляемый локально.
3. Для теста мы выбрали схему с AD, управляемым Amazon.
При такой схеме нужно иметь в виду, что на VPC должно быть, как минимум, две подсети из разных зон доступности. Это требование AWS, оно исходит из необходимости физически изолировать серверы AD друг от друга. Необходимо не меньше двух серверов.
Например, в регионе eu-central-1 (Frankfurt) есть три зоны доступности (Availability Zone) — eu-central-1a, eu-central-1b, eu-central-1c.
4. Для теста делаем один префикс в eu-central-1a, один префикс в eu-central-1b.
При создании подсети указываем AZ:
5. Две созданных нами подсети:
6. Создаем Active Directory и WorkSpace.
7. После настройки на указанную почту приходит письмо, в котором есть ссылка для смены пароля на рабочем столе и для скачивания Amazon WorkSpaces для разных платформ – Windows, Linux, MacOS и т. д.
8. Рабочий стол готов.
Прямое подключение к AWS
Для большинства компаний, имеющих собственные AD, будет интересна схема подключения с собственным AD. Для этого дополнительно необходимо настроить прямое выделенное соединение с AWS, через которое клиент может связать свой AD и ресурсы компании, расположенные локально, с облаком Amazon.
Схематично это выглядит так:
Нужно учитывать, что для стабильной работы сервиса задержка между хостом, с которого происходит подключение к рабочему столу, и локацией AWS, где расположен WorkSpaces, не должна превышать 100мс согласно рекомендации Amazon.
В нашем случае мы предлагаем клиентам соединение через Франкфурт — RTT (round-trip time) от Linxdatacenter в Москве и в Санкт-Петербурге до FR5 (точки присутствия на базе ЦОД Equinix во Франкфурте) составляет менее 40мс, что полностью удовлетворяет рекомендациям AWS.
Установка Amazon WorkSpaces на рабочую станцию
1. Устанавливаем приложение на рабочую станцию, с которой планируем подключаться.
2. Вводим Registration Code, который является идентификатором рабочего стола, и логин/пароль, указанные при создании WorkSpace.
3. Рабочий стол доступен на ноутбуке сотрудника.
Скриншот с окном приложения Amazon WorkSpaces, подключенного к удаленному рабочему столу.
4. Теперь свяжем его с системами в компании. В нашем случае – на примере подключения к ВМ в облаке Linxdatacenter в Санкт-Петербурге.
5. В обратную сторону (ВМ в облаке в Санкт-Петербурге –> удаленный рабочий стол) связность также работает.
Развертывание и настройка пакета с vGPU не отличается от стандартной настройки. В момент, когда система предлагает выбрать вам пакет для развертывания, нужно найти нужный нам с графикой и выбрать его для установки.
Параметры минимального пакета с vGPU:
Развернули: что дальше?
Рабочие столы на Amazon WorkSpaces дают возможность мобильным и работающих удаленно сотрудникам использовать любые нужные для работы приложения через облачный рабочий стол, доступный из любой точки с подключением к сети Интернет.
Работает модель использование собственного устройства (BYOD): сервис поддерживает все стационарные ПК, ноутбуки Mac, iPad, Kindle Fire, планшеты на базе Android, Chromebook, а также браузеры Firefox и Chrome.
Если в компании возникают задачи тестирования софтверных новинок собственной разработки, рабочие столы Amazon WorkSpaces также решают эту задачу без повышения стоимости и необходимости хранить резервное оборудование. Самое главное: исходный код не будет храниться на устройствах разработчиков, а это дополнительная защита.
Еще один актуальный сценарий применения Amazon WorkSpaces – оперативное слияние нескольких ИТ-отделов для совместной работы по проекту, когда требуется оперативно синхронизировать работу большого числа специалистов.
Это все на сегодня — задавайте вопросы в комментариях.
Популярно об Amazon Web Services
Вступление
В этом докладе будут рассмотрены сервисы AWS, которые использует наша платформа и с которыми я знаком не по наслышке. Я работаю над проектом, который использует почти все возможные сервисы, а так же мы нацелены в ближайшем будущем охватить ещё больше возможностей, которые предоставляет нам Amazon.
Управление AWS осуществляется как с помощью веб интерфейса (AWS console), так и с помощью Command Line Tools. В консоли собраны все сервисы AWS, но функциональность настройки несколько обрезана. В командной строке же можно более гибко настроить тот или иной сервис, так же доступны закрытые в консоли функции.
Amazon Elastic Compute Cloud (EC2)
Описание
EC2 — это облачный сервис, предоставляющий виртуальные сервера (Amazon EC2 Instance), 2 вида хранилищ данных, а так же балансировщик нагрузки (Load Balancer).
Многие из вас знакомы с VPS — Virtual Private Server. Так вот, EC2 — это не что иное, как сервис, предоставляющий VPS в настоящем облаке, где сервер может легко мигрировать между нодами, а хранилище легко может быть расширено до почти безразмерного. Потому-то в названии и звучит слово Elastic — Эластичный.
Функциональность
EC2 позволяет запускать уже заранее сконфигурированные серверы с предустановленными ОС: Amazon Linux, Red Hat EL, Suse ES, Windows 2008, Oracle EL, Выбор операционных систем выглядит так:
Так же возможно создавать свои образы (AMI — Amazon Machine Image) и использовать любой Linux. Наша платформа использует Debian Squeez как основную систему, но, конечно же мы можем запустить и работать практически на любом дистрибутиве Linux, например CentOS или Ubuntu. Так же мы поддерживаем RHEL и Suse ES.
Есть возможность настроить защиту доступа к серверам. EC2 инстансы объединяются в группы безопасности (Security Groups) с возможностью ограничения доступа по портам с IP или подсетей.
Настройка групп безопасности выглядит следующим образом:
Балансировка нагрузки и автомасштабирование являются очень важными функциями EC2. Вы можете создать правила при которых станет возможно автоматически увеличить количество серверов, например, если один или несколько серверов не справляются с нагрузкой. Контроль за здоровьем серверов ведёт ещё один сервис AWS — Amazon Cloud Watch. С помощью этого сервиса можно создавать разного рода проверки — checks — с помощью которых контролируются важнейшие показатели работы ОС.
Добавление почти бесконечного количества дисков с почти бесконечным объёмом хранения. EBS (Elastic Block Storage) — это один из типов хранилища в EC2. Особенность его такова, что диски, создаваемые по этой технологии не зависимы от VPS-ноды и расположены на специальных Storage серверах, в отличии от Instance хранилищ, которые расположены непосредственно на серверах виртуализации.
Используя EBS, к запущенным серверам можно “наживую” добавлять диски любого размера.
Создание диска:
Elastic IP адреса дают возможность быстро менять адрес сервера, например для того, чтоб избежать DNS propagation — времени обновления DNS зоны по всему миру.
Создание мгновенных образов (Snapshot) позволяет создать слепок диска и использовать его в качестве исходника для AMI (Amazon Machine Image), а так же для простой резервной копии ОС.
Типы серверов
Серверы EC2 можно описать следующей таблицей:
* EC2 compute unit — единица измерения производительности процессоров, сопоставимая c производительностью 1.0-1.2 ГГц процессоров Opteron или Xeon.
Биллинг
1,5 раза дешевле. Резервации удобно использовать, если EC2 используется на постоянной основе — экономия на лицо.
Amazon Simple Storage (S3)
Тезисы
Интерфейсы
S3 может управляться с помощью вот такой консоли:
Так же есть официальные и неофициальные инструменты командной строки. Существует огромное количество библиотек для всяческих языков программирования для соединения приложений с S3.
Биллинг
S3 оплачивается помесячно за объём хранимых данных, за запросы и за исходящий траффик. Так же существует Free Tier — 5Гб места, 20.000 запросов скачки, 2.000 запросов закачки и 15 гигабайт трафика в месяц бесплатно.
Amazon Relational Database Service (RDS)
Описание
Выбор выглядит так:
Дисковое пространство RDS инстанса так же заказывается клиентом. Минимальный размер стораджа — 5 Гб.
Существует возможность гибко настроить доступ к серверу БД с помощью групп безопасности. Доступ возможно дать отдельным адресам/подсетям или же группам безопасности EC2 и всем серверам, которые в неё входят. Это полезно, например при автомасштабировании, когда все экземпляры приложения поднимаются в одной группе и имеют доступ к серверу БД.
Так же можно настроить репликацию между серверами баз данных через консоль или утилиты командной строки.
RDS поддерживает мгновенные слепки (Snapshot) и автобекап, давая возможность быстро и качественно восстановить данные.
Если же случаются проблемы с аппаратным обеспечением, RDS автоматически перенесёт ваш хост на здоровую ноду.
При выходе обновлений, СУБД могут быть автоматически пропатчены и перезагружены. Клиенты уведомляются заблаговременно.
Стоит заметить, что root доступа к СУБД нет. Возможности хранения встроенных процедур и тонкие настройки осуществляются через API и утилиты командной строки.
Все RDS инстансы работают на 64 битной платформе.
Типы RDS инстансов
Биллинг
Как и EC2, оплата RDS проводится за каждый час использования рабочего инстанса, его стораджа, отдельная плата берётся за хранение бекапов и снапшотов. Так же считается количество I/O операций.
Так же существуют Резервации (Reservation) — оплата сразу суммы за 3-4 месяца, после чего на год или 3 года почасовая ставка за работу инстанса значительно снижается. В среднем в полтора раза.
Route 53
Описание
Route53 — это облачный DNS сервис от Amazon. Практически самый обычный сервис имён, отличающийся высокой производительностью и ценой. Это на самом деле дешёвый сервис. Имея немаленькие зоны с мелкими TTL? мы лишь не на много выходим за Free Tier — бесплатный лимит использования и платим сущие гроши за ДНС.
Одной из отличительных возможностей Route53 является его интеграция с другими сервисами AWS, такими как EC2 и балансировщиком нагрузки, S3, CloudFront.
Балансировщик нагрузки не имеет статического адреса, но имеет публичое DNS имя. Используя сторонние сервисы, нам бы приходилось использовать CNAME записи, чтоб ссылаться на это имя, но в Route53 имеется специальный тип записей — ALIAS на балансировщик нагрузки. Это позволяет без пропагаций использовать полную функциональность балансировщика.
Так же инетересно, что можно воспользоваться WRR (Weighted Round Robin) записями, которые позволяют делать балансировку нагрузки на уровне DNS.
Управление Route53 осуществляется через консоль или через инструменты командной строки. Так же существуют несколько сторонних сервисов, которые, скажем, более наглядно, чем консоль, показывают состояние зон и дают более удобную настройку. Конда в консоли не было возмоности управлять Route53, сервисы третьих лиц пользовались большой популярностью, я например часто использовал https://interstate53.com для этих целей.
Биллинг
Оплата производится за запросы, которые считаются миллионами штук.
Simple Queue Service (SQS)
Описание
SQS — сервис для построения очередей событий. Требуется такая очередь, например, когда разделены приложения создания имейла и его посылка. Тогда создаётся элемент очереди c телом письма, хедерами и т.п, а приложение отправляющее почту считывает элементы из очереди и рассылает их.
Мы используем очереди SQS для создания и отправки Push сообщений Apple, WP7 и Android. А так же для отправки электронной почты.
Лимитов по количеству очередей и по количеству элементов в очередях Amazon не предоставляет.
Биллинг
В счёт выставляется количество элементов очередей, вышедшее за Free Tier. На данный момент это 100.000. Платится за каждые 10.000 элементов. Так же взимаются средства за трафик, который сгенерировал сервис за месяц.
Simple Email Service (SES)
Описание
SES используется для отправки почты, а точнее рассылок. Высокая репутация IP адресов, высокая производительность серверов, позволяющая слать десятки-сотни тысяч писем в день даёт возможность осуществлять рассылку сообщений от малого до огромного корпоративного размера предприятия.
Особенностью можно считать автоматическое увеличение лимита писем посланных в сутки. С 10 тысяч до миллиона лимит поднимается атоматически в зависимости от ваших нужд посылки. Так же увеличивается лимит количества писем, посланных в секунду. В начале “прокачки” аккаунта этот лимит стоит на 5 штуках в секунду.
Функционал
SES позволяет слать письма через API — непосредственно из приложения. Существуют десятки библиотек, плагинов дающих возможность слать письма обходя SMTP методы. Для тех приложений, которые не могут быть интегрированы с SES через API — существует опция включения SMTP сервера с авторизацией по связке логин-пароль.
Биллинг
Оплачивается в SES за каждые 10.000 посланных писем в месяц. Так же плата взимается за трафик, который генерируется при отправке писем.
Amazon Cloud Watch
Описание
Cloud Watch используется для мониторинга здоровья/состояния преимущественно всех сервисов AWS, включая стандартный мониторинг здоровья серверов, доступность тех или иных портов, сторадж, работу СУБД, место на S3 и очень много всяких других чеков.
В Cloud Watch существует 3 типа состояний — OK, ALARM и UNSUFFICIENT DATA. Названия говорят сами за себя: чек в состоянии ОК, в состоянии ошибки или тревоги, а так же в неизвестном состоянии. На все состояния можно настроить триггеры, которые будут срабатывать во время изменения счётчика в это состояние.
Автомасштабирование, например, построено на показателях счётчиков CloudWatch. По политикам CloudWatch могут сработать триггеры, которые запускают новые копии серверов для увеличения мощности приложения, и так же при снижении нагрузки потушить ненужные серверы.
Выглядит консоль управления Cloud Watch следующим образом.
Консоль предоставляет почти весь функционал настройки Cloud Watch, но всё же через утилиты командной строки настройка может быть проведена гораздо быстрее и точнее, чем через веб интерфейс.
Биллинг
В оплаты сервиса Cloud Watch входят количество чеков, выходящее за Free Tier. Элементарный мониторинг в этом лимите настроить вполне можно.
AWS Identity and Access Management (IAM)
Описание
Сервис IAM позволяет контролировать права доступа ко всем остальным сервисам AWS. Имея штат сотрудников по всем правилам нужно разграничить доступ администраторов, разработчиков, тестирощиков и так далее. В пределах одно аккаунта могут быть создано до 80 учётных записей пользователей, объединённых в группы, к которым в свою очередь применяются политики безопасности.
Правила для ограничения доступа для сервисов AWS генерируются в JSON формате, вида:
На примере участникам группы полностью открыт сервис SES и позволены все действия, связанные с SES.
IAM так же легко использовать для передачи прав на короткое время третьим лицам, например фрилансерам для настройки сервисов. Ключи, сертификаты и пароли легко быстро отозвать, тем самым прекратив доступ к AWS.
Биллинг
Использование IAM абсолютно бесплатно. Плата взимается только за ресурсы, потребляемые пользователями.
AWS: VPC – EC2 в public и private подсетях, NAT и Internet Gateway
Задача – создать два EC2 инстанса в одной VPC: один Master в public (с внешним IP) подсети, и второй, Slave – в private подсети, доступ к которому будет только с Master-хоста. Master будет “ходить в интернеты” через Internet Gateway, Slave – через NAT Gateway.
Схема примерно такая:
Без особых деталей, просто step-by-step HowTo. Документация – тут>>>.
Фактически – это пост для подготовки инфраструктуры для дальнейшего развёртывания Swarm-кластера, которая описана в посте Docker: Docker Swarm кластер в AWS step-by-step. А “третья часть” – AWS: CloudFormation – создание шаблона для VPC, EC2, NAT и Internet Gateway.
Все действи выполняются через AWS CLI.
Подробнее о VPC в AWS – в посте AWS: VPC – введение, примеры и документации.
Создаём VPC для EC2 инстансов:
Security Group
По vpc-id находим Security Group, которая была создана при добавлении VPC:
Используя ID группы sg-cbbb9eac добавляем два правила – доступ по 80 и 22 портам:
Или просто “всё и всем”:
Подсети
Создаём новую подсеть в нашем VPC – это будет наша публичная сеть для Master-хоста:
И вторую подсеть – приватную, для Slave:
Ещё раз про подсети.
Public, для Master:
Private, для Slave:
VPC Internet Gateway
Создаём Internet Gateway для нашей VPC – через него будет работать Master:
Подключаем его к VPC:
NAT Gateway
Для доступа из private подсети в Интернет – добавляем NAT Gateway. Его создаём в открытой подсети ( subnet-f6c35d92 ), в которой будет и Master-хост.
Получаем новый публичный IP для этого шлюза:
И создаём шлюз, указав allocation-id для подключения к шлюзу внешнего IP:
Route table
Находим ID таблицы машрутизации нашей VPC:
Добавляем правило маршрутизации для публичной сети (10.0.1.0/24) в сеть 0.0.0.0/0 (весь Интернет) через Intenet Gateway:
Для закрытой подсети – создаём новую таблицу маршрутизации:
В ней создаём новое правило для маршрутизации трафика из подсети 10.0.2.0/24 через NAT Gateway, который расположен в публичной посети:
Подключаем эту таблицу маршрутизации к закрытой подсети 10.0.2.0/24, в которой будет наш Slave-хост:
NAT Gateway:
Internet Gateway:
EC2 инстансы
Создаём 2 инстанса – Master и Slave.
Key pairs
Создаём RSA ключи доступа:
Устанавливаем права доступа:
Создание EC2
Далее – создаём Master EC2 инстанс в публичной подсети.
Нам потребуется указать AMI ID, который будем запускать, имя ключей, которые мы создали, ID Security-группы и ID подсети в VPC.
Находим AMI, например – Ubuntu:
Теперь можно создать Master в сети 10.0.1.0/24 (ID subnet-f6c35d92 ):
Создаём Slave в сети 10.0.2.0/24 (ID subnet-c3c35da7) :
Public IP
Для доступа к мастеру – нам потребуется Public IP.
Подключаем его к созданному master инстансу:
Проверяем доступность мастера:
Копируем созданный ранее RSA ключ на мастер:
Подключаемся к мастеру:
И с него – на slave ( «PrivateIpAddress»: «10.0.2.33» ):