Ответ 1
В настоящее время мое приложение имеет только небольшое количество трафика, поэтому оплата даже небольшого доллара для меня. Изучив и попробовав так много вариантов оптимизации класса экземпляра. Я нашел следующую настройку, которая дает мне самую низкую тарифы выставления счетов при запуске приложения с статусом фактуры, включенным в Google Appengine.
Я использую F1 Class для установки экземпляра Frontend.
Здесь я код в версии yaml.
instance_class: F1
automatic_scaling:
max_idle_instances: 1 # default value
min_pending_latency: automatic # default value
max_pending_latency: 30ms
Я использую класс B1 для установки экземпляра Backend.
Здесь я код в версии yaml.
instance_class: B1
basic_scaling:
max_instances: 1
idle_timeout: 10m
И вот код, который нужно поместить в appengine.web.xml(если компилировать java с maven)
<threadsafe>true</threadsafe>
<instance-class>B1</instance-class>
<basic-scaling>
<max-instances>1</max-instances>
<idle-timeout>10m</idle-timeout>
</basic-scaling>
Обычно я запускаю 4 модуля, 2 модуля в классе F1 и 2 модуля в классе B1. Они стоили мне 0 ежедневно. Однако, когда мой сайт занят трафиком, я поднимаю класс до F2 и B2, а общая суточная стоимость меньше 0,50 доллара США.
Вот несколько советов по уменьшению оплачиваемого экземпляра:
- Если ваш модуль класса F работает больше, чем 28 часов бесплатной ежедневной квоты, подумайте о создании другого модуля с класс B. При этом вы получаете еще один 9 бесплатных часов экземпляра. Вы можете использовать его для выполнения любой другой работы, например cron, task или background. Убедитесь, что автоматическое выключение /_ ah/stop работает правильно. Не позволяйте считать длинный простой.
- Упростите домашнюю страницу или целевую страницу для запуска с минимальным экземпляром. Если возможно, не более одного экземпляра. Пусть он запускается больше экземпляра только тогда, когда ваш посетитель делает что-то на вашей странице. Попробуйте оптимизировать свой сайт, воспользовавшись свободной квотой blobstore, хранилище данных и datastore. Вы также можете использовать script в Google Hosted Libraries, чтобы минимизировать исходящую пропускную способность.
- Всякий раз, когда запрос трафика отправляется обработчику модуля, он определенно запускает экземпляр. Поэтому, помимо установки статического истечения кеша, рекомендуется, чтобы статические файлы, такие как html, images, js и css, были загружены из вашего ведра с помощью Google Cloud Storage (GCS) клиентская библиотека и gsutil.
Затем установите его как общедоступный. С помощью этой схемы ваш экземпляр будет значительно уменьшен, так как он не влияет на запрос. Вы можете подумать, что GCS Monthly Pricing намного дешевле по сравнению с ежемесячным счетом, поднятым суммарным кумулятивным значением Часовая стоимость экземпляра.
Узнайте, как настроить ведро как веб-сайт, используя субдомены (включая www), как описано здесь. Кроме того, если вы хотите использовать пустой домен, вы можете перенаправить его на www установить A (Host) и AAAA, или вы даже можете сделать его полностью независимым, если ваш голый домен можно установить как Alias /AName непосредственно на GCS (c.storage.googleapis.com). - Если ваше приложение работает динамически на основе работы с данными, вам необходимо знать, что каждый тип базы данных, например MySQL, облачное хранилище и т.д. также будет запускать экземпляр или счетчик операций. Убедитесь, что вы блокируете нежелательный бот-трафик и не используете им динамическую страницу. Я предлагаю вам также рассмотреть возможность использования Малые операции хранилища данных. Сравните с другими операциями с базой данных, эта операция будет стоить вам бесплатно. Конечно, вам нужно будет оптимизировать свой код, чтобы использовать его как Quercus. Здесь есть приятная дискуссия здесь, здесь и здесь.