Пересылка трафика из экземпляра Windows EC2 в конечную точку ElasticSearch VPC
У меня есть экземпляр Windows EC2, который я использую для своего общедоступного C# API. VPC(и связанный с ним Интернет-шлюз, подсети и т. Д.) Используются по умолчанию.
Теперь я настроил сервис AWS ElasticSearch, используя более безопасный вариант конечной точки VPC(вместо общедоступного), и связал его с той же подсетью и vpc, что и мой вышеупомянутый экземпляр Windows EC2.
Я бы хотел, чтобы они поговорили друг с другом.
Чтение с https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html
Похоже, что вы бы сделали, это ssh туннель / порт, перенаправляющий трафик от localhost:9200 на экземпляре EC2 к фактической службе Elastic Search (через эту конечную точку VPC).
Кажется, что эта команда - то, где волшебство происходит: ssh -i ~/.ssh/your-key.pem ec2-user@your-ec2-instance-public-ip -N -L 9200:vpc-your-amazon-es-domain.region.es.amazonaws.com:443
но это для экземпляра Linux EC2.
Если я подключен к удаленному рабочему столу в своем экземпляре Windows EC2 (API), как я могу сделать так, чтобы при переходе в браузер http://localhost:9200/ отправлял трафик на мою конечную точку VPC:
vpc-your-amazon-es-domain.region.es.amazonaws.com:443
Спасибо!
1 ответ
Хорошо, так что я отвечу на два моих вопроса:
Во-первых, это на самом деле довольно просто, просто RDP к вашему устройству и доступ к экземпляру напрямую через конечную точку VPC. Вам не нужно делать что-то дурацкое, например, переадресацию портов с помощью команды netsh или чего-то подобного. Просто убедитесь, что сервер (в моем случае мой API) находится на том же VPC, и все в порядке. У меня просто была ошибка в строке подключения, поэтому она не подключалась. Чтобы подтвердить это, я подключился к RDP'у и смог подключиться к конечной точке напрямую в браузере через порт 80. Хотя это правда, что Elasticsearch работает на порту 9200, вам не нужно перенаправлять на localhost:9200 -> vpc:9200.
Теперь, что касается второго вопроса, касающегося его локального доступа, я думаю, что проблема в том, что у этой службы отсутствует общедоступный IP-адрес, и вы не можете получить к ней доступ, что вы можете выполнить некоторые сложные настройки на AWS или просто установить пока он будет работать локально, пока вы не будете готовы использовать VPC (и, следовательно, ваш код просто будет работать). Другим вариантом является использование групп безопасности и создание общедоступного кластера на данный момент, а затем, когда ваш код готов, служба поиска / слой выполнены и т. Д., Вы можете начать заново с помощью службы VPC/secure Elasticsearch, и так и должно быть.
Еще одна вещь, о которой многие упоминают, это то, что она дешевле / у вас больше контроля над вещами, если вы устанавливаете свой Elasticsearch на локальном компьютере, а затем настраиваете его на EC2 (это просто чтение блогов и наблюдение за тем, как люди упоминают, какое у них разочарование) с этим).