На чем написан amazon
Перейти к содержимому

На чем написан amazon

  • автор:

Топ-10 языков программирования в 2020 году по версии GitHub

Подводим итоги года и рассказываем, какие языки программирования оказались самыми популярнымии в 2020 году.

В 2020 году IT-индустрия продолжала развиваться. Перед новичками всё ещё стоит вопрос, какой язык программирования стоит учить.

Ответ даёт команда GitHub. Каждый год она анализирует количество поисковых запросов пользователей, которые ищут туториалы по языкам программирования. И на основе этих данных составляет рейтинг.

Рассказываем, какие языки программирования оказались самыми популярными в 2020 году. Кстати, не забывайте следить за нашим баттлом языков программирования.

1. Python

Python — бесплатный язык программирования, с открытым исходным кодом и удобными структурами данных. Он запускается на любых ОС и поддерживает множество сервисов, сред разработки и фреймворков. К тому же он подходит для новичков и его просто выучить.

Python подходит для создания веб-сервисов и мобильных приложений, вроде YouTube, Quora, Pinterest, а также программ Blender, Inkscape и Autodesk. Кроме того, Python использовали для создания видеоигр, включая Civilization IV и Vegas Trike.

2. Java

Java — стал стандартом для приложений, которые запускаются на любых платформах, включая Mac, Windows, Android, iOS и так далее. Также его используют в системах больших данных.

На Java написаны веб-приложения крупных компаний, таких как Twitter, LinkedIn, Amazon и eBay. Он также является официальным языком для создания приложений на Android.

3. Javascript

JavaScript — это одна из основ фронтенд-разработки. Его используют, чтобы сделать сайты интерактивными: добавлять всплывающие окна, эффекты и даже небольшие игры.

Кроме того, с выпуском ECMAScript 6 и таких фреймворков, как Angular, Node, Express и React, разработчики начали использовать JavaScript для создания клиентского и серверного программного обеспечения.

4. C#

С# — объектно-ориентированный язык программирования, разработанный Microsoft. Это один из самых мощных языков для платформы .NET Framework.

C# часто используют бэкенд-разработчики, в том числе в Bing, Dell, Visual Studio и MarketWatch., разработчики игр на Unity, создатели приложений для Windows, Android и iOS.

5. Cи и C++

Си был разработан еще в 1973 году и до сих пор остается одним из самых распространенных языков программирования. С++ очень близок к Си: у них схожий синтаксис, к тому же большая часть кода, написанная Си, будет справедлива и для C++.

На Cи и C++ написаны Microsoft Windows, Linux, macOS, ядра iOS и Android. А также Oracle Database, MySQL и MS SQL Server.

Cи и C++ считаются высокопроизводительными языками. Поэтому их используют в разработке приложений, для которых важна производительность. Это, например, Firefox, приложения Adobe, а также видеоигры.

6. PHP

PHP — один из самых популярных языков программирования для бэкенда. Его используют для создания многих сайтов в интернете, включая Yahoo.

PHP считается относительно доступным языком для начинающих программистов. К тому же у PHP-разработчиков есть много специализированных онлайн-сообществ, где можно получить ответы на любые вопросы.

7. R

Приложения, написанные на R, используют крупные компании для анализа статистики и обработки и структурированных и неструктурированных данных. Также он подходит для машинного обучения.

R достаточно сложно выучить, но у него активное онлайн-сообщество, которое помогает новичкам.

8. Objective-C

Objective-C — используют для создания программного обеспечения OS X и iOS с начала 1980-х годов. Он достаточно гибкий, с простым синтаксисом и его легко освоить. Особенно, если вы знакомы с C и Java.

В 2014 году на замену Objective-C Apple представила Swift. Впрочем, Objective-C до сих пор востребован и лучше подходит для крупных проектов.

9. Swift

Swift — один из самых популярных языков программирования для разработки приложений на iOS. У него открытый исходный код и простой синтаксис, к тому же, Swift совместим с Objective-C.

На Swift написаны популярные сервисы, такие как WordPress, Mozilla Firefox, SoundCloud и Flappy Bird.

10. MATLAB

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

Программисты используют MATLAB для создания приложений с использованием технологий машинного и глубокого обучения. Программы на базе MATLAB позволяют пользователям анализировать данные, создавать алгоритмы, обрабатывать изображения и проверять результаты исследований.

Его легче изучать, чем другие языки программирования. Для новичков на сайте MathWorks есть обширный раздел, посвященный ответам на вопросы о MATLAB.

Что такое .NET?

.NET – это платформа с открытым исходным кодом для создания настольных, мобильных и веб-приложений, которые могут работать в любой операционной системе. Система .NET включает в себя инструменты, библиотеки и языки, поддерживающие современную, масштабируемую и высокопроизводительную разработку программного обеспечения. Платформу .NET поддерживает и обслуживает активное сообщество разработчиков.

Проще говоря, платформа.NET – это программное обеспечение, которое может выполнять следующие задачи.

  • Транслировать код языка программирования .NET в инструкции, которые может обрабатывать вычислительное устройство.
  • Предоставлять утилиты для эффективной разработки программного обеспечения. С их помощью можно, например, определить текущее время или напечатать текст на экране.
  • Определять набор типов данных для хранения на компьютере такой информации, как текст, числа и даты.

Что такое реализации .NET?

Различные реализации .NET позволяют выполнять код .NET в разных операционных системах, таких как Linux, macOS, Windows, iOS, Android и многих других.

Платформа .NET

Платформа .NET – это оригинальная реализация .NET. Он поддерживает запуск веб-сайтов, сервисов, настольных приложений и многого другого в Windows. Microsoft выпустила платформу .NET в начале 1990-х годов.

Ядро .NET

Microsoft запустила ядро .NET Core в конце 2014 года, чтобы обеспечить кроссплатформенную поддержку разработчиков .NET. Компания выпустила новейшую версию ядра .NET 5.0 в ноябре 2020 года и переименовала ее в .NET. Термин .NET в этой статье относится к .NET 5.0. .NET Core имеет открытый исходный код на GitHub.

.NET Standard

.NET Standard – это формальная спецификация различных функций (называемых API). Различные реализации .NET могут повторно использовать один и тот же код и библиотеки. Каждая реализация использует как стандартные API-интерфейсы .NET, так и уникальные API, специфичные для операционных систем, в которых она работает.

Каковы преимущества .NET?

Простота разработки

Разработчикам нравится использовать .NET, потому что эта технология включает в себя множество инструментов, облегчающих их работу. Например, с помощью пакета Visual Studio разработчики могут быстрее писать код, эффективно сотрудничать, а также тестировать и исправлять свой код. Возможность повторного использования кода между реализациями снижает стоимость разработки.

Высокопроизводительные приложения

Приложения .NET обеспечивают более быстрое время отклика и требуют меньше вычислительной мощности. Они имеют надежные встроенные меры безопасности и эффективно выполняют серверные задачи, такие как доступ к базе данных.

Поддержка сообщества

.NET имеет открытый исходный код, что означает, что любой может свободно использовать, читать и изменять его. Активное сообщество разработчиков поддерживает и совершенствует программное обеспечение .NET. .NET Foundation – это независимая некоммерческая организация, созданная для поддержки сообщества .NET. Сервис предоставляет учебные ресурсы, проекты с открытым исходным кодом .NET и различные мероприятия для разработчиков .NET.

Каковы компоненты архитектуры .NET?

.NET имеет модульную оптимизированную архитектуру. Пользователи могут выбирать различные компоненты в соответствии со своими требованиями к разработке программного обеспечения.

Вот три основных компонента .NET:

  • Языки .NET
  • Платформы моделей приложений
  • Среда выполнения .NET

Разработчики используют языки программирования .NET и платформы моделей приложений для создания своих приложений .NET. Затем среда .NET выполняет и запускает их.

Что такое языки программирования .NET?

C# (произносится как си диез), F# (произносится как фа диез) и Visual Basic – это три языка, поддерживаемые Microsoft для разработки NET. Различные компании и разработчики также создали другие языки, которые работают с платформой .NET.

C#

C# – простой, современный и объектно-ориентированный язык программирования. Благодаря синтаксису, схожему с семейством языков C, C# знаком программистам, работающим на языках C, C++, Java и JavaScript.

F#

F# имеет легкий синтаксис и требует очень мало кода для сборки программного обеспечения. Это язык с открытым исходным кодом, который позволяет легко писать лаконичный, надежный и высокопроизводительный код. Он также имеет мощную систему правил программирования и удобную стандартную библиотеку для создания критически важного, правильного, быстрого и надежного программного обеспечения.

Визуальный базовый

Visual Basic – это объектно-ориентированный язык программирования, разработанный Microsoft. Использование Visual Basic позволяет быстро и легко создавать безопасные для типов приложения .NET. Безопасность типов – это степень, в которой язык программирования препятствует или предотвращает логические ошибки кодирования.

Языки общей языковой инфраструктуры (CLI)

Такие языки, как ClojureCLR, Eiffel, IronPython, PowerBuilder и многие другие, также работают на платформе .NET. Это связано с тем, что в .NET реализована инфраструктура общего языка (CLI). Интерфейс командной строки можно рассматривать как шаблон для создания языков, совместимых с расширением .NET.

Что такое среда .NET?

Среда выполнения .NET, также называемая средой выполнения общего языка (CLR), компилирует и выполняет программы .NET в разных операционных системах.

Своевременная компиляция

CLR компилирует код по мере написания разработчиком. Во время компиляции CLR переводит код на общий промежуточный язык (CIL). Например, код, написанный на C#, имеет английский синтаксис и слова. .NET компилирует или переводит этот код в CIL. Код CIL выглядит иначе, потому что это язык машинного кода более низкого уровня.

Исполнение

Среда выполнения .NET управляет выполнением кода CIL. CIL совместим с несколькими платформами, и его может обрабатывать любая операционная система. Кроссплатформенная совместимость означает способность приложения работать на нескольких разных операционных системах с минимальными изменениями. Например, приложение на языке C# может работать в Windows, Linux или macOS без каких-либо изменений кода. Такое приложение называется кроссплатформенным.

Что такое платформы моделей приложений .NET?

Платформы моделей приложений представляют собой набор инструментов и библиотек для разработчиков, которые поддерживают быструю и эффективную разработку проектов .NET. Существуют разные платформы для разных типов приложений, таких как перечисленные ниже.

Интернет-приложения

Платформа ASP .NET расширяет платформу разработчика .NET специально для создания веб-приложений. Она поддерживает такие веб-технологии, как обработка запросов на основе передачи состояния, HTML, CSS и JavaScript. Она предоставляет встроенную базу данных пользователей с многофакторной и внешней аутентификацией. ASP .NET поддерживает стандартные отраслевые протоколы аутентификации со встроенным механизмом безопасности для защиты приложений .NET от кибератак.

Мобильные приложения

Xamarin/Mono можно использовать для запуска приложений .NET во всех основных мобильных операционных системах, включая iOS и Android. Xamarin включает Xamarin.Forms, платформу мобильного пользовательского интерфейса с открытым исходным кодом. Разработчики .NET используют Xamarin.Forms для создания согласованного пользовательского интерфейса на всех мобильных платформах. Все приложения .NET могут выглядеть одинаково даже на разных мобильных устройствах.

Приложения для настольных ПК

Xamarin можно использовать для разработки настольных приложений. Кроме того, универсальная платформа Windows расширяет возможности разработки приложений .NET Windows 10. Windows Presentation Foundation и Windows Forms являются другими платформами для проектирования пользовательского интерфейса в Windows.

Другие приложения

С помощью ML.NET можно разрабатывать и интегрировать пользовательские модели машинного обучения в приложения .NET. Библиотеки .NET IoT можно использовать для разработки приложений на датчиках и других интеллектуальных устройствах. Для любых решений, недоступных на платформах, вы можете найти множество специальных библиотек функций в публичном репозитории NuGet. Вы можете использовать Nuget для создания, совместного использования и использования многих библиотек .NET практически для любых целей.

Как AWS может помочь разработчика .NET?

Разработчики .NET могут быстрее создавать приложения, используя .NET на AWS. В нем есть сервис для каждой работы, поэтому вы можете быстро создавать доказательства концепции, не беспокоясь об управлении инфраструктурой. Ниже приведены некоторые примеры сервисов AWS для разработки .NET.

  • AWS Elastic Beanstalk занимается развертыванием приложений и операционными задачами.
  • Сервис Amazon EC2 предоставляет безопасные и масштабируемые вычислительные ресурсы в облаке.
  • Amazon Aurora автоматизирует администрирование баз данных.

Разработчики .NET также могут использовать инструменты и библиотеки AWS с открытым исходным кодом, например указанные ниже.

  • AWS SDK для .NET упрощает разработчикам Linux и Windows создание приложений .NET.
  • Репозиторий примеров кода AWS помогает ускорить понимание приложений, работающих с сервисами AWS.
  • Цифровая библиотека .NET содержит архив видеороликов, учебных пособий, блогов и других ресурсов для разработчиков .NET.

С выпуском версии .NET 6 разработчики .NET могут еще больше воспользоваться производительностью и экономией средств AWS с Linux. Приложения .NET 6 уже могут использовать множество сервисов AWS без дополнительной работы. В этом руководстве описана поддержка .NET 6 от сервисов и инструментов AWS.

Вы можете начать работу с .NET на AWS, пройдя обучение .NET на AWS, создав приложения .NET на AWS или запустив свое первое приложение .NET на AWS.

Что такое Java?

Java – широко используемый язык программирования для написания интернет-приложений. Язык Java широко использовался на протяжении более двух десятилетий. Миллионы приложений Java используются и сегодня. Java – это многоплатформенный, объектно-ориентированный и сетецентрический язык, который сам по себе может использоваться как платформа. Это быстрый, безопасный и надежный язык программирования для всего: от мобильных приложений и корпоративного ПО до приложений для работы с большими данными и серверных технологий.

Для чего используется язык программирования Java?

Для чего используется язык программирования Java?

Поскольку Java является бесплатным и универсальным языком, на нем создаются локализованные и распространяемые программы. Типичные примеры использования Java см. ниже.

1. Разработка игр

Многие популярные мобильные, компьютерные и видеоигры созданы на Java. Даже современные игры, в которых используются передовые технологии, такие как машинное обучение или виртуальная реальность, создаются с использованием технологии Java.

2. Облачные вычисления

Язык Java часто называют WORA (Write Once and Run Anywhere – «Напиши один раз, запускай где угодно»), что делает его идеальным для децентрализованных облачных приложений. Поставщики облачных услуг выбирают язык Java для запуска программ на широком спектре базовых платформ.

3. Большие данные

Язык Java используется для механизмов обработки данных, которые могут работать со сложными наборами данных и большими объемами данных в режиме реального времени.

4. Искусственный интеллект

Java – это кладезь библиотек машинного обучения. Благодаря своей стабильности и скорости язык стал выбором № 1 для разработки приложений искусственного интеллекта, таких как обработка естественного языка и глубокое обучение.

5. Интернет вещей

Язык Java используется для программирования датчиков и аппаратного обеспечения периферийных устройств, которые могут независимо подключаться к Интернету.

Почему язык Java так популярен среди современных разработчиков ПО?

Секрет популярности Java заключается в простоте его использования. Некоторые причины, по которым разработчики предпочитают Java другим языкам программирования см. ниже.

Высококачественные учебные ресурсы

Поскольку Java существует уже давно, для новых программистов доступно множество учебных ресурсов. Подробная документация, исчерпывающие печатные материалы и курсы помогают разработчикам на протяжении всего обучения. Кроме того, новички могут начать писать код на Core Java, прежде чем переходить на Advanced Java.

Встроенные функции и библиотеки

При использовании Java разработчикам не нужно каждый раз писать новую функцию с нуля. В качестве альтернативы Java предоставляет богатую экосистему встроенных функций и библиотек для разработки ряда приложений.

Активная поддержка сообщества

У Java много активных пользователей и сообщество, которое может поддержать разработчиков, когда они сталкиваются с трудностями при написании кода. ПО платформы Java также регулярно поддерживается и обновляется.

Высококачественные инструменты разработки

Язык Java предлагает различные инструменты для поддержки автоматизированного редактирования, отладки, тестирования, развертывания и управления изменениями. Эти инструменты делают программирование на Java экономичным и быстрым.

Независимость от платформы

Код Java может работать на любой базовой платформе, такой как Windows, Linux, iOS или Android, без перезаписи. Таким образом, язык особенно эффективен в современной среде, где приложения запускаются на нескольких устройствах.

Безопасность

Пользователи могут загружать ненадежный код Java по сети и запускать его в безопасной среде, в которой он не может причинить никакого вреда. Ненадежный код не может заразить хост-систему вирусом, а также не может читать или записывать файлы с жесткого диска. Уровни безопасности и ограничения в Java также легко настраиваются.

Как работает Java?

Все языки программирования являются средством общения с машинами. Аппаратное обеспечение машины реагирует только на электронную связь. Языки программирования высокого уровня, такие как Java, играют роль моста между человеческим и аппаратным языком. Для использования Java разработчики должны понимать две вещи.

1. Язык Java и API

Это внешний интерфейс между разработчиком и платформой Java.

2. Виртуальная машина Java

Это внутренняя связь между платформой Java и базовым аппаратным оборудованием. Подробное описание см. ниже.

Что такое виртуальная машина Java?

Виртуальная машина Java действует как дополнительный уровень абстракции между платформой Java и базовым аппаратным обеспечением машины. Исходный код Java может работать только на тех машинах, на которых установлена виртуальная машина Java (Java Virtual Machine, JVM). Ответ на вопрос, зачем нужна виртуальная машина Java, лежит в истории программирования.

История программирования

Когда естественные языки программирования были впервые разработаны, они подразделялись на две большие категории в зависимости от того, как они взаимодействовали с базовым оборудованием.

  1. Компиляторы. Вся программа написана в естественном английском синтаксисе с помощью компилирующих программ, а затем язык компилирует (или переводит) весь код в машинный код. После этого скомпилированный код запускается на оборудовании.
  2. Интерпретаторы. С помощью интерпретирующих программ каждое высокоуровневое выражение кода интерпретируется в машинный код в режиме реального времени. Зафиксированные предписания немедленно выполняются аппаратным обеспечением перед просмотром следующего предписания.

Среда времени выполнения Java

Программа Java была первым языком, объединившим оба описанных выше метода с использованием JVM. Компилятор кода Java называется виртуальной машиной Java. Любой файл Java сначала компилируется в байт-код. Байт-код Java может работать только в JVM. Затем JVM интерпретирует байт-код для запуска на базовой аппаратной платформе. Поэтому, если приложение работает на компьютере с Windows, JVM интерпретирует его для Windows. Однако при работе на платформе с открытым исходным кодом, такой как Linux, JVM интерпретирует его для Linux.

Как программировать на Java

Чтобы начать программировать на Java, необходимо установить Java Edition в системе. Существует четыре основные версии Java:

  1. стандартная версия Java (Java Standard Edition, Java SE);
  2. корпоративная версия Java (Java Enterprise Edition, Java EE);
  3. микроверсия Java (Java Micro Edition, Java ME).

Что такое Java SE?

Стандартная версия Java – это основная платформа программирования Java. Такая версия содержит все библиотеки и API, которые нужны любому программисту для разработки на Java. Open Java Development Kit (OpenJDK) – это бесплатная реализация Java SE с открытым исходным кодом.

Amazon Corretto – это бесплатная многоплатформенная, готовая к использованию версия пакета средств разработки OpenJDK. Сервис можно использовать в качестве замены для многих дистрибутивов Java SE, при этом он поставляется с бесплатной долгосрочной поддержкой Amazon. Сервис позволяет запускать одну и ту же среду в облаке, локально и на локальном компьютере.

Что такое AWS SDK для Java?

AWS SDK для Java упрощает использование сервисов AWS, предоставляя упорядоченный набор библиотек, с которыми знакомы разработчики Java. AWS SDK for Java также поддерживает более высокий уровень абстракций для упрощения разработки. Доступны библиотеки Java с открытым исходным кодом, ориентированные на AWS, а также примеры кода и справочное руководство по API Java.

Примеры кода SDK содержат примеры кода на языке Java и реальные примеры работы с сервисами AWS, которые ускорят разработку собственных приложений. Кроме того, справочник по Java API описывает работу API в новейшей версии AWS SDK для Java. Кроме того, приводятся образцы запросов, ответов и список ошибок для поддерживаемых сетевых протоколов.

Начните работать с AWS SDK для Java, используя руководство для разработчиков, или посетите центр разработчиков AWS Java.

Популярно об Amazon Web Services

В этом докладе будут рассмотрены сервисы AWS, которые использует наша платформа и с которыми я знаком не по наслышке. Я работаю над проектом, который использует почти все возможные сервисы, а так же мы нацелены в ближайшем будущем охватить ещё больше возможностей, которые предоставляет нам Amazon.

Управление AWS осуществляется как с помощью веб интерфейса (AWS console), так и с помощью Command Line Tools. В консоли собраны все сервисы AWS, но функциональность настройки несколько обрезана. В командной строке же можно более гибко настроить тот или иной сервис, так же доступны закрытые в консоли функции.

Amazon Elastic Compute Cloud (EC2)
Описание

EC2 — это облачный сервис, предоставляющий виртуальные сервера (Amazon EC2 Instance), 2 вида хранилищ данных, а так же балансировщик нагрузки (Load Balancer).

Многие из вас знакомы с VPS — Virtual Private Server. Так вот, EC2 — это не что иное, как сервис, предоставляющий VPS в настоящем облаке, где сервер может легко мигрировать между нодами, а хранилище легко может быть расширено до почти безразмерного. Потому-то в названии и звучит слово Elastic — Эластичный.

Функциональность

EC2 позволяет запускать уже заранее сконфигурированные серверы с предустановленными ОС: Amazon Linux, Red Hat EL, Suse ES, Windows 2008, Oracle EL, Выбор операционных систем выглядит так:

Так же возможно создавать свои образы (AMI — Amazon Machine Image) и использовать любой Linux. Наша платформа использует Debian Squeez как основную систему, но, конечно же мы можем запустить и работать практически на любом дистрибутиве Linux, например CentOS или Ubuntu. Так же мы поддерживаем RHEL и Suse ES.

Есть возможность настроить защиту доступа к серверам. EC2 инстансы объединяются в группы безопасности (Security Groups) с возможностью ограничения доступа по портам с IP или подсетей.
Настройка групп безопасности выглядит следующим образом:

Балансировка нагрузки и автомасштабирование являются очень важными функциями EC2. Вы можете создать правила при которых станет возможно автоматически увеличить количество серверов, например, если один или несколько серверов не справляются с нагрузкой. Контроль за здоровьем серверов ведёт ещё один сервис AWS — Amazon Cloud Watch. С помощью этого сервиса можно создавать разного рода проверки — checks — с помощью которых контролируются важнейшие показатели работы ОС.

Добавление почти бесконечного количества дисков с почти бесконечным объёмом хранения. EBS (Elastic Block Storage) — это один из типов хранилища в EC2. Особенность его такова, что диски, создаваемые по этой технологии не зависимы от VPS-ноды и расположены на специальных Storage серверах, в отличии от Instance хранилищ, которые расположены непосредственно на серверах виртуализации.
Используя EBS, к запущенным серверам можно “наживую” добавлять диски любого размера.
Создание диска:

Elastic IP адреса дают возможность быстро менять адрес сервера, например для того, чтоб избежать DNS propagation — времени обновления DNS зоны по всему миру.

Создание мгновенных образов (Snapshot) позволяет создать слепок диска и использовать его в качестве исходника для AMI (Amazon Machine Image), а так же для простой резервной копии ОС.

Типы серверов

Серверы EC2 можно описать следующей таблицей:

* EC2 compute unit — единица измерения производительности процессоров, сопоставимая c производительностью 1.0-1.2 ГГц процессоров Opteron или Xeon.

Биллинг

Оплата EC2 ведётся почасово, некоторые подсервисы, такие как EBS имеют помесячный биллинг. Для каждого подсервиса есть свой отдельный биллинг по заведомо утверждённой цене в час или в месяц.
Так же у EC2 инстансов существует так называемая резервация (Reservation) — оплачивается сразу 3-4 месяца работы сервера, после чего, час работы сервера стоит в ~1,5 раза дешевле. Резервации удобно использовать, если EC2 используется на постоянной основе — экономия на лицо.

Amazon Simple Storage (S3)
Тезисы
  • Amazon S3 это сервис для хранения данных в файлах. Указано, что предоставляется безразмерное пространство для хранения файлов размером от 1 байта до 5 Терабайт.
  • Файлы хранятся в отдельных бакетах (bucket), в которых можно создавать директории и поддиректории.
  • Бакеты хранятся в разных регионах (Region). Доступны следующие регионы: US Standard, US West (Oregon), US West (Northern California), EU (Ireland), Asia Pacific (Singapore), Asia Pacific (Tokyo), South America (Sao Paulo), и GovCloud (US).
  • К бакетам можно применять разного рода политики безопасности: делать их приватными, публичными, а так же разделять права между пользователями. Например, можно открыть вебсайт:
    bucketname.s3-website-us-east-1.amazonaws.com и хранить там статический контент.
  • S3 может логгировать запросы и складывать отчёты в отдельный бакет. Это удобно при расследовании, когда много пользователей/приложений имеют доступ к сервису.
  • Загрузка, удаление и другие операции доступны по REST или SOAP, так же возможно шифрование канала передачи данных с S3.
  • Интересной деталью является то, что можно встроить BitTorrent протокол заменой http, как основного протокола скачивания файлов.
  • Предоставляется 99.999999999% гарантия целостности и 99.99% гарантия доступности файлов в год.
  • S3 так же предполагает версионность файлов. Всегда можно восстановить файл предыдущей версии, т.е. откатиться до нужного состояния.
  • UPD: Неймспейс названий бакетов один на всех пользователей, по этому названия бакетов должны быть уникальными
Интерфейсы

S3 может управляться с помощью вот такой консоли:

Так же есть официальные и неофициальные инструменты командной строки. Существует огромное количество библиотек для всяческих языков программирования для соединения приложений с S3.

Биллинг

S3 оплачивается помесячно за объём хранимых данных, за запросы и за исходящий траффик. Так же существует Free Tier — 5Гб места, 20.000 запросов скачки, 2.000 запросов закачки и 15 гигабайт трафика в месяц бесплатно.

Amazon Relational Database Service (RDS)
Описание
  • MySQL community edition
  • Oracle Database Standard Edition One
  • Oracle Database Standard Edition
  • Oracle Database Enterprise Edition

Выбор выглядит так:

Дисковое пространство RDS инстанса так же заказывается клиентом. Минимальный размер стораджа — 5 Гб.

Существует возможность гибко настроить доступ к серверу БД с помощью групп безопасности. Доступ возможно дать отдельным адресам/подсетям или же группам безопасности EC2 и всем серверам, которые в неё входят. Это полезно, например при автомасштабировании, когда все экземпляры приложения поднимаются в одной группе и имеют доступ к серверу БД.

Так же можно настроить репликацию между серверами баз данных через консоль или утилиты командной строки.

RDS поддерживает мгновенные слепки (Snapshot) и автобекап, давая возможность быстро и качественно восстановить данные.

Если же случаются проблемы с аппаратным обеспечением, RDS автоматически перенесёт ваш хост на здоровую ноду.

При выходе обновлений, СУБД могут быть автоматически пропатчены и перезагружены. Клиенты уведомляются заблаговременно.

Стоит заметить, что root доступа к СУБД нет. Возможности хранения встроенных процедур и тонкие настройки осуществляются через API и утилиты командной строки.

Все RDS инстансы работают на 64 битной платформе.

Типы RDS инстансов
Биллинг

Как и EC2, оплата RDS проводится за каждый час использования рабочего инстанса, его стораджа, отдельная плата берётся за хранение бекапов и снапшотов. Так же считается количество I/O операций.
Так же существуют Резервации (Reservation) — оплата сразу суммы за 3-4 месяца, после чего на год или 3 года почасовая ставка за работу инстанса значительно снижается. В среднем в полтора раза.

Route 53
Описание

Route53 — это облачный DNS сервис от Amazon. Практически самый обычный сервис имён, отличающийся высокой производительностью и ценой. Это на самом деле дешёвый сервис. Имея немаленькие зоны с мелкими TTL? мы лишь не на много выходим за Free Tier — бесплатный лимит использования и платим сущие гроши за ДНС.

Одной из отличительных возможностей Route53 является его интеграция с другими сервисами AWS, такими как EC2 и балансировщиком нагрузки, S3, CloudFront.

Балансировщик нагрузки не имеет статического адреса, но имеет публичое DNS имя. Используя сторонние сервисы, нам бы приходилось использовать CNAME записи, чтоб ссылаться на это имя, но в Route53 имеется специальный тип записей — ALIAS на балансировщик нагрузки. Это позволяет без пропагаций использовать полную функциональность балансировщика.
Так же инетересно, что можно воспользоваться WRR (Weighted Round Robin) записями, которые позволяют делать балансировку нагрузки на уровне DNS.

Управление Route53 осуществляется через консоль или через инструменты командной строки. Так же существуют несколько сторонних сервисов, которые, скажем, более наглядно, чем консоль, показывают состояние зон и дают более удобную настройку. Конда в консоли не было возмоности управлять Route53, сервисы третьих лиц пользовались большой популярностью, я например часто использовал https://interstate53.com для этих целей.

Биллинг

Оплата производится за запросы, которые считаются миллионами штук.

Simple Queue Service (SQS)
Описание

SQS — сервис для построения очередей событий. Требуется такая очередь, например, когда разделены приложения создания имейла и его посылка. Тогда создаётся элемент очереди c телом письма, хедерами и т.п, а приложение отправляющее почту считывает элементы из очереди и рассылает их.

Мы используем очереди SQS для создания и отправки Push сообщений Apple, WP7 и Android. А так же для отправки электронной почты.

Лимитов по количеству очередей и по количеству элементов в очередях Amazon не предоставляет.

Биллинг

В счёт выставляется количество элементов очередей, вышедшее за Free Tier. На данный момент это 100.000. Платится за каждые 10.000 элементов. Так же взимаются средства за трафик, который сгенерировал сервис за месяц.

Simple Email Service (SES)
Описание

SES используется для отправки почты, а точнее рассылок. Высокая репутация IP адресов, высокая производительность серверов, позволяющая слать десятки-сотни тысяч писем в день даёт возможность осуществлять рассылку сообщений от малого до огромного корпоративного размера предприятия.

Особенностью можно считать автоматическое увеличение лимита писем посланных в сутки. С 10 тысяч до миллиона лимит поднимается атоматически в зависимости от ваших нужд посылки. Так же увеличивается лимит количества писем, посланных в секунду. В начале “прокачки” аккаунта этот лимит стоит на 5 штуках в секунду.

Функционал

SES позволяет слать письма через API — непосредственно из приложения. Существуют десятки библиотек, плагинов дающих возможность слать письма обходя SMTP методы. Для тех приложений, которые не могут быть интегрированы с SES через API — существует опция включения SMTP сервера с авторизацией по связке логин-пароль.
Биллинг
Оплачивается в SES за каждые 10.000 посланных писем в месяц. Так же плата взимается за трафик, который генерируется при отправке писем.

Amazon Cloud Watch
Описание

Cloud Watch используется для мониторинга здоровья/состояния преимущественно всех сервисов AWS, включая стандартный мониторинг здоровья серверов, доступность тех или иных портов, сторадж, работу СУБД, место на S3 и очень много всяких других чеков.

В Cloud Watch существует 3 типа состояний — OK, ALARM и UNSUFFICIENT DATA. Названия говорят сами за себя: чек в состоянии ОК, в состоянии ошибки или тревоги, а так же в неизвестном состоянии. На все состояния можно настроить триггеры, которые будут срабатывать во время изменения счётчика в это состояние.

Автомасштабирование, например, построено на показателях счётчиков CloudWatch. По политикам CloudWatch могут сработать триггеры, которые запускают новые копии серверов для увеличения мощности приложения, и так же при снижении нагрузки потушить ненужные серверы.

Выглядит консоль управления Cloud Watch следующим образом.

Консоль предоставляет почти весь функционал настройки Cloud Watch, но всё же через утилиты командной строки настройка может быть проведена гораздо быстрее и точнее, чем через веб интерфейс.

Биллинг

В оплаты сервиса Cloud Watch входят количество чеков, выходящее за Free Tier. Элементарный мониторинг в этом лимите настроить вполне можно.

AWS Identity and Access Management (IAM)
Описание

Сервис IAM позволяет контролировать права доступа ко всем остальным сервисам AWS. Имея штат сотрудников по всем правилам нужно разграничить доступ администраторов, разработчиков, тестирощиков и так далее. В пределах одно аккаунта могут быть создано до 80 учётных записей пользователей, объединённых в группы, к которым в свою очередь применяются политики безопасности.

  • пару ключей
  • логин и пароль
  • пару сертификатов

Правила для ограничения доступа для сервисов AWS генерируются в JSON формате, вида:

На примере участникам группы полностью открыт сервис SES и позволены все действия, связанные с SES.

IAM так же легко использовать для передачи прав на короткое время третьим лицам, например фрилансерам для настройки сервисов. Ключи, сертификаты и пароли легко быстро отозвать, тем самым прекратив доступ к AWS.

Биллинг

Использование IAM абсолютно бесплатно. Плата взимается только за ресурсы, потребляемые пользователями.

Послесловие

В данной статье сделано краткое и, надеюсь, понятное описание Amazon Web Sevices. К сожалению, такие сервисы как Dynamo DB, Simple DB, Cloud Front и Cloud Formation это описание не затронуло. Это случилось лишь потому, что автор не имеет опыта работы с этими сервисами, но очень надеется что вскоре этот опыт обязательно появится и он сможет проектировать и масштабировать инфраструктуры энтерпрайз размеров опираясь на свой большой опыт.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *