Я создаю свое приложение в AWS.
Я развернул свой интерфейсный проект Reactjs в экземпляре EC2. Вместо того, чтобы пользователи из внешнего интернет-мира посещали мой экземпляр EC2 напрямую, я хочу разместить его за шлюзом AWS API. Таким образом, AWS API Gateway будет единственной точкой входа во внешние и внутренние службы моего приложения. Это план, чтобы пойти с:
внешний мир ---> Шлюз API AWS ---> Балансировщик сетевой нагрузки ---> Моя целевая группа VPC / Экземпляры EC2
Вот что я сделал:
Проект Reactjs Frontend хорошо работает в экземпляре EC2; Я могу посетить веб-страницу с общедоступным IP-адресом экземпляра EC2.
Хорошо настроенная целевая группа и балансировщик сетевой нагрузки. Я подтвердил, введя DNS-имя NLB в браузере, т.е. http://myapp-frontend-NLB-c11112esd43524rw.elb.ap-northeast-1.amazonaws.com
, и он успешно загружает/открывает веб-страницу внешнего интерфейса моего приложения.
Я создал новый шлюз AWS API (REST API) и настроил для него собственное доменное имя (с сертификатом https, который позаботился в диспетчере сертификатов AWS).
т. е. пользовательский домен frontend.myapp.com
;
доменное имя шлюза API d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
И я создал новый NS
запись в моем DNS провайдера для них, так что frontend.myapp.com
указывает на d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
Я следил за этим документом aws: https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-private-integration.html шаг за шагом и настроил ссылку VPC, ресурсы API, тип интеграции и т. д.
После развертывания созданного API, когда я открываю URL-адрес вызова (в виде https://123qwe123qe.execute-api.ap-northeast-1.amazonaws.com/[стадия]
), я вижу возвращенный HTML-код.
Я ожидал, что когда я приеду frontend.myapp.com
в браузере DNS в конечном итоге направит трафик на доменное имя шлюза API d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com
, и шлюз API передаст запрос в NLB и т. д., и в конечном итоге загрузит веб-страницу или вернет тот же HTML-код.
Однако, когда я посещаю frontend.myapp.com
в браузере нет ответа. Я думал, что запись DNS не работает. копать + трассировка docloud.iwg-inc.co.jp.
дает следующий результат:
; <<>> DiG 9.10.6 <<>> +trace frontend.myapp.com.
;; глобальные параметры: +cmd
. 3240 В NS i.root-servers.net.
. 3240 В NS d.root-servers.net.
. 3240 IN NS b.root-servers.net.
. 3240 IN NS m.root-servers.net.
. 3240 IN NS j.root-servers.net.
. 3240 IN NS h.root-servers.net.
. 3240 IN NS f.root-servers.net.
. 3240 В NS g.root-servers.net.
. 3240 IN NS k.root-servers.net.
. 3240 В NS c.root-servers.net.
. 3240 В NS a.root-servers.net.
. 3240 IN NS l.root-servers.net.
. 3240 IN NS e.root-servers.net.
;; Получено 811 байт от 240d:1a:6a5:c900:e67e:66ff:fe1f:bf4c#53(240d:1a:6a5:c900:e67e:66ff:fe1f:bf4c) за 29 мс
...другие результаты...
frontend.myapp.com. 14400 IN NS d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
;; Получено 117 байт от 54.68.111.244#53(ns4.jp-domains.jp) за 131 мс
;; время соединения истекло; нет доступа к серверам
Как вы видете, frontend.myapp.com.
действительно указывает на d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
как NS
записывать.
Тем не менее, он говорит время соединения истекло; нет доступа к серверам
.
d-123sdf1234asd.execute-api.ap-northeast-1.amazonaws.com.
— это собственное доменное имя моего шлюза API, которое я протестировал с помощью URL-адреса вызова, и оно подключено к службам.
почему бы это сказать нет доступа к серверам
?
Что это значит? Как я могу решить это и завершить поток?