Atlassian application tunnel 로 On-Prem 과 Cloud 연결하기

App tunnel 이란?

Atlassian Cloud를 사용하거나 사용할 계획이지만 여러 가지 이유로 On-Premise 환경에서 계속 Confluence 와 Jira 를 사용해야 할 경우가 있습니다.

이런 경우 서로 다른 네트워크에 존재하므로 각각의 데이터를 참고하기 어려워지는 문제가 있습니다.

즉 Cloud 에 새로 만든 Confluence 에서 On-premise 환경에 있는 Confluence Page나 JIRa Issue 참조하지 못하고 On-Premise 에 있는 Jira 에서도 Cloud 에 있는 Jira 이슈나나 Confluence 페이지를 연결할 수 없습니다.

App tunnel 은 이런 문제를 해결하기 위해 개발된 plugin 으로 Server 나 Data Center 에 설치하면 Cloud 에 있는 제품과 Application Link 로 연결할 수 있으므로 같은 네트워크에 있는 제품처럼 양방향으로 서로의 데이터를 참조할 수 있습니다.

App Tunnel 동작 방식

App tunnel 의 전체 구성도는 위와 같으며 다음과 같은 구성을 갖고 있습니다.

  1. Tunnel server: 사용하는 Cloud 제품이 tunnel server 역할을 수행하며 설정은 관리자 페이지인admin.atlassian.com 에서 할 수 있습니다.

  2. Tunnel client: On-premise 에 있는 Confluence 나 Jira 제품이 Tunnel client 입니다.

  3. Application link (cloud): 클라우드 제품마다 Application Link 를 생성하고 기존 생성된 app tunnel 을 사용하도록 할 수 있습니다. 하나의 tunnel 을 여러 개의 클라우드 제품이 사용할 수 있습니다. Application link 는 반드시 Cloud 에 생성해야 합니다.

  4. Application link (self-managed): 상호 연결(reciprocal link)은 자동으로 on-premise 인스턴스에 생성됩니다. Cloud에서 들어오는 연결은 tunnel 을 사용하고 Cloud 로 나가는 경우 직접 연결하므로 on-premise 에서 cloud 로 연결할 수 있도록 방화벽에서 out bound 를 열어주어야 합니다.

제약 사항

  • 각 on-premise instance 는 하나의 cloud instance 와 tunnel 구성이 가능합니다. 여러 개의 instance 가 있을 경우 개별 instance 마다 tunnel 을 구성해야 합니다.

사전준비

Network 설정

  1. Application tunnel 은 https://tunnel.services.atlassian.com 에 연결할 수 있어야 제대로 동작하므로 On-premise 에 있는 Confluence/Jira/Bamboo 에서 위 서버의 443 포트로 연결할 수 있도록 Out bound 방화벽 정책을 등록합니다.

  2. On-premise 에 있는 제품이 Atlassian Cloud 에 연결할 수 있도록 나가는 방화벽 정책을 수정합니다. Cloud IP 와 도메인은 Atlassian cloud IP ranges and domains 에서 확인할 수 있습니다.

HTTP connector 와 upstream port 설정

연결하려는 instance 를 중지하고 conf/server.xml 을 열고 다음 커넥터를 추가합니다.

Confluence

<Connector port="8093" connectionTimeout="20000" maxThreads="200" minSpareThreads="10" enableLookups="false" acceptCount="10" URIEncoding="UTF-8" />

bin/setenv.sh 를 에디터로 열고 다음 내용을 추가합니다.

## export CATALINA_OPS 앞에 와야 합니다. CATALINA_OPTS="-Dsecure.tunnel.upstream.port=8093" export CATALINA_OPTS

이제 bin/startup.sh 를 실행해서 Confluence 를 재구동합니다.

 

Jira

<Connector port="8081" connectionTimeout="20000" maxThreads="200" minSpareThreads="10" enableLookups="false" acceptCount="10" URIEncoding="UTF-8" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"/>

bin/setenv.sh 를 열고 JVM_SUPPORT_RECOMMENDED_ARGS 에 다음 내용을 추가합니다.

 

Jira 를 재구동합니다.

Bamboo

Bamboo 9.3 부터 application tunnel 을 공식 지원합니다.!

bin/setenv.sh 를 열고 JVM_SUPPORT_RECOMMENDED_ARGS 에 다음 내용을 추가합니다.

설정하기

  1. On-premise 에 있는 Confluence 나 Jira 에 Atlassian Marketplace 에 있는 Application tunnels 를 설치합니다. 설치가 끝나면 관리자 설정 화면에서 “Application tunnel” 을 볼 수 있습니다.

  2. admin.atlassian.com 에 접속해서 On-premise 와 연결할 instance 를 선택합니다.

  3. SettingsApplication tunnels → Create tunnel 을 선택합니다.

  4. Create tunnel 을 선택합니다.

  5. Tunnel name(1) 에 이름을 넣고 Connect to(2) 에 연결할 URL 을 입력합니다.

  6. 연결을 위한 security key 가 생성되는데 하단의 Copy 를 눌른후에 메모장등에 복사해 둡니다.

  7. Copy and proceed 를 누르면 연결할 On-premise 로그인 창으로 전환합니다. 관리자 암호를 넣어서 로그인합니다.

  8. 위에서 복사한 security key 를 입력한 후에 Add 를 눌러서 반영합니다.

  9. Application tunnel 이 생성된 것을 볼 수 있습니다.

Confluence 와 연결

위는 Cloud instance 와 연결한 것이고 제품별로 Application Link 를 설정해줘야 합니다.

  1. Confluene 관리자로 로그인한 후에 AdministratorApplication links 에 들어갑니다.

  2. 상단의 Create link 를 클릭합니다.

  3. Link type Tunneled application link 를 선택하고 Application tunnel 은 위에서 생성한 tunnel 이름을 선택하고 Continue 를 클릭합니다.

  4. Review Link 화면을 확인하고 Continue 를 클릭하면 Application Link 설정이 완료됩니다.

  5. App Link 에 연결한 제품이 표시되는 걸 확인할 수 있습니다.

 

제약 사항

App tunnel 로 연결할 경우 같은 네트워크에 있는 제품을 Application Links 로 연결한것처럼 사용할 수 있지만 제품별로 여러 제약 사항이 있습니다.

Confluence Cloud Jira Server

Jira Cloud Confluence Server

Jira Cloud Jira Server

Jira SW Cloud Server dev tools(Bitbucket, Bamboo, Fisheye/Crucible)

 

같이 보기