Я все еще новичок в AWS и в настоящее время пытаюсь развернуть свое приложение, используя AWS Elastic Beanstalk. У меня есть 4 бэкэнд-API, которые доступны на моем частном Dockerhub, и у меня есть один веб-интерфейс, который должен взаимодействовать с этими 4-мя бэкэнд-микросервисами. Я могу развернуть 4 базовых сервиса на AWS Elastic Beanstalk, следуя инструкциям, расположенным здесь . Моя главная проблема или часть, которую я не понимаю, - как заставить мое приложение-интерфейс взаимодействовать с этими 4 другими службами?
Текущая опция, которую я изучаю, - это добавление моего углового приложения в Dockerrun.aws.json, чтобы мой файл json выглядел примерно так, как показано ниже:
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "backend-svc-1",
"host": {
"sourcePath": "/var/app/current/backend-svc-1"
}
},
{
"name": "backend-svc-2",
"host": {
"sourcePath": "/var/app/current/backend-svc-2"
}
},
{
"name": "angular-frontend-app",
"host": {
"sourcePath": "/var/app/current/angular-frontend-app"
}
}
],
"containerDefinitions": [
{
"name": "angular-frontend-app",
"image": "angular-frontend-app",
"environment": [
{
"name": "Container",
"value": "angular-frontend-app"
}
],
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 4200
}
],
"links": [
"backend-svc-1",
"backend-svc-2"
]
},
{
"name": "backend-svc-1",
"image": "backend-svc-1",
"environment": [
{
"name": "Container",
"value": "backend-svc-1"
}
],
"essential": true,
"memory": 128,
}
{
"name": "backend-svc-2",
"image": "backend-svc-2",
"environment": [
{
"name": "Container",
"value": "backend-svc-2"
}
],
"essential": true,
"memory": 128
}
]
}
КогдаЯ делаю это, как мне получить информацию в моем угловом приложении о том, какое имя хоста будет для backend-svc-1? Например, если в моем угловом приложении я звоню на http://backend -svc-1 / endpoint , что это за URL-адрес получается при развертывании? Должен ли я жестко закодировать значение? Или он будет передан моему внешнему приложению через массив ссылок в качестве переменной среды?
Кроме того, что вы предлагаете, как наилучшим образом реализовать мою предложенную архитектуру? Я прочитал много статей, где некоторые говорят, что я должен разместить свое Angular App в качестве статического сайта на S3 и направлять свои запросы через API Gateway. Я видел, как другие сайты говорили, что я должен управлять своими собственными экземплярами ECS для каждой службы и направлять запросы через API-шлюз. В общем, я немного запутался в том, как использовать AWS, и я надеюсь, что кто-нибудь может дать мне какие-либо рекомендации по этому вопросу.
Заранее спасибо!