Accéder à AWS EC2 par ELB
Je suis en train de mettre en place deux instances en vertu d'un elastic load balancer, mais ne peut pas comprendre comment je suis censé pour accéder aux instances par le biais de l'équilibreur de charge.
J'ai mis en place les instances avec un groupe de sécurité pour permettre l'accès à partir de n'importe où à certains ports. Je peux accéder aux instances en utilisant directement leur Public "DNS" (publicdns) nom d'hôte et le port de PORT:
http://[publicdns]:PORT/
L'équilibreur de charge contient les deux cas, et ils sont "En Service" et c'est la redirection de port (PORT) sur le même port sur les instances.
Cependant, si je demande
http://[dnsname]:PORT (où dnsname est l'Un Enregistrement répertoriées pour le ELB)
il ne veut pas se connecter à l'instance (temps de connexion).
Ce n'est pas la bonne manière d'utiliser l'équilibrage de charge, ou dois-je faire quelque chose pour permettre l'accès à l'équilibreur de charge? La seule mention de groupes de sécurité par rapport à l'équilibrage de charge est de restreindre l'accès aux instances de l'équilibreur de charge seulement, mais je n'en veux pas. Je veux être en mesure d'accéder individuellement.
Je suis sûr qu'il ya quelque chose de simple et stupide, que j'ai oublié pas réalisé ou fait de mal 😛
Cheers,
Svend.
Infos supplémentaires ajouté:
Le Port de Configuration de l'Équilibreur de Charge ressemble à ça (en fait 3 ports):
10060 (HTTP) de transfert de 10060 (HTTP)
Viscosité: Désactivé(edit)
10061 (HTTP) de transfert de 10061 (HTTP)
Viscosité: Désactivé(edit)
10062 (HTTP) de transfert de 10062 (HTTP)
Viscosité: Désactivé(edit)
Et c'est à l'aide de la norme par défaut/elb groupe de sécurité (amazon-elb-sg).
Les instances ont deux groupes de sécurité. Un externe qui ressemble à ceci:
22 (SSH) 0.0.0.0/0
10060 - 10061 0.0.0.0/0
10062 0.0.0.0/0
et une à l'intérieur, permettant à quoi que ce soit dans le groupe interne de communiquer sur tous les ports:
0 - 65535 sg-xxxxxxxx (groupe de sécurité ID)
Pas sûr que ça fait une différence, mais que les instances m1.les petits types d'image ami-31814f58.
Quelque chose qui pourrait avoir un intérêt:
Mon bilan de santé utilisé pour être HTTP:PORT/mais l'équilibrage de charge n'arrêtait pas de dire que les instances ont été "Hors Service", même si je semble pour obtenir une réponse 200 sur la demande sur ce port.
J'ai ensuite changé pour TCP:PORT et il a changé pour dire qu'ils étaient "En Service".
Est là quelque chose de très spécifique qui doit être retourné pour le HTTP, ou est-ce simplement une réponse HTTP 200 c'est nécessaire? ... et le fait qu'il n'était pas de travail indice vers pourquoi l'équilibrage de la charge elle-même n'a pas de travail?
Comment êtes-vous essayer d'accéder à la loadbalancer. Quand je fais ma demande pour le loadbalancer je suis en demandant un fichier index.html. Possible que le loadbalancer n'aime pas l'envoi d'un fichier vide?
J'ai essayé un peu, et il semble que le problème est avec mon équilibreurs de charge du bilan de santé. Juste obtenir un code de réponse de 200 ne semble pas être suffisant. J'ai réalisé qu'avant en utilisant netcat (echo "Bonjour" | nc-l PORT), mais cela ne fonctionne pas. Changer pour utiliser le protocole TCP, de ce fait, "En Service", mais peut ne pas avoir travaillé. Je viens de créer un petit exemple, et dès que j'ai installé httpd et avait-elle répondre avec un fichier html (réponse http), il a travaillé! 🙂 Merci à vous tous. Le lundi, je vais vérifier qu'il est bien le problème (bwight, voulez-vous de les écrire dans le formulaire de réponse, donc je peux cocher si si 🙂 )
Après vérifications supplémentaires, je peux confirmer que le problème est que le bilan de santé n'est pas du bon format. Je ne suis pas sûr exactement ce qui est nécessaire, mais peut dire ceci: à l'Aide d'un vide de 200 réponse de mon serveur tomcat en cours d'exécution sur l'instance n' pas travail, mais l'installation de httpd et le retour statique (même vide) fichier html t de travail. J'ai été à la recherche sur les en-têtes de réponse, et la seule chose que je peux penser, c'est que le tomcat est manquant un type de contenu...
Sonne comme ceci est peut-être quelque chose que vous pourriez apporter au forum à amazon. L'un des amazon employé peut probablement vous donner une bonne réponse si vous présentez les faits que nous avons réunis ici. Généralement ils sont assez utile si ce n'est pas juste un "OMG le loadbalancer ne marche pas!"
OriginalL'auteur Svend Hansen | 2012-02-24
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez tout configuré correctement. Sont-ils les mêmes ports d'aller dans le loadbalancer que l'instance? Ou êtes-vous transfert de la demande à un autre port?
Comme une note de côté, lorsque je configure mon loadbalancers je n'aime ouvrir mon cas sur n'importe quel port pour le grand public. J'ai seulement le loadbalancer à faire des demandes auprès de ces instances. J'ai remarqué dans le passé que beaucoup de gens vont faire les requêtes malveillantes à l'adresse IP de l'instance en essayant de trouver une faille de sécurité. J'ai même vu des gens essayer à la force brute de connexion dans mes machines windows....
Pour créer une règle de sécurité uniquement pour les loadbalancers exécutez les commandes suivantes et supprimer toutes les autres règles que vous avez dans la sécurité-groupe pour le port le loadbalancer. Si vous n'êtes pas en utilisant la ligne de commande pour exécuter ces commandes, puis laissez-moi savoir quelle interface vous tentez de les utiliser et je peux essayer de venir avec un échantillon qui va travailler pour vous.
Revenir à votre question. Comme je l'ai dit, les étapes expliquées sont corrects, l'ouverture du port sur l'instance et de transmettre le port de l'instance devrait être suffisant. Peut-être vous avez besoin d'afficher la configuration complète de votre instance du groupe de sécurité et le loadbalancer afin que je puisse voir si il y a autre chose qui affecte votre situation.
Merci je vais jeter un oeil
Je ne pouvais pas reproduire ses erreurs. J'ai essayé la même configuration que toi avec les mêmes ports et il semble fonctionner correctement. A pris le loadbalancer quelques minutes pour commencer à travailler.
Hmm. Sûr que je viens de lire que vous avez dit que vous avez vu la même question 😛 ...j'ai mis en place les instances, les groupes de sécurité et d'équilibrage de la charge à l'aide de l'api java. Je vais avoir un aller à la configuration via l'interface web, voir si il n'y a aucune différence...
J'ai vu le même problème et cela a semblé fonctionner une minute plus tard. Je pense que l'instance n'était pas encore active sur le loadbalancer quand j'ai essayé la première fois.
OriginalL'auteur bwight
Je suis allé de l'avant et a créé un script qui va reproduire les mêmes étapes exactes que j'utilise. Cela suppose que vous êtes en utilisant linux comme système d'exploitation et que l'AWS outils CLI sont déjà installés. Si vous ne disposez pas de ce programme d'installation déjà je vous recommande de commencer une nouvelle Amazon instance micro Linux et exécuter le script à partir de là, puisqu'ils ont déjà tout installé.
Télécharger le X. 509 fichiers de certificat d'amazon https://aws-portal.amazon.com/gp/aws/securityCredentials
Copie du certificat de fichiers de l'ordinateur sur lequel vous exécutez les commandes
Enregistrer deux variables qui sont nécessaires dans le script
Exporter les certificats comme des variables environnementales
Créer les groupes de sécurité
Créer l'utilisateur des fichiers de données de l'instance afin qu'apache est démarré et l'index.html fichier est créé
Commencer la nouvelle instance et d'enregistrer le instanceid
Créer le loadbalancer et joindre l'instance
OriginalL'auteur bwight