Какой тип данных хранится в Elasti c Block Storage? - PullRequest
0 голосов
/ 11 февраля 2020

Я готовлюсь к экзамену AWS SAA и, рассматривая различные сервисы, застрял в концепции Elasti c Block Storage, что именно она хранит и чем она отличается от AWS RDS. Позвольте мне уточнить.

Итак, насколько я понимаю, EBS - это служба хранения, которая сохраняет данные в экземпляре EC2. Это достаточно просто, но когда я добрался до RDS, я запутался в том, какой тип данных хранится в хранилище блоков и что именно снимается и резервируется. Вот пример.

Я Ruby на Rails Developer. Я покупаю экземпляр EC2 и устанавливаю ruby на рельсы, различные драгоценные камни, базу данных mysql и т. Д. c. В основном все, что мне нужно, чтобы запустить приложение для блога в социальных сетях. Так что я думал, что EBS делает сохранение пользовательской информации, блогов, постов, комментариев и т. Д. c. в EBS в качестве базы данных (эфемерно с экземпляром или блоком с ebs). Это имеет смысл для меня. Пользователи и их блоги, посты, комментарии и др. c. Нужно где-то хранить, и если я как-то потеряю свой экземпляр ec2, мне не стоит беспокоиться, потому что у меня есть EBS со всей этой информацией.

Теперь в какой-то момент я переключаюсь на AWS RDS и теперь я ' мне интересно, зачем мне вообще нужен EBS? Например, у меня есть база данных mySQL rds с ее собственными резервными копиями и снимками, отделенными от экземпляра ec2, в котором хранятся пользовательские данные, блоги и т. Д. c. Зачем мне EBS сейчас? Нужно ли мне это сейчас? Если мне это нужно, что там хранится, что важно сейчас, когда моя информация о пользователе сохраняется в RDS? Если кто-нибудь может помочь мне понять разницу, я буду признателен за это.

Кроме того, в качестве дополнительного вопроса я понимаю, что экземпляры EC2 находятся в опубликованном c su bnet в VP C. Кроме того, я понимаю, что базы данных должны быть на частном su bnet в соответствии с AWS. Так что, если у меня есть linux ec2 и затем я запускаю sudo apt-get mysql для установки базы данных с ruby на рельсы, разве это не база данных mysql в publi c su bnet на моей машине ec2?

1 Ответ

1 голос
/ 11 февраля 2020

Вы когда-нибудь проходили путь к Best Buy и купили внешний жесткий диск USB ? Вы знаете ... тип, который вы бы использовали для резервного копирования или загрузки фильмов, чтобы дать своим друзьям.

Ну, воспринимайте том Amazon EBS как этот диск . Это внешний диск, поэтому он не «внутри» компьютера. Вы можете отключить его от одного компьютера и подключить к другому компьютеру. Вы можете загрузить любой тип файла (документы Word, PDF, изображения, видео). Сам диск тупой - он просто хранит информацию о дисковых «блоках». Это операционная система (Windows, Ma c, Linux), которая знает, как интерпретировать информацию, чтобы вы могли просматривать каталоги, создавать файлы и читать содержимое.

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

Amazon Экземплярам EC2 нужен диск, потому что Windows, Linux и Ma c ожидают наличия диска. Сама операционная система хранится на диске. Когда вы открываете и сохраняете файлы, они go на диск. Вы не можете загрузить экземпляр EC2 без диска, потому что диск содержит операционную систему.

Однако ... в то время как вы можете хранить данные на томе Amazon EBS, который подключен к экземпляру EC2, это не так. не обязательно хорошая идея. Лучше, если приложения, работающие на EC2, хранят свои важные данные , внешние по отношению к экземпляру , потому что:

  • В случае сбоя экземпляра данные безопасны
  • Несколько EC2 экземпляры могут получать доступ к данным (том Amazon EBS можно подключать только к одному экземпляру за один раз)
  • Приложение можно обновить, не влияя на данные

Поэтому приложения должны хранить их данные в таких сервисах, как база данных (Amazon RDS, Amazon DynamoDB и т. д. c) или хранилище объектов (Amazon S3).

Amazon RDS , однако, является программой. Вы общаетесь с программой, и она делает вещи. В этом случае программа представляет собой реляционную базу данных . Реляционная база данных использует SQL для хранения и запроса данных. Данные хранятся в таблицах , которые немного похожи на электронную таблицу - у них есть строки и столбцы, и вы можете выполнить запросов к данным (например, дает мне сумму продаж столбец, где Страна = Новая Зеландия ).

Но где сама программа базы данных хранит данные? На диске! Фактически, Amazon RDS хранит свои данные на томе Amazon EBS . Задача программы базы данных - указать диску , где хранить данные и где прочитать данные. Программа базы данных делает все умные вещи.

Таким образом, даже если ваш экземпляр EC2 хранит данные в Amazon RDS вместо локального диска, данные в конечном итоге все равно сохраняются на томах Amazon EBS! Разница в том, что содержимое этого диска управляется базой данных. У вас нет прямого доступа к этому диску.


Что касается вашего вопроса su bnet, то да ... Если вы устанавливаете базу данных на экземпляр Amazon EC2, который находится в общедоступном c su bnet, тогда база данных также в паблике c su bnet.

Publi c и частные подсети перенесены со старых времен физической сети. Маршрутизаторы использовались для защиты частей сети - они устанавливались между «подсетями», контролируя, что трафик c может go входить и выходить из su bnet. Эта концепция распространяется и на облако.

Однако облако даже лучше, чем этот тип сетей. AWS имеет концепцию группы безопасности , которая похожа на брандмауэр в каждом экземпляре EC2 , а не только между подсетями. Группа безопасности позволяет вам контролировать тип трафика c, входящего и выходящего из экземпляра EC2. Следовательно, вы могли бы на самом деле отбросить концепцию публикации c su bnet и частного su bnet и просто использовать группы безопасности для управления сетевым трафиком c. Однако сетевым людям нравятся старые концепции и дополнительный уровень безопасности, который они обеспечивают. Поэтому они используют обе группы безопасности и публичные / частные подсети для добавления дополнительных уровней безопасности.

Так что, да, вы можете поместить базу данных в публичные c su bnet , Вы можете защитить его с помощью групп безопасности, и это будет совершенно безопасно. Но добавление этого в приватный su bnet добавляет еще один уровень безопасности, который, как правило, является хорошей идеей, когда вы говорите о защите важных данных. Это похоже на то, как люди ставят защитную дверь в передней части своего дома - это дополнительный уровень безопасности, который заставляет их чувствовать себя еще безопаснее.

...