Ответы пользователя по тегу Amazon Web Services
  • Почему может тормозить загрузка статичных файлов на сайте для некоторых клиентов из РФ?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Не забывайте про сетевую машрутизацию(неоптимальные маршруты) и ограниченную пропускную способность в условиях усиленного использования каналов интернета на самоизоляции.
    Маршрутизация.
    Вы используете статическую точку входа в AWS которая приземляется в конкретной физической точке сети. И которая, кстати, находится точно не в России.
    Проблема наблюдается у конкретных клиентов -> с наибольшей вероятностью маршрут от клиента до вашего сервера является проблемой
    Возможные решения
    1.CDN (и да, и AWS и CloudFlare уже достаточно давно рекомендует динамику тоже через CDN гнать, гайдов куча) - трафик будет отдаваться от ближайшей точки доступной клиенту (опять же в зависимости от настроек маршрутизации конкретного провайдера до сервиса CDN - все равно могут возникать проблемы)
    2.AWS Global Accelerator - по сути примерно то же самое для вас. Трафик смаршрутизируется в ближайшую точку присутствия GA к клиенту и пойдет кратчайшим путём внутри AWS к вашему серверу. Но точек входа еще в августе в РФ не было. Сейчас не знаю.
    3.Поднять точку входа на территории РФ и заниматься передачей трафика на ваш сервис в AWS в туннеле (такое решение например у нас на проекте дало наибольшее ускорение, ни GA ни CloudFront не сравнимы, поскольку там мы вообще никак не контролируем маршруты трафика в сторону серверов AWS)

    Вам из вышеописанного может помочь или CDN с точками присутствия в РФ или своя точка присутствия в на серверах РФ в случае если трафик от клиентов идет по неоптимальному маршруту.

    Перегруженные сети
    Если же проблема в перегруженных сетях (наиболее вероятная сейчас причина) - то вам ничего не поможет.
    Ответ написан
    Комментировать
  • Не могу подключиться по SSH к AWS. Что я делаю не так?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Давайте уточним что понятно из вашего вопроса:
    1. Вы пытаетесь подключиться к windows (поскольку при подключении к Linux нет этапа "расшировка пароля")
    2. Вы пытаетесь подключиться по SSH (или все же RDP?)
    3. Вам не удается расшифровать пароль инстанса "на лету", поскольку у вас зашифрован ключ

    Попробуйте следующее:
    1. ваш приватный ключ putty сконвертировать в Openssh без пароля
    2. удостовериться, что получившийся файл (открывается любым текстовым редактором) удовлетворяет условиям
    Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA PRIVATE KEY-----""
    То есть
    • есть эти фразы
    • отсутствует слово encrypted

    3. При расшифровке выберите этот файл.
    Ответ написан
    Комментировать
  • Можно ли сделать Load Balancing in AWS если инстанс имеет только private IP?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Вообще с точки зрения безопасности крайне рекомендуется разделять сети, и держать приложения и их данные в подсетях к которым нет прямого доступа из интернета
    Например(тоже относительно рандомная картинка) SrHTd.png
    поэтому я бы дополнил ответ Иван Шумов так :
    При использовании AWS ELB,ALB или любого другого балансировщика внешней нагрузки (Haproxy,Nginx,etc..) лучше всего ваш VPC организовать так, чтобы все балансируемые сервера находились в приватных подсетях, а в публичной находился только балансировщик, NAT и VPN\Bastion
    В базовом случае(использование default VPC) можно ограничить прямой доступ к серверам, как и посоветовал Иван Шумов
    Ответ написан
  • Как установить сайт на ubuntu сервер на amazon ec2?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    ткну пальцем в небо:
    когда вы запускали (руками) инстанс - просто прокликали все next next next и по умолчанию добавилось правило launch-wizard-...... в которое есть правило для ssh(и оно работает, иначе как бы вы поставили nginx)
    sg которую вы демонстрируете - это default security group. То что она default - не означает что она ассоциирована с вашим инстансом. добавьте эту sg к вашему инстансу. Это раз
    Два: то что вы открыли порт в security group не означает что он открыт на самом сервере. проверьте правила внутреннего файрвола
    И вообще, сначала завалидируйте, что curl с localhost на самом инстансе отдает вам контент вашего сайта на том порту который вы ожидаете - может быть там приложение и не работает вовсе а вы чего то ждете
    Ответ написан
    Комментировать
  • Сколько может стоить альтернатива обычному хостингу на AWS?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Присоединюсь к Иван Шумов
    Даже если у вас есть потребность в переезде на AWS - вы все равно не сможете предугадать ваши траты, только очень и очень примерно. Жизнь в AWS - это когда каждый месяц смотрим на биллинг и "вот до сентября у нас не было столько межрегионального трафика, что ж мы в продукте такое взвели то.. на 2к баксов лишних"
    Ответ написан
    1 комментарий
  • Как уменьшить риски потери инфраструктуры при использовании Terraform?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Потерять можно все при любом действии и любым продуктом.
    Терраформ просто позволяет сделать это .. красиво и очень удобно, если вы хреново его спланировали.
    Правило 1: используйте автоприменение только в тех местах где не жалко или где вы железобетонно уверены(и берете риски на себя)
    Правило 2: валидируйте план. Хотя бы глазами
    Вообще, есть у некоторых людей практика делать план в файл, валидировать его какой то внешней логикой, и при успешной валидации применять план из файла, не просчитывая его заново (он делается при каждом апплае) с автоподтверждением. Мне не нравится, да и терраформ честно предупреждает что на момент реального применения ситуация может отличаться и менять придется совсем другие элементы.
    Правило 3: разноси элементы по логическим слоям, чтобы уменьшить зону поражения при гибельном апплае. Например настройки сети а одной папке со своим стейтом, запуск приложения - в другой. И связывайте через ремоут стейт. Главное соблюдать меру, чтобы каждую, скажем , security group в aws не создавать в отдельных слоях.
    Правило 4: используйте модули, если применение логической группы ресурсов используется более одного раза. Тут тоже не стоит плодить модули на каждый ресурс и подходить разумно.
    Правило 5: тестируйте изменения! (Используя одни и те же модули для стейжа и прода). Логично предположить что если вы снесли стейж то и прод снесется.
    Правило 6: используйте vcs для работы с кодом терраформ (для того чтобы откатывать код для восстановления убитого стейжа например)
    Правило 7: используйте lifecycle политики Prevent destroy на ресурсах, чтобы запрещать из убиение
    Помидор 7.1: используйте ignore changes там где это нужно
    Правило 8: используйте правильный инструмент для того что вы хотите сделать. Терраформ умеет много чего, но конфигурейшн менеджер он не заменит, хотя по функциям они чуть да пересекаются.

    В принципе, если продолжать я могу до штук 20 дойти полезных советов, но на 90% мои правила, по сути - используйте для работы с кодом терраформ те же правила что и для работы с любым другим кодом - снимете 70% проблем. Остальные будут связаны с особенностью работы терраформ и радиусом кривизны рук автора терраформ кода.

    P.S. пишу на ходу в метро, орфографию и пунктуацию правит т9. Спрашивайте, вдруг заметите какой нибудь термин, который я писать не собирался :D
    Ответ написан
    3 комментария
  • Возможна ли обработка изображений на AWS S3?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Функционала такого в S3, конечно же, нет.
    S3 = Simple Storage Service. Основное предназначение - это хранение.
    Cloudinary предоставляет вам хранение+манипуляции+еще что-то как сервис.
    В S3 такое, как вам уже посоветовал Андрей, можно доделать самому, с помощью соответствующих сервисов.
    Насколько много нужно танцевать - зависит от количества и качества вашего(или вашей команды) опыта в программировании.
    Ответ написан
    1 комментарий
  • Как сделать настройку Amazon SES для отправки почты?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    все подробно описано в документации по SES: https://docs.aws.amazon.com/en_us/ses/latest/Devel...
    Ответ написан
    Комментировать
  • Виртуальные сети aws?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Судя по всему, вам нужен AWS VPC: Virtual Private Cloud

    Вот здесь, например, есть от производителя, описанный cloudformation темплейт создающий
    нечто похожее на то что вам надо: 2 приватные сети, 2 публичные сети (потому что в 2 AZ)
    Доступ из приватных сетей в интернет идет через NAT gateway(тоже сервис амазона)

    Дополнительно надо сделать:
    0. Поднять VPN в публичной подсети (мы пользуемся вот таким, хотя все скипты переписан под наши нужды
    0.a А еще лучше поднять бастион в публичной подсети, если вам необходим доступ только для администрирования а не для доступа различных пользователей, вроде других девеолперов и поддержки
    1. поднять в приватной сети DHCP\DNS сервер.
    2. прописать в DHCP options (параметр VPC) ваши DNS и DHCP сервера.
    3.. ???
    4. PROFIT! новосозданные машины в VPC будут создаваться с правильными и нужными вам параметрами
    5. Рулите доступом с помощью Security Groups

    Вы можете загрузить указанный выше темплейт в designer в AWS и посмотреть какие компоненты он создает(или прочитать код), если не хотите пользоваться cloudformation или вообще средством автоматизации - и создать все руками, но в случае с AWS отсутствие автоматизации со временем будет вас больно бить.

    P.S. а где вы запускаете ваш контейнер? если в сервисах lightsail то у меня для вас не очень приятные новости: надо изучать ecs\fargate или eks для запуска его в ваших приватных сетях, городить ALB\ELB\NLB или другой балансер на EC2(nginx,haproxy,etc..) чтобы все работало и так далее, и так далее.
    Ответ написан
    Комментировать
  • Aws s3 vs google drive?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Думаю, вы здесь слегка путаете продукты и их предназначения.
    Эти продукты используется для персонального хранения файлов, и все инструменты ориентированы на работу с вашими личными файлами:
    Amazon: Amazon drive vs Google: Google Drive

    Эти,обычно, используется для целей, которые вы описали:
    Amazon: AWS S3 vs Google : Google Cloud Storage

    Для ваших целей так же могут подойти:
    у Microsoft: Azure block blobs
    у DO: Digital Ocean spaces ( совместимо с AWS S3 )
    у Yandex: Yandex Object Storage ( совместимо с AWS S3 )
    у Mail.ru: S3 объектное хранилище ( совместимо с AWS S3 )
    у Alibaba: Alibaba Cloud object storage service

    Вы можете выбрать то что вам подходит по вкусу, цене, а так же по близости вашим клиентам
    Ответ написан
    Комментировать
  • Как вызывать AWS API используя временные credentials?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    https://docs.aws.amazon.com/en_us/cli/latest/userg...
    Вы получаете креды.
    Вам нужно положить их в соответствующие переменные окружения.
    Далее следующая команда AWS CLI будет использовать их.
    Ответ написан
    5 комментариев
  • Как лучше управлять backup and restore volume snapshots для AWS EC2, созданные LifeCycle Manager?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Вадим
    1. Backup виртуальных машин - это AMI (в принципе те же яйца, только сбоку: снапшоты EBS-ов + конфигурация машины собранные в пакет и зарегистрированные пространстве AMI вашего аккаунта)
    Хотите делать полный бэкап машины - делайте AMI а не снапшот EBS . В процессе AMI вполне себе можно затегировать.
    Нужный вам подход - освоить AWS CLI для создания AMI и их тегирования. Скрипт будет простой.
    В теги можете запихать все что угодно, включая девичью фамилию матери админа, запустившего инстанс.
    Поставите в скедулер запуск снятия AMI-шек со всех нужных вам инстансов и будете иметь бэкап продакшена малыми средствами. Помните, что снятие AMI не всегда возможно без выключения машины - внимательнее с этим.

    2. Если вам важны DNS записи и IP адреса - вы держите псевдостатическую инфраструктуру в облаке. Образно говоря вы писаете против ветра, поэтому у вас такие проблемы и возникают.
    149686259319835867.jpgЭто ваш жареный петух техдолг и он уже начинает подбираться к вашей пятой точке, судя по вашим вопросам.
    Правильный подход с точки зрения AWS - динамика, но если вы собираетесь и дальше стрелять себе в ногу - ваш выход - автоконфигурация (чем угодно, хоть скриптами в юзердате, хоть ansible,chef,puppet,etc) статического адреса и DNS имени после старта машины. Данные об IP и прочих можно забирать через describe-tags на AMI из того же aws cli
    Ответ написан
    Комментировать
  • Почему Terraform требует либо nat instance id либо instance id, либо internet gateway id?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Вадим
    https://www.terraform.io/docs/providers/aws/r/rout...
    Обратите внимание что у блока route два аргумента а у вас - один. В общем и целом, нужно не только указать CIDR который маршрутизировать но и через что его направить
    Ответ написан
    Комментировать
  • AWS (Amazon-хостинг облако) в чем --практическое отличие от обычного Ubuntu-VPS?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    AWS (и другие подобные провайдеры) предоставляют вам не просто "виртуалку". Это возможность полностью управлять виртуальной инфраструктурой проекта - IAAS (ну и пачку SAAS конечно тоже)
    Если ваш проект - одна виртуальная машина то для вас AWS это слишком много
    Если у вас сложный по инфраструктуре проект, например:
    • отдельный лоадбалансер(который вам нравится, Linux) в публичной сети
    • приложение на IIS в непубличной сети
    • несколько микросервисов
    • очереди для связки всего этого
    • хочется тестировать в одном месте а прод чтобы не падал при этом
    • ...
    Вот тогда вылезают плюсы AWS по управлению инфраструктурой проекта, а до того момента - и на VPS и в AWS: у вас есть виртуалка под убунту, вы подключаетесь по ssh и заверте...
    Ответ написан
    Комментировать
  • Как сохранить бэкапы базы rds Amazon себе на компьютер?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    RDS делает бэкапы кластера, даже если он однонодовый.
    Насколько я знаю ( у меня нет такой необходимости в работе и я это не делаю) можно настроить дополнительный бэкап именно базы с помощью решений AWS Backup в S3 и выгружать оттуда.
    Или дампить базу когда вам надо (как правило девелоперы так и делают в препродакшене с небольшими базами)
    Ответ написан
    Комментировать
  • Как правильно делать резервные копии EC2?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    очень, очень странно что за год никто не ответил на этот вопрос, даже и не знаю, чувствую себя некромантом.

    В общем-то, если не учитывать бестпрактисез - вы делаете единственно доступным вам правильным способом.
    Snapshot - это резервное копирование диска, не виртуальной машины.
    Бэкапить машину полностью, включая kernelid и другие настройки - это image (AMI)

    Бестпрактиc, правда, не такой
    Подготовка кода + скрипты настройки -> подготовка артефактов -> запуск машины
    Подготовка кода + скрипты и подготовка артефактов
    Здесь вы или подготавливаете артефакты(например zip архив в S3) с кодом и соответствующими ему скриптами, которые заставляют этот код работать на машине
    И, опционально, подготавливаете AMI
    Это рекомендованный способ во многих случаях. По сути вы сейчас делаете практически то же самое, но создаете AMI после публикации и стабилизации кода и настроек (правильно - до, и тестировать что получилось) . Кроме того ваш способ может привести к сюрпризам в будущем, поскольку вы накатываете изменения на уже существующую машину и какие-то настройки сделанные сейчас будут мешать работать будущим версиям.
    Еще одна альтернатива - вообще не готовить AMI. Фиксировать версию кода и настроек(настроечных скриптов). Готовить из них артефакты(или просто git clone из репозитория по версии) и проводить все действия по настройке прямо на старте машины. У вас не будет некоей AMI которая привязана к вашему аккаунту - у вас будут скрипты которые можно запустить на любом аккаунте без промежуточного шага.
    Инструменты:
    подготовка AMI: packer, cloudformation
    запуск инстанса: terraform, cloudformation
    скрипты настройки: все что нравится, от банальных bash скриптов до ansible,chef,puppet, etc..
    Настройка машины при запуске: cloud-init
    CloudFormation - встроенный инструмент в AWS, но он сложноват в сравнении с packer и terraform
    Ответ написан
    Комментировать
  • Где взять Account ID or alias?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Попробуйте открыть console.aws.amazon.com в анонимном режиме, чтобы исключить сохраненные куки.
    Для отдельно зарегистрированного аккаунта вход происходит по емейлу-паролю, accountid там еще не фигурирует
    Ответ написан
  • Как сделать, чтобы instance AWS не отключался?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    немного исправленный ответ Иван Шумов
    1.
    2.
    3. в asg в юзердате прописать подключение EIP инстансу скриптом с помощью aws cli - в этом случае не придется платить еще и за elb
    а. можно сделать втупую - выписат secret key\access key с вашими (полными) правами
    б. можно покурить IAM немного и разрешить инстансу совершать определенные действия с eip с помощью Instance Profile ( с ним связаны IAM Policy , IAM Role )
    3. Или же можно просто регистрировать получившийся IP (который каждый раз при старте инстанса будет новый) в route53 если у вас зона хостится в AWS
    Ответ написан
  • Как отключить фаервол на Amazon?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    На AWS есть три уровня сетевой защиты:

    Network ACL - Работает на уровне элемента subnet
    для открытия доступа со всего интернета нужно настроить правило разрешающее доступ к инстансу с адреса 0.0.0.0/0 и правило разрешающее доступ с инстанса на адрес 0.0.0.0/0. То есть и снаружи и наружу. По умолчанию так и настроено. Если ничего не меняли - то можно просто проверить.

    Security Group - Работает на уровне сетевого интерфейса вашего инстанса
    Для открытия доступа из всего интернета надо создать правило разрешающее доступ с адреса 0.0.0.0/0 к инстансу и надо добавить правило разрешающее доступ с инстанса к адресу 0.0.0.0/0. Тут стоит отметить что если вы создаете инстанс в web консоли Amazon AWS то второе правило создается автоматически. Если вы создаете через API - то его создавать надо.

    instance firewall - работает внутри вашей машины. Настраивается соответственно инструкциям - но в общем и целом нужно открыть доступ с 0.0.0.0/0 или отключить его правильно.

    Хочу отметить, что это не рекомендованный способ, потому что вы сразу становитесь уязвимы к атакам хакеров. Но решать вам, и правильный способ искать - тоже ваша задача.
    Ответ написан