Вы когда -нибудь были в консоли AWS и были полностью сбиты с толку во всех концепциях и жаргоне? У вас есть: группы безопасности, входящие правила, VPC, подсети, интернет -шлюзы, NAT, ENI и все они как -то связаны с сетью. Проще говоря: есть что -то в сети AWS. Так что, если вы собираетесь как -то ворваться в это, вам нужно знать, на чем сосредоточиться: основы.
Сегодня мы будем просматривать основные сетевые компоненты, с которыми вы должны быть знакомы в AWS. Мы расскажем вам, почему вам понадобится компонент, что это такое и как вы его используете. На протяжении всей статьи мы создадим пример запуска веб -сервера в общедоступной подсети как часть нашего собственного VPC.
К концу этой статьи вы поймете основные сетевые концепции: частное IP, виртуальное частное облако (VPC), бесклассовая междоменная маршрутизация (CIDR), подсети, интернет -шлюзы и группы безопасности и использовать их для реализации базового дизайна сети.
3 важные причины для изучения фундаментальных значений AWS сеть
Может, сейчас ты думаешь:
Но я инженер -программист? Мне действительно нужно знать о сети? Разве это не работа по операциям или что -то в этом роде? У меня уже много на тарелке, зачем мне еще одну вещь?
Но вы были бы правы задать вопрос!
Если это вы, и вы еще не убеждены в том, почему вы должны выучить основы сети AWS, позвольте мне дать вам две большие причины …
1. AWS Cloud намного сложнее, если вы не знаете основы сети AWS.
Запускаете ли вы простой EC2 или даже Lambda эти сетевые темы: возникнут VPC, группы безопасности и т. Д. И они будут постоянно отвлекать, когда вы говорите: «О, я просто игнорирую это сейчас». И вы игнорируете это и игнорируете это.
Но со временем не понимание этих оснований начнет тратить ваше время, поскольку вы боретесь с функциями, которые вы на самом деле не понимаете. Даже если вы в какой-то момент, вы вступите в контакт с основами AWS Network, которые мы освещаем сегодня, вы вступите в контакт с основами AWS Networking.
2. Понимание фундаментальных средств AWS Network позволяет вам реализовать принципиально лучшие решения.
Если у вас есть молоток — все это гвоздь.
Если вы не знаете, что возможно на сетевом уровне, вы постоянно реализуете неоптимальные решения на уровне приложения. Я виновен в этом в прошлом, внедряя такие вещи, как IP WhiteListing внутри приложения, когда в идеале они должны находиться на уровне сети.
Когда вы знаете, что возможно на сетевом уровне (даже если вы не можете его реализовать), это позволит вам оспорить свои собственные архитектуры и проекты, чтобы придумать принципиально лучшее программное обеспечение.
3. Cloud Cantive находится на подъеме, и инженерам нужны сетевые навыки AWS.
Работа в облачных местах становится все более и более распространенной. Инженеры теперь обязаны больше, чем когда -либо, выйти из сферы разработки чистого применения и фактически понять проблемы с инфраструктурой, такие как сеть. Больше от вас требуется.
Как мы будем использовать Terraform, чтобы объяснить основы сети AWS.
Хорошо, так что это делает вывод, почему мы хотим изучить эти сетевые концепции — давайте поговорим о том, как мы на самом деле будем это сделать.
Мой предпочтительный способ обучения в облаке-через инфраструктуру как код.
Почему? Потому что это позволяет мне написать инфраструктуру в качестве кода в свое время, подготовить изменения и выполнять их, когда я готов.
Мало того, что инфраструктура как код обеспечивает хороший рабочий процесс, но и отменить ошибки и сохранить историю в контроле версий просто делает жизнь такой стрессовой.
Поэтому, когда мы проходим сегодня сетевые концепции, я также дам вам фрагменты инфраструктуры Terraform как код. Не волнуйтесь, если вы Не знаком с Terraform Поскольку фрагменты маленькие, вам не нужно никаких предварительных знаний. Фрагменты существуют в основном, чтобы показать вам, какие типы аргументов (или свойств) вам необходимо пройти при создании этих ресурсов.
И, конечно же, практическое обучение является лучшим. Поэтому, когда мы закончим читать статью, вы можете Найдите, клонируйте и запустите полный пример кода из этого репо и экспериментируйте с инфраструктурой, как вам угодно.
Понимание IP и необходимость в частных адресах.
Право — этого достаточно от вступления, давайте доберемся до этого!
Во -первых, нам нужно немного пройти через теорию о IP и IP -адресах, но остаться со мной, оно того стоит. Помните, что этот пост о основных принципах, поэтому сопротивляйтесь стремлению пропустить вперед!
IP -адреса представляют собой серию уникальных чисел, которые назначаются компьютеру, чтобы сделать его доступным в данной сети. IP -адреса выглядят как: 123.122.11.56
Анкет Как правило, когда мы говорим о IP -адресах, мы говорим в контексте общественного Интернета. Общественный Интернет — это открытая сеть, доступная во всем мире.
Но в Интернете мы не вступаем в контакт с этими необработанными IP -адресами. И это связано с тем, что DNS (система доменных имен) отображает эту машину соответствующую IP -IP с более дружелюбными именами, которые мы используем чаще.
Если вы заинтересованы, попробуйте положить 34.242.183.30
в вашу строку поиска. Это текущий упругой IP -адрес этого сайта. Или, чтобы быть более точным, это IP, принадлежащий Amazon, который в настоящее время маршрутирует на машине EC2, которая работает WordPress.
Мой сайт является примером того, что является публичным в Интернете, и я хочу, чтобы это было! Однако не каждая машина должна быть в Интернете. Такие как бэк-офис бизнес-функции, такие как бухгалтерский учет. Эти машины должны быть доступны кем -то, но не с кем -либо в Интернете.
И чтобы сделать это, мы используем частное адресное пространство.
Когда Интернет достиг совершеннолетия, Было принято решение зарезервировать следующие адресные пространства для частного использования :
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Вы узнаете формат IP -адреса, но вы заметите, что за цифрами следует число: /12
Анкет Это число известно как маска сети, и он определяет диапазон IP -адресов. Но мы рассмотрим это более подробно позже. Все, что вам нужно знать, это то, что есть (большой!) Количество IP -адресов, которые зарезервированы для частного использования, то есть не в общедоступном Интернете. И мы можем использовать эти частные адресные пространства в нашу пользу.
И это аккуратно приводит нас к тому, что мы будем строить сегодня! Которая является сетью VPC, которая содержит частную сеть (используя вышеуказанные адресные пространства) и разбивается на три меньшие подсети. Одной подсети будет предоставлен доступ в Интернет, и мы развертываем его веб -сервер. Две другие подсету будут частными и могут использоваться для таких вещей, как внутренние бизнес -функции, как мы уже говорили.
Сегодняшняя справочная архитектура.
Мы рассмотрим компоненты, которые нам понадобятся для создания такого типа архитектурных компонентов за компонентом.
Итак, давайте начнем с самой важной темы: виртуальные частные облака.
Что такое виртуальное частное облако (VPC)?
VPC или виртуальное частное облако — это способ логически отделенного ресурсов, когда вы работаете в AWS. AWS владеет множеством машин, поэтому VPC-это в основном способ претендовать на машины, которые вам принадлежат, чтобы никто другой не мог получить к ним доступ. Когда у нас есть VPC, ресурсы, содержащиеся внутри него, могут общаться только с другими ресурсами VPC. Что ж, Если мы не сделаем какие -то особые трюки для подключения VPC, но мы не рассмотрим это сегодня.
Поэтому VPC-это просто способ позвонить в финансирование бизнеса или даже подразделы бизнеса. Мы могли бы даже использовать VPC для реализации различных сред, таких как демонстрация, тестирование, проставочная и производственная среда. Поскольку производственные среды не нуждаются в доступе к нашим тестовым средам, и наоборот. Есть много разных вариантов использования для VPC.
VPC, будучи сетью, имеет выделенное адресное пространство. Когда мы создаем ресурсы в нашем VPC, они должны сидеть в специальном адресном пространстве нашего VPC. Помните лидерные диапазоны частных адресов, о которых мы говорили раньше?
Ну, VPC в AWS может быть таким же большим, как 64 000
Уникальный IP вплоть до такой же маленькой, как 16
Анкет
Но что определяет размер? Что ж, многие факторы, включая наше прогноз будущего роста, но давайте не будем слишком беспокоиться об этом сейчас.
Последняя вещь, которую нужно рассмотреть о VPC или любой частной сети: столкновения с имен.
Что я имею в виду?
Ну, если мы хотим соединить два VPC вместе, и они используют то же частное адресное пространство, которое вызовет проблемы. Это означает, что мы, вероятно, захотим создать все наши частные сети с различными диапазонами IP -адресов, если сможем.
Давайте посмотрим, как выглядит создание VPC в Terraform …
Создание VPC с Terraform
Как вы можете видеть, прежде всего, необходимо для создания нового VPC, это диапазон адресов, который представляет собой блок CIDR.
Если вам интересно, что это странно выглядящий IP, не волнуйтесь — мы скоро рассмотрим его.
Все, что вам нужно знать, это то, что VPC создается, когда мы определяем диапазон частных IP, чтобы выделить его. Простой.
Что такое подсеть?
Но прежде чем мы поговорим об этих диапазонах IP -адресов, блоках CIDR, давайте представим подсету, поскольку они тесно связаны с VPC.
Подсеть — это (одно из немногих интуитивно именованных основ, которые мы рассмотрим сегодня!) Очень многое, как это звучит. Подсети — это просто меньшая часть более крупной сети. Сеть может быть нарезана на более мелкие кусочки, чтобы к ним можно было применять различные сетевые правила.
Давайте посмотрим на Terraform:
Здесь вы можете видеть, что мы создаем VPC (как и раньше). Но теперь мы также создаем подсеть. Чтобы создать подсеть, нам необходимо определить зону доступности, поскольку они могут существовать только в одном, VPC, к которой она принадлежит, и ее размер.
Но снова есть странная IP -адреса (блок CIDR)…
Я достаточно остановился на том, чтобы говорить об этом, поэтому давайте закроем маску сети, что это такое и как это позволяет нам определить диапазоны для VPC и подсчетов.
Что такое сеть?
Сначала массы сети могут показаться немного пугающими — они, вероятно, самая запутанная сеть AWS, фундаментальная, которую мы рассмотрим сегодня.
Но когда туман прояснится, вы будете намного лучше для их знания, они полезны, и они много приходят.
Блок CIDR с сетью выглядит так:
10.0.0.0/24
Вы все время увидите этот формат блока CIDR в AWS — и вы можете задуматься о том, что именно это такое.
IP -адреса блоки
Первая часть блока CIDR, четыре числа 10.0.0.1
(разделенные точки) представляют число до 256
каждый. Почему 256
? Потому что каждый кусок составляет 8 бит, а 8 бит могут представлять собой 2^8
Числа всего.
Это анатомия IP -адреса.
Ну, на самом деле IP -адрес выглядит так:
10101001.11100010.01010001.11011010.
Это 4
блоки 8
биты (так 32
в общей сложности), где каждый блок содержит до 256
уникальные адресные пространства.
Так почему бы нам просто не использовать длинное бинарное представление? Потому что базовый эквивалент (например, 10.256.0.0
) короче писать и легче читать (в конце концов!). Однако — имейте в виду основной бинарный эквивалент, поскольку это важно, когда вы делаете расчеты CIDR.
Понимание диапазонов сети
Вторая часть числа, в предыдущем примере: /24
это то, что называется сетью. Маска сети определяет, где заканчивается сетевая диапазон. В сочетании с IP (четыре числа с точками) у нас есть диапазон, который начинается с IP и заканчивается после указанного количества адресов сети. Маска сети представляет количество бит в IP (из 32), которые посвящены внешней сети. Так что все осталось (из исходного 32) — это то, что дается нашей сети.
Чтобы лучше понять это, давайте посмотрим на пример …
Например, сеть /24
сдается 24
биты в сеть. Что оставляет нас с 8
Биты остались, потому что 32 -
Анкет И 8 битов равны 2^8
Общие адреса, которые 256
пробелы.
Почему это 2^8
Вам может быть интересно? Потому что так работает бинарный. Для каждого дополнительного пространства, которое у нас есть, он приводит к тому, что это количество возможностей чисел. Двоичный 0
имеет два возможных значения 0
или 1
, что равно: 2^1
Анкет Двоичный 00
имеет четыре возможных значения: 00
, 01
10
и 11
который равен 2^2
Анкет
Так что резюме …
Чтобы рассчитать маску сети, возьмите /22
номер, вычтите из 32
и положить остаток как сила 2
Анкет SO: 32
Поэтому маска сети 22
дает нашей сети потенциал 2^10 =
1024
Адресные места!
Как мы уже говорили, 64 000
является пределом размера сети в AWS, которая является /16
кусочек Сеть. Принимая во внимание, что самый маленький диапазон, который вы можете иметь, составляет 16, что означает, что у вас есть четыре бита: 2^4
Анкет
Помните — маска сети просто определяет диапазон IP, начиная с IP и заканчивается на определенной конечной точке сети.
Если вы заинтересованы, чтобы больше играть с диапазонами адресов CIDR A Калькулятор подсети был бы умным выбором.
Калькулятор подсети cidr.xyz
Хорошее упражнение, связанное с калькулятором, — это представить, что вы внедряете VPC и связанные с ними детские сети. Попробуйте вставить разные сети, посмотрите на их размер и постарайтесь угадать, какие ответы вы получите правильно.
Что такое таблица маршрутов?
Далее в нашем списке основ для сети AWS — это таблица маршрутов.
Таблица маршрутов в значительной степени связана с подсети, как таблица маршрутов — это то, что решает, как протекает трафик между подсети. Вам нужно перемещать трафик из вашей общественности в свою личную сеть? Таблицы маршрутизации должны быть настроены, чтобы определить, куда могут получить услуги.
Пример создания 2 таблиц маршрута (частные и общественные)
Приведенный выше код довольно детально разбит, но вы можете видеть, что мы создаем две записи таблицы маршрутов, частный вход маршрута без разрешенных маршрутов (по -настоящему частных) и другой, который подключен к интернет -шлюзу VPC. Мы можем повторно использовать наш личный таблицу маршрутов с обеими частными подсчетами.
Без маршрутизации таблиц у нас были бы кусочки сети без правил о том, кто может поговорить с кем и как. Окончательная запись в вышеупомянутом просто связывает две части: наша подсеть и наша таблица маршрутов (публичная).
Используя этот код, который мы теперь позволяем, позволяя трафику переходить в нашу публичную подсеть и обратно! Ну, почти нам нужен еще один компонент …
Что такое интернет -шлюз?
Интернет -шлюз — это компонент AWS, который при прикреплении к VPC дает общественный доступ в Интернет VPC.
Но … сначала сделаем это на шаг! Помните, подсеть может быть государственной или частной. Общественная сеть — это просто сеть, которая имеет доступ к Интернету.
Тем не менее, стоит отметить, что в настоящее время вы не можете создать частную или публичную подсети в AWS напрямую как таковой.
Что я имею в виду?
Что ж, чтобы создать публичную подсеть, нам нужно создать обычную подсеть, но обновить его таблицу маршрутов, чтобы указать на Интернет, и убедиться, что наш VPC настроен на интернет -шлюз.
Тема интернет -шлюзов становится немного более запутанной, когда мы начинаем думать о доступе в Интернете. Почему? Потому что некоторые услуги нуждаются в Интернете (например, статический веб -сайт). Принимая во внимание, что другие услуги нуждаются в трафике, который вытекает, но не в том, что является внутренним частным микро-сервисом, который должен получить зависимости от других услуг на основе Интернета.
Настройка интернет -шлюза проста, просто создайте ресурс и прикрепите его к VPC.
К этому моменту, если вы следили за кодом, у нас есть VPC и некоторые подсеты, мы обнародовали одну из наших подсчетов, подключив таблицу маршрутов и интернет -шлюз. Теперь пришло время поместить ресурс, наш экземпляр EC2 (веб -сервер) в нашу открытую подсети, чтобы он мог получить доступ к миру. Ура!
Ну … на самом деле не так быстро. Потому что у нас есть еще одна проблема. Теперь трафик может прийти из Интернета через интернет -шлюз в нашу публичную подсеть и постучать в дверь нашего экземпляра, но он не может войти. Почему? Потому что случаи имеют брандмауэры. И эти брандмауэры называются группами безопасности. Чтобы получить доступ к нашему экземпляру, нам необходимо обеспечить общественный трафик через нашу группу безопасности.
Что такое группа безопасности?
Группа безопасности — это набор сетевых правил, которые применяются к ресурсу. Группа безопасности отвечает за определение того, какой трафик (на основе порта и протокола) может ввести или оставить определенные ресурсы. Один ресурс может ссылаться на множество различных групп безопасности для объединения различных типов доступа. Например, мы можем захотеть иметь группу безопасности, которая позволяет HTTP и HTTPS трафик на наш веб -сайт. Однако мы могли бы захотеть доступ к SSH для нашего сервиса, но мы захотим убедиться, что доступ SSH ограничен, например, IP, а не весь Интернет.
Посмотрим, как выглядит группа безопасности в Terraform …
Пример подсети.
Здесь мы видим, что у нас есть правило входа, что означает, что трафик, который поступает в наш брандмауэр, должен придерживаться правила, что позволяет трафик TCP на порту 80. Который должен разрешить базовый доступ веб -запросов. У нас также есть правило выхода, которое позволяет весь трафик. Правило выхода позволяет экземпляру выполнять вызовы в Интернет, как оно хочет, в нашем случае мы позволяем ему сделать это, потому что нам нужно установить наш веб -сервер, который требует доступа к Интернету.
И, поскольку наша подсеть на месте теперь может добраться до нашего общедоступного экземпляра через наш шлюз API, он использует запись таблицы маршрутов для потока трафика в нашу публичную подсеть, группа безопасности позволяет трафику нанести удар по экземпляру и вуаля! У нас есть рабочий веб -сервер, работающий внутри общедоступной подсети в пользовательском VPC — потрясающе!
В итоге
Сегодня мы рассмотрели много фундаментов AWS сети, поэтому я хочу быстро переоценить все:
- Ip — Адрес, используемый для отображения запросов на машины, может быть государственным или частным.
- VPC — Ломтик облачной инфраструктуры AWS
- Подсеть — Часть более крупной сети, обычно подсеть VPC.
- Сетевая маска — Способ обозначения диапазона IP, используемого для объединения сети в подсети.
- Таблица маршрутов — Набор правил, которые присваиваются подсети, которая определяет, как подсетируются.
- Интернет -шлюз — ресурс AWS, который дает подсеть доступ к общедоступному Интернету.
- Группа безопасности — По сути, брандмауэр, который диктует, какой трафик (через протоколы и порты) может получить доступ к ресурсу.
Создайте свою собственную сеть
И это все, что у нас есть время на сегодня. Мы много освещали, я знаю. Но я хотел просто коснуться поверхности этих важных концепций. Если вы сосредоточите свою энергию на изучении чего -либо, связанного с сетью AWS, сначала сосредоточьтесь на этих аспектах.
И как всегда помните, что лучший способ выучить концепции — это испачкать руки. Так что возьмите примеры кода Мы обсуждали, попытаемся сломать их и, как правило, повеселиться с ними. Просто убедитесь, что Правильно настроить свою учетную запись AWS первый. Repo имеет терраформ для создания вашего VPC, подсчетов, интернет -шлюза, записей таблицы маршрутов, экземпляра веб -сервера и группы безопасности. Попробуйте использовать его в качестве ссылки и повторно создать свой собственный VPC Peection.
Я надеюсь, что туман прояснился для вас сегодня немного больше, придерживайтесь его, продолжайте читать, и вы доберетесь туда. Не забудьте зарегистрироваться в информационном бюллетене, где каждые две недели вы получаете статьи о основах Cloud Lative, в последних новостях и, как правило, оставаться в курсе.
Скоро поговорим!
Каковы были самые сложные сетевые концепции, с которыми вы вступили в контакт до сих пор?
Пост Основы сети AWS: простое руководство для инженеров -программистов. появился первым на Dev Coach Анкет
Оригинал: «https://dev.to/loujaybee/aws-networking-fundamentals-a-simple-guide-for-software-engineers-4dof»