Storage yandex net что это
Как разместить статический сайт с помощью Yandex.Cloud Object Storage
Привет, Хабр!
В этой статье, я расскажу как легко и просто разместить статический сайт с помощью технологий Яндекса, а именно Object Storage.
В конце у вас будет размещенный в сети сайт, который будет доступен по внешней ссылке.
Эта статья будет полезна, если вы
О себе
Недавно, я разрабатывал SaaS сервис, подобие маркетплейса, где люди находят спортивных тренеров для персональных тренировок. Использовал стек Amazon Web Services (далее AWS). Но чем глубже погружался в проект — тем больше нюансов узнавал о разных процессах организации стартапа.
Я столкнулся с следующими проблемами:
Вдохновленный статьей о мигрировании инфраструктуры из Amazon Web Services в Яндекс.Облако, я решил изучить стек Яндекса подробнее.
Для меня ключевыми особенностями Яндекс.Облака было следующее:
Я изучал других конкурентов этого сервиса, но на тот момент Яндекс выигрывал.
О себе рассказал, можно и перейти к делу.
Шаг 0. Подготовим сайт
Для начала нам понадобится сайт, который мы хотим разместить в интернете. Так как я Angular разработчик, я сделаю простой шаблон SPA приложения, который далее размещу в интернете.
P.S. Кто разбирается в Angular или знает про его документацию https://angular.io/guide/setup-local, переходите к Шагу 1.
Установим Angular-CLI чтобы создавать SPA-сайты на Ангуляре:
Создадим Angular приложение с помощью следующей команды:
Далее переходим в папку приложения и запускаем его, чтобы проверить работоспособность:
Приложение создано, но пока не готово к размещению на хостинге. Соберем приложение в небольшой билд (Production), чтобы убрать все лишнее и оставить только необходимые файлы.
В ангуляре это можно сделать следующей командой:
В результате этой команды в корне приложения появилась папочка dist с нашим сайтом.
Работает. Теперь переходим к хостингу.
Шаг 1.
Переходим на сайт https://console.cloud.yandex.ru/ и жмем на кнопку «Подключиться».
После успешной регистрации и авторизации, мы в личном кабинете.
Далее слева в меню нужно найти сервис «Object Storage», который мы как раз будем использовать для хостинга сайта.
Коротко по терминам:
Создадим один из них. Для этого в консоли сервиса жмем на кнопку «Создать бакет».
В форме создания бакета есть следующие поля, пробежимся по ним:
Жмем «Создать бакет» и бакет создан.
Теперь нужно загрузить наш сайт в бакет. Самый простой способ — открыть рядом папочку dist нашего сайта и ручками перетащить прямо на страницу. Это удобнее, чем жать на кнопку «Загрузить объекты», потому что в таком случае папки не переносятся и их придется создавать ручками в правильной последовательности.
Итак, сайт загружен в хранилище, тем можем предоставить пользователям возможность обращаться к хранилищу, как к сайту.
Для этого слева в меню жмем на вкладку «Веб-сайт».
На странице настройки бакета как сайта, выбираем таб «Хостинг». Здесь указываем главную страницу сайта, обычно это index.html. Если у вас SPA приложение, то вероятно все ошибки обрабатываются также на главной странице, поэтому укажем на странице ошибки также index.html.
Мы сразу видим, по какой ссылке будет доступен наш сайт. Жмем сохранить.
Через минут 5, перейдя по ссылке мы видим что теперь наш сайт доступен всем желающим.
Спасибо всем кто дочитал до конца! Это моя первая статья, планирую дальше описать другие сервисы Яндекса и их интеграцию с frontend и backend технологиями.
Напишите в комментариях насколько интересно вам узнать про другие сервисы Яндекса или про использование Angular в современной разработке.
Яндекс запустил облако
Сегодня компания Яндекс открыла новый сервис Яндекс.Облако.
Вычислительные мощности Яндекса и сервисы для обработки и хранения данных. Яндекс.Облако — публичная облачная платформа, где вы можете создавать и развивать свои проекты.
Проект представляет из себя 7 различных сервисов:
Мне, как владельцу проектов Поиск VPS и VPS.today больше всего интересны виртуальные серверы. Первая особенность, которую я заметил у Яндекса — это то, что в выключенном состоянии за виртуальную машину не нужно платить.
Стоимость рассчитывается за время использования виртуальной машины, начиная с момента запуска (перехода в статус RUNNING) и до полной остановки. Время, которое виртуальная машина была выключена, не тарифицируется.
Например, у DigitalOcean или Vultr списание средств идет в любом случае, даже если сервер выключен — за ним все равно зарезервированы ресурсы, поэтому брать за это деньги вполне логично.
При первом входе Яндекс предоставляет на тестирование сервиса 4000 рублей, которые будут доступны в течение полугода.
За ядра и оперативную память цена указывается за 1 час использования, за диск цена указывается за 1 месяц. Тарификация посекундная.
Цены следующие:
Ресурс | Цена за 1 час | Цена за 30 дней |
---|---|---|
1 ядро (vCPU) | 0.69 руб. | 496.80 руб. |
1 ГБ RAM | 0.24 руб. | 172.80 руб. |
1 ГБ диска NVMe | 7.32 руб. | |
1 ГБ диска SATA | 2.05 руб. | |
Windows Server | 1.12 руб. | 806.40 руб. |
Внешний IP адрес | 0.15 руб. | 108 руб. |
При использовании сервиса оплачивается только исходящий трафик по цене 1.5 руб. за ГБ, входящий трафик и трафик между облаками полностью бесплатный.
По информации из СМИ в данный момент сервис работает только в России, но в дальнейшем Яндекс планирует выход на международный рынок составив конкуренцию Microsoft Azure и Google Cloud Platform.
Создание превью картинок в объектном хранилище с помощью Yandex Cloud Functions
Довольно распространенная задача – создание превью картинок для сайта из полноразмерных изображений. Автоматизируем этот процесс с помощью триггера для Yandex Object Storage с функцией в Yandex Cloud Functions, которую он будет запускать с наступлением определенного события в бакете – в нашем случае, появлением в нем картинки. Функция сделает из нее превью и сохранит в соседний бакет. Возможна вариация сохранения превью в тот же бакет, но с другим префиксом.
Также с помощью триггера в Yandex.Cloud можно задавать действия не только для объектов в хранилище, но и для событий в очереди.
Триггер для Object Storage и Cloud Functions
Для решения этой задачи необходим настроенный бакет в Object Storage, в него будут загружаться файлы и в нем же будет лежать архив с кодом функции. Репозиторий с примером кода можно скачать тут. После выполнения инструкций из репозитория у вас будет готовая функция, к которой необходимо подключить триггер, срабатывающий на загрузку новых файлов.
В настройках триггера задаем его параметры: название, описание и тип – в нашем случае Object Storage. Также указываем бакет, в который будут загружаться картинки. Если дополнительно указать префикс и суффикс объекта, то можно обойтись одним бакетом и для исходных файлов, и для превью.
Далее указываем имя нашей функции, интервал повторных запросов и создаем триггер. Готово, теперь после загрузки картинке будет автоматически создаваться ее превью.
Превью на лету
Но у такого решения есть пара ограничений.
Превью создаются только для новых изображений, если картинка уже лежала в бакете, то для нее превью не будет создано.
Необходимо заранее определять высоту и ширину превью, чтобы внести изменения в соотношение сторон или размер необходимо заново масштабировать все картинки.
Теперь схема будет работать так.
При первичном обращении за превью:
Пользователь запрашивает картинку, указав в URL ее желаемые размеры.
Объектное хранилище не находит нужного файла и согласно настроенным правилам, переадресует запрос в функцию.
Функция идет за оригинальным изображением в объектное хранилище.
Масштабирует его до нужных размеров и сохраняет по ключу, содержащему эти размеры.
Сразу отдает готовый файл пользователю.
При последующих обращениях за файлом пользователь будет сразу получать файл из объектного хранилища без вызова функции.
Особенности технической реализации
Прописываем правила переадресации для бакета, чтобы Object Storage и Cloud Functions смогли работать в связке.
Например, при обращении к %bucket_name%.website.yandexcloud.net/images/500×500/cats/meow.png вы получите картинку которую положили в бакет %bucket_name% по ключу images/cats/meow.png но отмасштабированную до размеров 500x500px.
Чтобы не выстрелить себе в ногу
Если не задать значение переменной окружения ALLOWED_DIMENSIONS, то в функции не будут накладываться ограничения на размеры. Это значит, что если будут запрошены много разных вариантов размеров, то все они будут созданы и загружены в объектное хранилище. Поэтому если вы точно знаете, что вам понадобятся определенные размеры картинок лучше их указать. В противном случае, вы быстро израсходуете все свободное пространство хранилища.
Так же, если у вас очень много изображений, можно задать некоторое значение TTL, создать LRU схему кэширования.
Любые вопросы по Serverless и Yandex Cloud Functions обсуждаем у нас в Telegram: Yandex Serverless Ecosystem
Storage yandex net что это
Курс предназначен для базовой подготовки администраторов сайтов, созданных на «1С-Битрикс: Управление сайтом». Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.
Если вы добросовестно изучите курс, то научитесь:
Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих «1С-Битрикс: Управление сайтом» или «Битрикс24 в коробке».
Начальные требования
Необходимый минимум знаний для изучения курса:
Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.
У нас часто спрашивают, сколько нужно заплатить
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
уроке.
Тесты и сертификат
Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.
Комментарии к урокам
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).
Если нет интернета
Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
Как проходить учебный курс?
Автоматизация установки Kubernetes кластера с помощью Kubespray и Terraform в Yandex Cloud
Инструкция была основана на базе видео «Установка кластера Kubernetes с помощью Kubespray» в Youtube.
Самое интересное в этом посте для devops специалистов с опытом это скрипт для создания ansible inventory файла из terraform структур.
Yandex.Cloud — облачная платформа, где каждый может создавать и совершенствовать свои цифровые сервисы, используя инфраструктуру и уникальные технологии Яндекса.
Kubespray — это набор Ansible ролей для установки и конфигурации системы оркестрации контейнерами Kubernetes.
Kubernetes (K8s) — это открытое программное обеспечение для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями.
Регистрация на Yandex Cloud
Установка Yandex.Cloud (CLI)
Интерфейс командной строки Yandex.Cloud (CLI) — скачиваемое программное обеспечение для управления вашими облачными ресурсами через командную строку.
Создание профиля Yandex Cloud
Установка binenv
Установка Terraform
Terraform — это инструмент для создания декларативного кода, который позволяет разработчикам использовать язык высокого уровня, называемый HCL (HashiCorp Configuration Language) для описания нужной облачной или локальной инфраструктуры «конечного состояния» для запуска приложения. Затем он генерирует план для достижения этого конечного состояния и выполняет план по предоставлению инфраструктуры.
https://cloud.yandex.ru/docs/solutions/infrastructure-management/terraform-quickstart
https://gcorelabs.com/ru/blog/why-you-need-terraform/
Установка Kubectl
Kubectl — это инструмент командной строки для управления кластерами Kubernetes.
Установка Helm
Helm — это диспетчер пакетов для Kubernetes, упрощающий для разработчиков и операторов упаковку, настройку и развертывание приложений и служб в кластерах Kubernetes.
Установка jq
JQ — утилита для анализа, фильтрации, сравния и преобразовывания данных JSON.
Установка pip3 и git
Скачаем Kubespray версии 2.14.2 и установим зависимости для Kubespray
Выбираем версию 2.14.2, так как на момент создания оригинального репозитория была версия 2.14.2
Настроим Terraform переменные для доступа к Yandex Cloud
Создание ресурсов в Yandex Cloud и установка Kubernetes кластера с помощью Kubespray
Схема кластера Kubernetes
2 ingress и 2 worker сделаны для отказоустойчивости и для непрерывного обновления серверов.
Рассмотрим k8s-cluster.tf в web интерфейсе Яндекс облака
yandex_vpc_network — описание облачной сети.
Облачная сеть — это аналог традиционной локальной сети в дата-центре. Облачные сети создаются в каталогах и используются для передачи информации между облачными ресурсами и связи ресурсов с интернетом.
Ресурс yandex_vpc_network находится в разделе Virtual Private Cloud
yandex_vpc_subnet — описание подсети, к которой будет подключена виртуальная машина.
Подсеть — это диапазон IP-адресов в облачной сети. Адреса из этого диапазона могут назначаться облачным ресурсам — ВМ и кластерам баз данных. Подсети можно создавать только в том каталоге, которому принадлежит облачная сеть.
Размер подсети задается по методу бесклассовой адресации (CIDR). В подсетях можно использовать только частные IPv4-адреса из диапазонов, определенных в RFC 1918
В этом блоке создается ресурс yandex_vpc_subnet с именем k8s-subnet-1 в зоне доступности ru-central1-a, у которого сеть v4_cidr_blocks будет 192.168.10.0/24.
Ресурс «yandex_vpc_subnet» «k8s-subnet-1» находится в разделе Virtual Private Cloud в разделе k8s-network
yandex_iam_service_account — описание сервисного аккаунта. Все операции в Instance Groups выполняются от имени сервисного аккаунта.
Ресурс «yandex_iam_service_account» находится в каталоге, где вы создаете инфраструктуру в разделе Сервисные аккаунты.
Instance Groups — компонент сервиса Compute Cloud, который позволяет создавать и управлять группами виртуальных машин.
Instance Groups автоматически идентифицирует и корректирует неработоспособные виртуальные машины в группе для обеспечения их оптимальной работы.
Ресурс «yandex_compute_instance_group» находится в разделе Compute Cloud в разделе Группы виртуальных машин
Ресурс yandex_storage_bucket находится в разделе Object Storage.
Имена бакетов уникальны для всего Object Storage, т.е. нельзя создать два бакета с одинаковыми именами даже в разных каталогах разных облаков. Помните об этом, если планируете создавать бакеты автоматически через API.