Vultr като алтернатива на Digital Ocean и работа с неговия API в PHP
И, струва ми се, напразно. IMHO, Vultr е „убиецът“ на Digital Ocean и ще обясня защо по-нататък. Vultr е подобен на DO по много начини. Той буквално крещи: „Имам всичко същото! Като DO? Опитай ме!" Всъщност самите услуги, тарифи, функции и услуги почти напълно копират DO. Наистина не харесвам плагиаторите, но при по-внимателно разглеждане стигнах до заключението, че Vultr превъзхожда DO в почти всичко.
Преценете сами, ето частичен списък с предимствата на Vultr:
- Минималният план ($5/месец) включва 768 Mb RAM срещу 512 Mb за DO
- 14 центъра за данни срещу 7 за DO (включително такива редки места като Япония и Австралия)
- Наличие на тарифни планове за евтино "съхранение" (SATA вместо SSD)
- Възможно е да наемете не VPS, а Dedicated Server
- Възможно е да инсталирате всяка дистрибуция от вашето ISO изображение
- Възможно е да инсталирате Windows Server (+ $16 / месец към цената на всяка тарифа)
- Наличие на стартиращи скриптове (повече подробности по-долу)
- Съхранението на моментни снимки е напълно безплатно (дори създаването на моментни снимки е безплатно)
- Много по-лесна регистрация (няма нужда да идентифицирате нов потребител с паспортна снимка)
Във връзка с предишния плюс, ще отбележа техния важен плюс - Vultr не взема пари нито за създаване на моментни снимки (за разлика от DO), нито за съхранението им, нито за разполагането им. Изобщо! И така е от няколко години и те все още не планират да го променят (въпреки че потребителското споразумение позволява това). Оказва се, че за $5/месец (или 0,7 цента на час) можете да създадете VPS за себе си със 125 GB диск, скрипт на етапа на създаване (повече за това по-късно), да повдигнете FTP там, да се свържете от вашата локална машина там, да прехвърлите целия си фото/музикален архив (за тези, които не се вписват - има тарифи до 1 TB за $40/месец или 6 цента на час), след това направете моментна снимка от тази машина и изтрийте машина. Всичко. Съхранявате безплатно до терабайт от вашата информация за черни дни. Ако ти трябва - създай отново сървъра от тази снимка, свържете се през FTP, вземете каквото ви трябва и изтрийте машината. И за удобство, вместо един огромен сървър, можете да създадете няколко по-малки (по отношение на съхранението на информация), тогава моментните снимки ще бъдат запазени / разгърнати по-бързо и те ще отнемат по-малко пари за работа с тях.
Ще отбележа и важна убийствена функция на Vultr в сравнение с DO - това е „Скриптове за стартиране“. Можете да създадете няколко готови скрипта в личния си акаунт, като въведете команди bash там. И този код ще бъде изпълнен с root права веднага след създаването на виртуалната машина. Един внимателен читател сега може да възкликне: „Ба, така че Digital Ocean всъщност също има подобна функция иизвиква потребителски данни или облачен скрипт", но няма да е напълно прав. Първо, DO не е точно bash команда. Скриптът трябва да бъде написан на YAML. Да, можете да опаковате собствени bash команди в него, но преди това ще трябва да прочетете ръководствата за това как да подредите всичко това правилно, за да работи скриптът. Второ (и по-важното, IMHO), DO не ви позволява да съхранявате тези скриптове в личния си акаунт. Тези. ако постоянно внедрявате някои сървъри и искате постоянно да прилагате стандартни скриптове към тях, тогава ще трябва да съхранявате тези скриптове някъде отделно в бележник и всеки път да „копирате и поставяте“ в прозореца за създаване на капчици. Не е чудесно за облачен хостинг да държат своите скриптове някъде отделно. И като се има предвид, че типичните дистрибуции на CentOS на DO дори не включват wget, тогава аз лично използвам скриптове всеки път, когато създавам сървър.
В случая с Vultr създадох няколко типични скрипта предварително и когато създавам VPS, просто избирам този, от който се нуждая, така:

И в този пример, след като създам сървъра, веднага ще разположа VPN сървър и мога веднага да се свържа с него, без изобщо да отварям SSH терминал.
Но това не ми се стори достатъчно и разбрах, че искам да работя с Vultr чрез API, без постоянно да влизам в личния си акаунт. Прерових целия интернет и никъде не намерих готови инструменти. Какво правят хабраузерите в този случай? Така е, взимат и пишат сами. Реших да пиша на PHP. Благодарение на Vultr за добрите ръководства (отново според мен е много по-удобно от описанието на API в DO), след няколко дни добавих пълноправен PHP Wrapper за Vultr API.
Какво представлява: когато отворя страницата за първи път, изисквам API ключ:

И след това презареждам същата страница, но с помощта на GET заявка й подавам API ключа. Съответно при отваряне на страницата простострува си да проверите дали е имало GET заявка. Ако не, искане за въвеждане на ключ. Ако е така, се отваря тялото на страницата. В тялото на страницата се правят няколко GET заявки към VULTR API, получават се данни и структурираните данни се показват в таблица. Нещо като това:

По-голямата част от него се заема от формата на създаване на нов сървър. API също така изтегля всички ваши моментни снимки и стартиращи скриптове.
Моля, имайте предвид, че данните за фактуриране (салдо по сметка) също се показват тук. Например API v2 Digital Ocean изобщо не поддържа таксуване и все още трябва да отидете в личния си акаунт, за да проверите баланса си. В случая на Vultr това не е необходимо.
Да, в примера по-горе нямам създадени сървъри. Когато са, те се показват по следния начин:
Съответно всички сървъри са обобщени в една таблица. Има и бутон "изтриване". Ако сървърът е в подходящо състояние, тогава има бутон „терминал“, който в браузъра в нов прозорец отваря терминален достъп до този сървър чрез SSH.
Ето пълния списък с източници:
И трите файла трябва да са на едно и също място и именувани както в заглавието на спойлера.
Между другото, когато ми омръзна постоянно да въвеждам моя API ключ, направих следното: направих лесен за запомняне псевдоним. Тези. Въвеждам нещо като „hello api“ вместо моя API ключ и вътре в php тази стойност се заменя с истинския ми ключ. Тези. достатъчно е да запомните само паролата. Можете да направите същото за себе си - редактирайте в главния файл на ред 72.