Size: a a a

2020 September 15

AK

Aleksandr Kostiuk in AWS_RU
Al T
по идее cloudmap как раз для случаев когда гейтвей не нужен/не хочется
Ну у меня кейс когда нужно балансить запросы + хочется service discovery. Я немного в ступоре)
источник

AT

Al T in AWS_RU
Your Amazon ECS service can optionally be configured to use Amazon ECS Service Discovery. Service discovery uses AWS Cloud Map API actions to manage HTTP and DNS namespaces for your Amazon ECS services.
источник

VS

Vladimir Samoylov in AWS_RU
Aleksandr Kostiuk
в общем, как я понял с описания Cloud Map, все перекладывается на route53 и сервисы ищут друг-друга через него.
Сейчас я хочу аппку, в которой все запросы к сервисам с фронта, будут идти через 'gateway' сервис, который собственно через service discovery и будет находить куда переслать запрос.
В таком реализации cloud map, получается балансировка нагрузки перекладывается на 'gateway' сервис?
Могут ли сервисы сами себя регистрировать в cloud map и создавать записи в route53 где будут alias/cname на ALB?
Сервисы да могут себя там регистрировать есть API
ECS вообще нативно это умеет делать
Можно с ним вместе потестить Cloud Map
источник

AT

Al T in AWS_RU
ну вот судя по этому вам ecs вам должен сам
источник

AT

Al T in AWS_RU
вот Владимир гораздо быстрее печатает
источник

AK

Aleksandr Kostiuk in AWS_RU
Vladimir Samoylov
Сервисы да могут себя там регистрировать есть API
ECS вообще нативно это умеет делать
Можно с ним вместе потестить Cloud Map
нативно протестил уже, регаются ip адреса тасок
если хочу что бы регался ALB поулчается нужно что сервис через SDK регал alias запись...
а как потом будет дискавериться, что отдаст cloud map, alias, или A/SRV
источник

VS

Vladimir Samoylov in AWS_RU
Aleksandr Kostiuk
нативно протестил уже, регаются ip адреса тасок
если хочу что бы регался ALB поулчается нужно что сервис через SDK регал alias запись...
а как потом будет дискавериться, что отдаст cloud map, alias, или A/SRV
ALB это что то менее динамичное , обычно в обычном dns создаётся alias и дальше используется сам alias
Возможно тут cloud map и не требуется
источник

AK

Aleksandr Kostiuk in AWS_RU
Vladimir Samoylov
ALB это что то менее динамичное , обычно в обычном dns создаётся alias и дальше используется сам alias
Возможно тут cloud map и не требуется
сейчас так и сделано. Но количество сервисов растет и прокидывать сервисы через env переменные немного надоело)
источник

VS

Vladimir Samoylov in AWS_RU
Aleksandr Kostiuk
сейчас так и сделано. Но количество сервисов растет и прокидывать сервисы через env переменные немного надоело)
Terraform, cdk, что угодно дергающее api amazon решит эту проблему и не придется доплачивать за cloud map
источник

AK

Aleksandr Kostiuk in AWS_RU
дык терраформ все и сетапит, но проблему не решает)
я прокидываю эндпоинты сервисов в env task definition.
ну это мне не очень нравится...
источник

🅐

🅐🅝🅐🅣🅞🅛🅘🅨... in AWS_RU
AvailabilityZone: !Select
 - 0
 - Fn::GetAZs: !Ref 'AWS::Region'
Эта функция достает первое значение списка AZ ?
источник

MM

Max Musatov in AWS_RU
Aleksandr Kostiuk
в общем, как я понял с описания Cloud Map, все перекладывается на route53 и сервисы ищут друг-друга через него.
Сейчас я хочу аппку, в которой все запросы к сервисам с фронта, будут идти через 'gateway' сервис, который собственно через service discovery и будет находить куда переслать запрос.
В таком реализации cloud map, получается балансировка нагрузки перекладывается на 'gateway' сервис?
Могут ли сервисы сами себя регистрировать в cloud map и создавать записи в route53 где будут alias/cname на ALB?
А чем какой-нибудь Consul не подходит?
источник

AK

Aleksandr Kostiuk in AWS_RU
Max Musatov
А чем какой-нибудь Consul не подходит?
так у него такой же принцип работы - dns на ip контейнера
источник

MM

Max Musatov in AWS_RU
Aleksandr Kostiuk
так у него такой же принцип работы - dns на ip контейнера
Так погодите, я думал, проблема именно в том, что вам надоело забивать куда-то адреса вручную или в env
источник

AK

Aleksandr Kostiuk in AWS_RU
Max Musatov
Так погодите, я думал, проблема именно в том, что вам надоело забивать куда-то адреса вручную или в env
да, но нужно ALB + service discovery
источник

MM

Max Musatov in AWS_RU
Aleksandr Kostiuk
да, но нужно ALB + service discovery
Консул и есть service discovery. Балансировку нагрузки тоже можно делать через него: он возвращает все активные адреса сервиса, дальше по ним можно делать round robin, pick random или что-то в этом духе
источник

AK

Aleksandr Kostiuk in AWS_RU
Max Musatov
Консул и есть service discovery. Балансировку нагрузки тоже можно делать через него: он возвращает все активные адреса сервиса, дальше по ним можно делать round robin, pick random или что-то в этом духе
"round robin, pick random" - это перекладывается на consul, или сервис который дискаверит?
источник

MM

Max Musatov in AWS_RU
Aleksandr Kostiuk
"round robin, pick random" - это перекладывается на consul, или сервис который дискаверит?
Сервис, который дискаверит. Ну, ещё в нём вроде есть рандомизация DNS, если это интересно. Сам консул умеет отсекать мёртвые/перегруженные инстансы за счёт healthchecks
источник

AK

Aleksandr Kostiuk in AWS_RU
Max Musatov
Сервис, который дискаверит. Ну, ещё в нём вроде есть рандомизация DNS, если это интересно. Сам консул умеет отсекать мёртвые/перегруженные инстансы за счёт healthchecks
cloud map это тоже самое, не вижу смысла если честно
источник

AT

Al T in AWS_RU
эх, я чет так и не понял задумки
источник