Назад | Перейти на главную страницу

Запускайте TeamCity Server и агенты в EC2, используя внутренние IP-адреса

Я настраиваю кластер 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), и он будет работать таким же образом.