IBM Cloud에서 앱 배포하고 도메인 연결하는 방법

클라우드 서비스 중에서도 IBM Cloud는 AI, 보안, DevOps 등에 강점을 가진 플랫폼으로, 전 세계 기업들이 활용하고 있습니다. 특히 앱 배포와 커스텀 도메인 연결 과정을 간편하게 처리할 수 있어, 개발자뿐 아니라 스타트업에게도 매우 매력적인 선택지입니다. 이번 글에서는 IBM Cloud에서 앱 배포하고 도메인 연결하는 방법을 실제 사례를 기반으로 정리해보겠습니다.

IBM Cloud 앱 배포를 위한 사전 준비

앱을 IBM Cloud에 배포하기 전에 아래 사항을 먼저 준비해두면 좋습니다:

  • IBM Cloud 계정 (무료 계정으로도 시작 가능)
  • 배포할 애플리케이션 (Node.js, Python, Java 등 지원)
  • Cloud Foundry 또는 Kubernetes 선택 여부 결정
  • 도메인 등록 업체 계정 (가비아, Cafe24, GoDaddy 등)

IBM Cloud에서는 Cloud Foundry App를 통해 빠르게 앱을 배포할 수 있으며, 복잡한 설정 없이도 웹 애플리케이션을 실행할 수 있습니다.

Step 1. IBM Cloud에 앱 배포하기 (Cloud Foundry 기준)

Cloud Foundry는 IBM Cloud에서 제공하는 앱 배포 플랫폼입니다. 간단한 명령어만으로 앱을 배포할 수 있습니다.

1. IBM Cloud CLI 설치

먼저 IBM Cloud CLI를 설치합니다:

curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
ibmcloud login

2. 앱 프로젝트 준비

예를 들어 Node.js 프로젝트가 있다고 가정합니다. manifest.yml 파일을 생성해 Cloud Foundry 배포 정보를 추가합니다.

applications:
  - name: my-node-app
    memory: 256M
    instances: 1
    path: .
    buildpack: nodejs_buildpack

3. 앱 배포

이제 아래 명령어로 IBM Cloud에 앱을 배포합니다:

ibmcloud target --cf
ibmcloud cf push

배포가 완료되면 https://<앱이름>.us-south.cf.appdomain.cloud 같은 임시 도메인이 자동 생성됩니다.

Step 2. 도메인 구입 및 설정

앱을 배포한 후에는 자신의 커스텀 도메인을 연결할 수 있습니다. 도메인은 GoDaddy, 가비아, Namecheap 등에서 구매할 수 있으며, DNS 관리가 가능한지 꼭 확인해야 합니다.

1. 도메인 구매

도메인 등록업체에서 원하는 도메인을 구매합니다. 예: myappdemo.com

2. DNS 설정에서 CNAME 추가

도메인 관리 페이지에서 CNAME 레코드를 추가합니다:

타입호스트대상(Destination)
CNAMEwww 또는 @<앱이름>.us-south.cf.appdomain.cloud

예를 들어 www.myappdemo.com을 연결하고 싶다면 위와 같이 설정합니다. 일부 업체는 TTL 값을 함께 입력해야 하며, 기본값(3600초)을 유지해도 됩니다.

Step 3. IBM Cloud에서 커스텀 도메인 등록

DNS 설정만으로는 커스텀 도메인이 인식되지 않기 때문에, IBM Cloud에서도 해당 도메인을 등록해야 합니다.

ibmcloud target --cf
ibmcloud cf domains  # 현재 등록된 도메인 확인

ibmcloud cf create-domain <organization_name> myappdemo.com

도메인을 등록한 후, 앱을 수정하여 새 도메인을 포함하도록 설정합니다.

applications:
  - name: my-node-app
    routes:
      - route: www.myappdemo.com
    memory: 256M
    instances: 1
    path: .
    buildpack: nodejs_buildpack

이후 다시 앱을 배포합니다:

ibmcloud cf push

도메인 설정과 DNS가 올바르게 연결되었다면, www.myappdemo.com으로 접속 시 앱이 정상적으로 열려야 합니다.

Step 4. HTTPS 적용 (Let’s Encrypt 또는 IBM TLS)

IBM Cloud는 TLS 인증서도 자동으로 발급하거나 외부 인증서를 연결할 수 있습니다.

1. Managed TLS 사용

IBM Cloud에서는 Managed TLS 기능을 통해 자체적으로 HTTPS를 적용할 수 있습니다. IBM Cloud 콘솔에서 앱 > 라우트 > 보안 설정에 들어가 TLS 인증서를 적용합니다.

또는 다음 CLI 명령으로도 가능:

ibmcloud cf map-route my-node-app myappdemo.com --hostname www

2. Let’s Encrypt 사용 (수동 방식)

만약 IBM의 Managed TLS를 사용하지 않는 경우, 서버 측에서 Let’s Encrypt를 수동으로 설정하거나 NGINX 리버스 프록시를 통해 적용할 수도 있습니다.

Q&A

Q. IBM Cloud의 Cloud Foundry와 Kubernetes 배포 방식의 차이는 무엇인가요?

Cloud Foundry는 서버리스에 가까운 방식으로, 코드만 업로드하면 빌드팩이 알아서 애플리케이션을 실행해줍니다. 반면 Kubernetes는 컨테이너 기반 배포로, 더욱 유연하고 복잡한 설정이 가능하지만, YAML 구성 및 CI/CD 파이프라인 설정이 필요합니다. 초보자나 빠른 프로토타입 배포에는 Cloud Foundry가 적합하고, 대규모 확장과 운영 자동화를 원한다면 Kubernetes가 추천됩니다.

Q. 커스텀 도메인 연결 후 반영이 되지 않아요. 원인은 무엇인가요?

도메인 연결이 반영되지 않을 경우, 다음 항목을 확인해 보세요:

  • DNS CNAME 레코드가 정확하게 등록되었는지 확인
  • DNS 반영 시간(TTL)이 지나지 않았을 수 있음 (최대 24시간)
  • IBM Cloud에서 도메인을 등록했는지 (cf create-domain)
  • manifest.yml에서 route 설정이 정확한지 확인
  • IBM Cloud TLS 인증서가 적용되었는지 확인

특히 DNS는 전파에 시간이 걸릴 수 있으므로, 변경 후 30분~1시간 정도 기다려야 정상 작동하는 경우가 많습니다.

Q. IBM Cloud에서 HTTPS 적용 시 추가 비용이 발생하나요?

기본적으로 IBM Cloud에서 제공하는 공용 도메인(*.cf.appdomain.cloud)에는 자동으로 HTTPS가 적용됩니다. 커스텀 도메인을 사용하는 경우에는 Managed TLS 서비스를 통해 무료로 HTTPS 인증서를 적용할 수 있습니다. 다만, 별도의 Load Balancer를 사용하거나 고급 네트워크 구성에서는 소량의 추가 요금이 발생할 수 있습니다. Let’s Encrypt를 직접 적용하는 경우에는 비용 없이도 HTTPS 적용이 가능합니다.