2017-02-22 38 views
0

У меня есть базовое изображение докера, содержащее скрипт python, который входит под 100mb. Я не уверен, какой дистрибутив я собираюсь использовать, но желательно тот, который приводит к максимальному размеру файла.AWS: Как развернуть экземпляр докера сразу же на ec2, ближайшем к моему клиенту?

Цель состоит в том, чтобы развернуть изображение на Docker t2.nano например ec2, но он должен соответствовать следующим условиям:

  • от времени запрашивает доступ клиента через URL, он должен отвечать как можно быстрее , предпочтительно в течение нескольких секунд.

  • Задержка между клиентом и вновь размещенным экземпляром докеры ec2 должна быть как можно меньше, что означает ec2 в ближайшей зоне доступности.

Возможно ли это?

ответ

1

Невозможно развернуть экземпляр EC2 менее чем за несколько секунд, особенно в случаях типа t2.nano. Экземпляры EC2 соответствуют тем же правилам, что и физические вычислительные ресурсы, поэтому более крупные типы экземпляров загружаются быстрее, а t2.nano в настоящее время является наименьшим/наименее мощным/самым медленным размером экземпляра. Тем не менее, даже самые быстрые экземпляры занимали бы минуту или около того, чтобы быть подготовлены и полностью загружены.

Похоже, что вам следует изучить AWS Lambda. Это их собственная, управляемая, контейнерная служба вычислительных ресурсов и предназначена для такого рабочего процесса, который вы описываете. Вы сами не управляете самими контейнерами, но развертываете код (из которого Python является поддерживаемым языком) и его зависимые библиотеки для службы, и он запускает его в контейнере по требованию с накладными расходами в подсетей.

Обратите внимание, что он не предназначен для размещения «веб-сайтов» напрямую, если это ваше намерение. Лямбда-функции вызывается другими службами AWS, одна из которых - API Gateway, что было бы лучшим путем для обеспечения публичного интерфейса для ваших функций лямбда. Это можно использовать в сочетании с чем-то вроде S3 static website hosting, чтобы предоставить строительные блоки для «серверного» веб-приложения.

Что касается вашего второго вопроса, маршрут 53 поддерживает latency based routing, но я не верю, что он поддерживает конечные точки API Gateway в качестве целей. Поэтому, если глобальная латентность вызывает большую озабоченность, лучшим вариантом может быть развертывание нескольких экземпляров EC2 во всем мире и использование маршрутизации на основе задержки. Если это в основном статические активы, о которых вы беспокоитесь, CloudFront может кэшировать их в крайних местах, в качестве альтернативы.