<style>
.reveal {
font-size: 32px;
}
/* .reveal p {
text-align: left;
} */
.reveal section img {
background:none;
border:none;
box-shadow:none;
}
/* .reveal .polina {
border:10;
} */
</style>
# Сервера в интернете и облачные вычисления
<!-- [v1] -->
Белов Виталий, 2021
[TOC]
---
## Облачные технологии
Сервис предоставления ресурсов и мощностей по сети
- Доступ по сети
- Объединение ресурсов (объединение в пул)
- Масштабирование ресурсов (эластичность)
- Прозрачный учет потребления
---
## Обзор
Для начала - платформы с бесплатными пробными подписками
---
### AWS (Amazon)
* 750 hours per month
* Linux t2.micro
* 1 vCPUs, 2.5 GHz, Intel Xeon Family
* 1 GiB memory
* 30 gb storage
**NO GPU**
----
https://signin.aws.amazon.com/
Регистрируемся -

Необходимо предоставить данные телефон, адрес, реквизиты банковской карты (можно использовать виртуальную)
----
1. Выбираем EC2

----
2. Выбираем Amazon Machine Image

----
3. Во время создания нужно скопировать rss ключ в папку .ssh на Linux или в папку с PuTTY на Windows

4. Информация о сервере:

----
5. Соединяемся:

6. Подсказка как подключиться:

**Не забываем останавливать машинку (Stop Instance)**
<!-- сервисы машинного обучения - обсудить
https://aws.amazon.com/ru/sagemaker/#Use_cases -->
----
### EC2 Spot Instances
Свободные вычислительные ресурсы в облаке AWS со значительной скидкой по сравнению со стоимостью инстансов по требованию
- есть вероятность прерывания (но можно за ~2 минуты получить сигнал о выключении)
- позволяет сэкономить до ~90% (цена определется на аукционе)
- подходит для тяжелой нагрузки, которую можно безболезненно рестартовать
- не подходит для размещения стабильного кода
----
Instances -> Spot Requests

<!-- https://www.youtube.com/watch?v=cSLgjws1vMs&t=698s -->
----
Аналоги прерываемых типов машин есть также для Google и Microsoft:
**AWS:** https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-spot-instances.html
**Azure**: https://azure.microsoft.com/en-in/blog/announcing-the-preview-of-azure-spot-virtual-machines/
**GCE**: https://cloud.google.com/preemptible-vms/
Сравнение:
https://foxutech.com/what-are-spot-instances-and-options-on-aws-azure-and-google/
---
### Microsoft AZUR:
----

200 долл. США на свой счет для приобретения продуктов и служб Azure, а также 12 месяцев использования популярных бесплатных служб.
----
После регистарции:

----

После регистрации будет предложено сохранить ssh ключ. Сохраняем его в ~/.ssh
----

Виртуальные ЦП: 2
ОЗУ: 8 ГБ
---
### Google Cloud:
----
https://console.cloud.google.com/getting-started

Регистрируемся - вводим данные карты
- New customers: $300 in free credits, 90-day
- 20 products
----

----

----
Бесплатные настройки VM на год:

----
GPU
NVIDIA T4
NVIDIA P100
NVIDIA P4
Подключение GPU:
https://cloud.google.com/compute/docs/gpus/create-vm-with-gpus
---
### Сравнения цен для AWS, AZURE, Google.Cloud
Калькуляторы:
* Сloud.google: https://cloud.google.com/products/calculator
* AWS: https://calculator.s3.amazonaws.com/index.html
* AZURE: https://azure.microsoft.com/ru-ru/pricing/calculator/
---
### Google COLAB:
https://colab.google.com

* Продвинтая версия Colab (Pro) - $9.99/месяц
* Colab (Pro) доступен в Великобритании, Германии, Канаде, США и др. РФ в списке нет
----
**CPU:**
Colab (Free) — Intel(R) Xeon(R) CPU @ 2.20GHz
Colab (Pro)— Intel(R) Xeon(R) CPU @ 2.30GHz
**GPU:**
Colab (Free) — Tesla K80
Colab (Pro) — Tesla P100-PCIE-16GB, T4
**TPU:**
В Colab (Free) ограниченный доступ, для Colab (Pro) приоритетный, но также с ограничениями.
----
**RAM:**
Colab (Free) — 12.8GB
Colab (Pro) — 12.8GB (26.3 high RAM)
**Время работы:**
Colab (Free): не более 12 часов
Colab (Pro) подключение может сохраняться до 24 часов. Гарантий подключения нет.
---
#### Общий план начала работы с сервером
----
* Регистрация на сайте
* Выбор и конфигурация железа, число ядер, память
* Настройка ssh соединения. Через командную строку на mac / linux и через приложение PuTTy на Windows
* Опциональная настройка постоянного Ip адреса
* Настройка инструментов Jupyter notebook, необходимые библиотеки
----
Генерация ключа командой mac / linux
`ssh-keygen -t rsa`
пароль и название ключа опицональные

Подключаемся c командой ssh
пример:
`ssh -i "key" username@23.44.177.23`
---
### Рекомендации по работе
* Не забывать выключать, оплата почасовая
* Вместо выключения можно делать sleep, для того, чтобы не терять данные в ОЗУ
* Для удобства можно использовть утилиты tmux, позволяют подключать / отключать окно терминала к сессии
* Файловый менеджер Midnight Commander
* Для загрузки и скачивания файлов желательно познакомиться с командами scp, wget и т.д. , если mac или linux
---
Статья как работать с PuTTY на Windows:
https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/create-with-putty/

---
## Платные варианты
Часто удобнее, если снимаешь сервер надолго
Их множество, дальше пара примеров
---
### Selectel
https://selectel.ru/services/cloud/servers/

---
### Hetzner
https://www.hetzner.com/cloud-ru

функции Hetzner Cloud доступны через REST-API и консольную утилиту
---
## Аренда GPU
* https://vast.ai/ - One simple interface to find the best cloud GPU rentals (from MINERS)
{"metaMigratedAt":"2023-06-15T20:27:11.792Z","metaMigratedFrom":"YAML","title":"Сервера в интернете и облачные вычисления","breaks":true,"slideOptions":"{\"theme\":\"white\",\"transition\":\"slide\"}","contributors":"[{\"id\":\"85cfc388-1709-48a7-b624-c9d38aadb9ee\",\"add\":9250,\"del\":3142},{\"id\":\"e0bc91de-98f7-46f8-a3a9-852912833a93\",\"add\":141,\"del\":15}]"}