web-dev-qa-db-fra.com

AWS VPC - Internet Gateway vs NAT

Qu'est-ce qu'une passerelle Internet? Qu'est-ce qu'une instance NAT? Quels services offrent-ils?

En lisant la documentation AWS VPC, je suppose qu'ils mappent les adresses IP privées en adresses routables sur Internet pour les demandes sortantes et acheminent les réponses entrantes depuis Internet vers le demandeur sur le sous-réseau.

Alors, quelles sont les différences entre eux? Quels scénarios dois-je utiliser une instance NAT à la place (ou à côté d'une passerelle Internet)? S'agit-il essentiellement d'instances EC2 exécutant certaines applications réseau ou s'agit-il d'un matériel spécifique tel qu'un routeur?

Au lieu de simplement pointer vers les liens de documentation AWS, pouvez-vous expliquer ces liens en ajoutant des informations de base sur les sous-réseaux publics et privés afin que tout débutant ayant une connaissance limitée de la mise en réseau puisse les comprendre facilement? Aussi, quand devrais-je utiliser une passerelle NAT à la place d'une instance NAT?

P.S. AWS VPC étant nouveau pour moi, je peux donc comparer des pommes à des oranges ici.

177
HappyTown

passerelle Internet

Une passerelle Internet est une connexion logique entre Amazon VPC et Internet. Ce n'est pas un périphérique physique. Un seul peut être associé à chaque VPC. Cela ne ne limite pas la bande passante de la connectivité Internet. (La seule limitation de la bande passante est la taille de l'instance Amazon EC2. Elle s'applique à tout le trafic - interne au VPC et sur Internet.)

Si un VPC n'a pas possède une passerelle Internet, les ressources du VPC inaccessible à partir d'Internet (à moins que le trafic ne passe par un réseau d'entreprise et un VPN/Direct Connect ).

Un sous-réseau est considéré comme un sous-réseau public s'il possède une table de routage qui dirige le trafic vers la passerelle Internet.

Instance NAT

Une instance NAT est une instance Amazon EC2 configurée pour transférer le trafic vers Internet. Il peut être lancé à partir d'une AMI existante ou configuré avec les données utilisateur comme ceci:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

Les instances d'un sous-réseau privé qui souhaitent accéder à Internet peuvent voir leur trafic lié à Internet transféré à l'instance NAT via une configuration de table de routage. L'instance NAT fera alors la demande à Internet (car elle se trouve dans un sous-réseau public) et la réponse sera retransmise à l'instance privée.

Le trafic envoyé à une instance NAT sera généralement envoyé à une adresse IP qui n'est pas associée à l'instance NAT (elle sera destinée à un serveur sur Internet). Par conséquent, il est important de désactiver l’option Vérification de la source/destination sur l’instance NAT, sinon le trafic sera bloqué.

passerelle NAT

AWS a introduit un service de passerelle NAT qui peut remplacer une instance NAT. Les avantages de l’utilisation d’un service de passerelle NAT sont les suivants:

  • C'est un service entièrement géré - il suffit de le créer et il fonctionne automatiquement, y compris le basculement
  • Il peut faire exploser jusqu'à 10 Gbps (une instance NAT est limitée à la bande passante associée au type d'instance EC2)

Pourtant:

  • Les groupes de sécurité ne peuvent pas être associés à une passerelle NAT
  • Vous en aurez besoin d'un dans chaque AZ, car ils ne fonctionnent que dans un seul AZ.
193
John Rotenstein

En ce qui concerne la passerelle NAT vs l'instance NAT, cela fonctionnera. Une instance NAT peut être un peu moins chère, mais la passerelle NAT est entièrement gérée par AWS. Elle présente donc l'avantage de ne pas nécessiter de maintenance d'une instance EC2 pour le NAT.

Cependant, pour les instances devant être disponibles sur Internet, NAT passerelle/instances ne sont pas ce que vous recherchez. Un NAT permettra aux instances privées (sans IP publique) d'accéder à Internet, mais pas l'inverse. Ainsi, pour les instances EC2 devant être disponibles sur Internet, vous devez attribuer une adresse IP publique. Il existe une solution de contournement si vous devez réellement garder les instances EC2 privées: vous pouvez utiliser un équilibreur de charge élastique pour créer un proxy pour les demandes.

Passerelles Internet

La passerelle Internet permet à votre VPC de se connecter à Internet. Vous utilisez une passerelle Internet avec une table de routage pour indiquer au VPC comment le trafic Internet parvient à Internet.

Une passerelle Internet apparaît dans le VPC sous la forme d'un nom. Amazon gère la passerelle et il n'y a rien dans lequel vous avez réellement votre mot à dire (autre que de l'utiliser ou non; rappelez-vous que vous souhaitez peut-être un sous-réseau entièrement segmenté qui ne peut pas du tout accéder à Internet).

Un sous-réseau public désigne un sous-réseau dont le trafic Internet est routé via la passerelle Internet d'AWS. Une adresse IP publique peut être attribuée à n'importe quelle instance d'un sous-réseau public (par exemple, une instance EC2 avec "adresse IP publique associée" activée).

Un sous-réseau privé signifie que les instances ne sont pas accessibles publiquement à partir d'Internet. Ils n'ont pas d'adresse IP publique. Par exemple, vous ne pouvez pas y accéder directement via SSH. Les instances sur des sous-réseaux privés peuvent toujours accéder à Internet elles-mêmes (par exemple, en utilisant une passerelle NAT).

110
error2007s

La passerelle Internet est utilisée pour connecter un vpc à Internet et la passerelle NAT est utilisée pour connecter le sous-réseau privé à Internet (ce qui signifie que tout le trafic parvient à une instance de sous-réseau privé qui sera redirigé vers le NAT passerelle). vous devez transférer le trafic de la table de routage vers NAT

Table de routage 0.0.0.0/0

9
GNK