Что самое главное в любой организации?

Скажу вам, это ДАННЫЕ. То, как организации обрабатывают свои данные (включая их эффективное хранение и извлечение с наименьшими затратами), определяет осуществимость их проектов в долгосрочной перспективе.

Как правильно говорят в корпоративном мире, данные - это золото, и никто не хочет терять свое золото.

Прежде чем углубиться в Amazon Web Services ™ (сокращенно AWS ™), позвольте мне рассказать вам о проблемах, с которыми приходится сталкиваться при работе с данными в реальном мире. Все потребности в хранении и обработке данных выполняются серверами. Но в реальном мире данные и их обработка могут стать непосильной задачей для компании, и часто требуются огромные инвестиции в оборудование (серверы) и соответствующие знания, необходимые для их обслуживания.

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

Давайте посмотрим на это на примере.

Предположим, вы хотите подключить электричество к своему новому дому. Использование AWS похоже на покупку электроэнергии у энергетической компании, а не на покупку и эксплуатацию всего оборудования (генераторы и т. Д.) Самостоятельно.

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

Amazon Web Services (AWS) предлагает несколько сервисов. Клиент платит только за те услуги, которыми он пользуется, что делает его рентабельным. Сервисы, предоставляемые AWS, включают хранилище, вычислительные ресурсы, базу данных (Amazon RDS ™, Amazon Dynamo DB ™, Amazon ElasticCache ™, Amazon Redshift ™) , и другие.

Сегодня я буду обсуждать широко используемые платформы хранения в ИТ-индустрии:

  • Amazon S3 ™
  • Amazon Glacier ™

Amazon S3

Amazon S3 (Simple Storage Service) - это масштабируемая и быстрая служба хранения в Интернете. Это служба хранилища объектов, что означает, что когда пользователь загружает данные в S3, они сохраняются как объект с неповрежденными метаданными. Каждому объекту дается идентификатор. В Amazon S3 можно загружать любой тип статического контента. Максимальный объем хранилища, предлагаемый S3, составляет 5 терабайт.

Основное преимущество использования S3 заключается в том, что вам не требуется много инфраструктуры (память, серверы и т. Д.). Любой желающий может легко использовать S3, просто войдя в свою учетную запись AWS и начав использовать сервисы S3 с минимальными затратами. Консоль разработана таким образом, что не только продвинутые программисты, но и люди с гораздо меньшим опытом программирования могут использовать ее для своих нужд.

S3 также предлагает функцию блокировки общего доступа ко всем вашим объектам на уровне корзины или учетной записи с помощью S3 Block Public Access. Он предлагает функции и дополнительные услуги, которые запрашивают данные без необходимости копировать данные в отдельное хранилище данных.

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

Ледник

AWS предлагает Glacier в качестве холодного варианта хранения данных. Холодные данные используются редко, но их хранение важно для деловых целей. Данные, которые не используются часто, хранятся в Glacier и извлекаются по мере необходимости. Чтобы сделать данные доступными для использования при извлечении из Glacier, требуется некоторое время, но это намного более рентабельно и отсутствует верхний предел емкости хранилища (по сравнению с S3, где максимальный размер хранилища составляет 5 ТБ).

3 основных компонента ледника

  • Своды
  • Архив
  • Работа
  • Конфигурация уведомлений

Хранилища

Vault - это контейнер для хранения данных в Glacier. Аналог ведра в S3. Он зависит от региона и имеет уникальное имя, которое будет использоваться при взаимодействии с Glacier в будущем. Типичный адрес хранилища выглядит так:

https://<region-specific endpoint>/<account-id>/vaults/<vaultname>

Все операции с хранилищами зависят от региона, и в одной учетной записи AWS можно создать несколько хранилищ. Для создания нового хранилища можно использовать метод createVault (), который предоставляется AWS SDK. Чтобы узнать о существующих хранилищах в учетной записи, используйте метод listVaults (), предоставляемый AWS SDK.

listVaults() { // to list all the vaults of one account
       let params = {accountId: “-”
       };
       glacier.listVaults(params, function (err, data) {
           if (err) console.log(err, err.stack); // an error occurred
           else console.log(data); // successful response
       });
    }

Архив

Архив - это данные, которые хранятся в хранилище. Это может быть текст, изображение, видео, аудио и т. Д. Каждый архив имеет уникальный Архив. Связанный с ним идентификатор, который используется для взаимодействия с этими данными (архив).

Типичный адрес архива выглядит так:

https://<region-specific endpoint>/<account-id>/vaults/<vault-name>/archives/<archive-id>

В хранилище можно хранить любое количество данных. Когда загрузка архива создается с помощью метода uploadArchive (), предоставляемого AWS SDK, он принимает имя хранилища и идентификатор учетной записи в качестве обязательных входных данных для хранения загруженного архива в этом месте и возвращает уникальный идентификатор архива. .

uploadArchive() { // Uploading File to a vault
        let params = {
            accountId: ‘-’,
            vaultName: ‘STRING_VALUE’,
            archiveDescription: ‘STRING_VALUE’,
            body: “Sample text DATA”,// It can be string Value or a File Stream
            checksum: ‘’
        };
        glacier.uploadArchive(params, function (err, data) {
            if (err) console.log(err, err.stack); // an error occurred
            else console.log(data); // successful response
        });
    }

Работа

Процесс получения, обновления или удаления архива, находящегося в хранилище, известен как задание. Каждое задание при создании экземпляра с помощью метода initiateJob (), предоставленного в AWS SDK, принимает идентификатор учетной записи, имя хранилища и идентификатор архива (обязательные входные данные) и возвращает уникальное задание. ID, который требуется при проверке статуса задания / загрузке выходных данных задания.

Задание стандартного извлечения занимает около 3-5 часов, пользователь также может инициировать ускоренное извлечение, которое возвращает данные за 1-5 минут.

Задание идентифицируется по URL-адресу, который выглядит следующим образом:

https://<region-specific endpoint>/<account-id>/vaults/<vault-name>/jobs/<job-id>

initiateJob() { //Create a new Job
        let params = {
        accountId: “-”,
        vaultName: “STRING_VALUE”,
        jobParameters: {
            ArchiveId: “STRING_VALUE”,
            Description: “archive-retrieval job”,
            Type: “archive-retrieval”,
            Tier: ‘Expedited’ // Default is Standard which takes approx 4–5 hours, Expedited will take 1–5 min
            }
         };
         glacier.initiateJob(params, function (err, data) {
             if (err) console.log(err, err.stack); // an error occurred
             else console.log(data); // successful response
         });
    }

Конфигурация уведомлений

Каждое задание, когда оно начато, требует некоторого времени для завершения. Выполнение стандартного задания по извлечению из архива занимает около 4–5 часов. AWS предлагает службу уведомлений, в которой можно настроить хранилище для отправки уведомления в тему Amazon Simple Notification Service ™ (Amazon SNS) по завершении задания.

Если кто-то не хочет использовать службу уведомлений, он может вызвать метод JobList (), предоставляемый AWS SDK, чтобы узнать статус заданий, инициированных для конкретного хранилища, и может вызвать метод getJobOutput () с требуемым параметры для загрузки вывода определенного задания по завершении.

listJobs() { // TO see the Status of Ongoing Jobs
        let params = {
            accountId: “-”,
            vaultName: “STRING_VALUE”
        };
        glacier.listJobs(params, function (err, data) {
            if (err) console.log(err, err.stack); // an error occurred
            else console.log(data);
        });
    }
getJobOutput() {
        let params = {
            accountId: ‘-’, /* required */
            jobId: ‘STRING_VALUE’, /* required */
            vaultName: ‘STRING_VALUE’, /* required */
            range: ‘’
        };
        glacier.getJobOutput(params, async function (err, data) {
            if (err) console.log(err, err.stack); // an error occurred
            else {
                await new Promise((resolve, reject) => {
                    fs.writeFile(`./downloadedFileFromGlacier.txt`, data.body.toString() + “\n”, { flag: “a” }, ((err) => {
                       if (err)
                           return reject(err);
                       return resolve(“written the batch successfully”);
                   }));
                });
            }          // Successful response
        });
    }

Заключение

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

Вы когда-нибудь пытались получить доступ к своему серверу без SSH-клиента? Мы сделали, и вы можете прочитать об этом здесь:



Amazon, Amazon Web Services, AWS, Amazon S3, Amazon Glacier, Amazon RDS, Amazon Dynamo DB, ElasticCache, Amazon Redshift и Amazon Simple Notification Service являются товарными знаками Amazon.com, Inc. или ее дочерних компаний в США. и / или другие страны. DLT Labs является товарным знаком DLT Global, Inc.

Автор - Вайбхав Баджпай, DLT Labs

Об авторе: Вайбхав в настоящее время работает с DL Ecosystem в качестве разработчика Node.js.