Я настраиваю кластер TeamCity с сервером SVN в EC2 и хочу использовать TeamCity «облачная» функциональность чтобы он при необходимости запускал новых агентов.
Моя основная задача на данный момент - убедиться, что все коммуникации между тремя типами машин (TC Server, TC Agent (s) и SVN) используют внутренние IP-адреса EC2, чтобы сделать передачу данных бесплатной (см. EC2 Цены страница, Передача данных зоны доступности).
Это легко для сервера SVN, я могу указать его частный IP-адрес в конфигурации TeamCity Server. Однако для URL-адреса сервера TeamCity я считаю, что мне нужно ввести внешний IP-адрес, чтобы пользователи могли получить доступ к серверу. Тот же IP-адрес отправляется вновь созданным агентам, чтобы они знали, с кем поговорить.
Следовательно, связь от агентов к серверу будет осуществляться через внешний IP-адрес, что приведет к расходам на передачу данных. Как мне этого избежать?
РЕДАКТИРОВАТЬ
Я запустил «копать» на одном из своих агентов, присвоив ему эластичный IP-адрес TC-сервера, и получил его (обратите внимание, я слегка запутал внешний IP-адрес). Там нет внутреннего IP-адреса.
[ec2-user@ip-10-166-9-94 ~]$ dig 54.243.x.y
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.25.amzn1 <<>> 54.243.x.y
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60896
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;54.243.x.y. IN A
;; AUTHORITY SECTION:
. 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2012111500 1800 900 604800 86400
;; Query time: 38 msec
;; SERVER: 172.16.0.23#53(172.16.0.23)
;; WHEN: Thu Nov 15 18:10:09 2012
;; MSG SIZE rcvd: 106
Вам не нужно настраивать домен / DNS. Если вы назначаете эластичные IP-адреса, вы можете использовать общедоступное DNS-имя эластичного IP-адреса, и оно будет преобразовано во внешний IP-адрес, если вы запросите его извне, и разрешится во внутренний адрес, если вы запросите его из других экземпляров EC2.
Итак, если у меня эластичный IP-адрес 54.254.54.54, публичное имя хоста - ec2-54-254-54-54.us-west-2.compute.amazonaws.com. Это разрешится на внутренний IP-адрес, если вы запросите его внутренне.
Вы жестяная банка CNAME свое собственное имя хоста (foo.domain.com), и он будет работать таким же образом.