특정 솔루션을 Cloud에 옮길 경우 확인해야 할 부분
특정 솔루션을 클라우드에 옮길 경우 확인해야 할 부분이 있음.
솔루션에서 필요한 HW 스펙, OS 등 정보가 필요합니다.
HW 스펙
CPU, 메모리, 디스크(OS + data) 등 요구사항
HW 스펙 관련해서는 (CPU, 메모리, 디스크 구성 및 용량) 개발환경과 프로덕션 환경이 다르므로 이 부분도 명시
디스크 : 디스크 구성 및 용량. OS와 별도의 디스크에 애플리케이션과 데이터를 저장함. 애플리케이션에 따라 성능 등의 이유로 여러 개의 디스크로 나누는 경우도 있음. (애플리케이션 데이타, 로그, 등등)
OS 및 애플리케이션 설치 및 설정
개발업체 등에서 애플리케이션 설치 및 설정 문서 요구시 요청할 내용 명시
클라우드 및 운영 관련한 부분
클라우드에서 운영을 하는 경우에는 VM의 IP, hostname , MAC address 등이 변경될 가능성이 있음. IP 또는 hostname, MAC address 변경시 서비스에 문제 없는지
클라우드에서 VM을 자동으로 올리기 위한 방법 : 클라우드에서는 VM을 자동확장하거나 문제가 있을 경우 자동복구하는 옵션이 있기 때문에 새로운 VM을 띄우면서 해당 솔루션을 자동으로 올리는 것이 필요함.
AWS Marketplace 와 같이 해당 클라우드에서 바로 서비스를 올릴 수 있는 방법이 있는지 (국내 솔루션 업체들은 이런 방식을 잘 지원하지 않을 것으로 보임)
해당 솔루션이 무인으로 자동설치가 가능하다면 해당 배포 스크립트 등을 이용하여 VM 을 올릴 때 스크립트를 실행할 수 있음 (국내 솔루션 업체들은 이런 방식을 잘 지원하지 않을 것으로 보임)
이런 방법이 지원되지 않는다면 해당 솔루션 업체에서 모든 설정을 마치고 난후 VM 이미지를 만들어서 사용할 수 있음. 이미지를 이용하는 경우에도 서비스에 문제가 없는지 확인이 필요함.
IP, Mac Address을 등록해서 사용하는 솔루션의 경우 클라우드 전용 라이선스가 아니라면 VM내부 OS의 인터페이스를 통해 라이선스를 체크할 것이므로 로드밸런서에 할당한 고정IP를 통해 라이선스를 체크할 수는 없을 것임. (이 부분은 솔루션마다 차이가 있을 수 있으므로 업체에 확인 필요)
Mac Address 및 IP를 사용해 라이선스를 등록하는 솔루션 사용 시 GCP의 MIG를 사용하게 되면 템플릿 기반으로 재생성되는 VM Instance에 대해 고정 내부IP 또는 외부IP를 자동으로 연결해주어야함. (중지된 인스턴스의 고정IP를 이어받아야함.) 이 부분은 문서확인 후 구글측에도 문의해봐야함.
라이센스
개발환경, 프로덕션 환경 등 여러 환경에서 쓰는 경우 라이센스 등 문제가 될 부분이 있는지
라이센스를 1개만 받았을 경우에는 개발환경에서 테스팅을 하지 못하는 경우가 생김
ip 접근 VS 도메인 접근
솔루션의 IP가 바뀌는것은 IP address 를 고정하는 방법을 이용해서 처리할 수 있습니다. 그런데 다른 프로그램에서 해당 솔루션에 접근하는 경우 IP 로 하면 기억하기 불편한 부분도 있고 혹시나 IP 변경된 경우 해당 소스코드를 수정해 주어야 합니다. 그래서 솔루션의 IP를 이용하는 것 보다는 DNS에 등록을 하여 처리를 하는 것이 편리합니다.
AWS 에서는 퍼블릭망에서 접근하는 경우 AWS 가 자동할당하는 ELB 도메인에 A, CNAME 레코드를 이용하여 알기 쉬운 도메인과 연결을 합니다.
개발환경에서는 AWS 나 GCP의 https://cloud.google.com/compute/docs/internal-dns 이용해서 VPC VM에 내부 DNS (우리가 필요로 하는 임의의 DNS 주소)를 지정할 수 있습니다. 그러면 애플리케이션의 코드에서는 각 환경(dev, prod) 마다 특정 서버의 호스트네임이나 IP를 바꾸지 않아도 되는 장점이 있습니다. (대신 작업자는 헷갈림. 하다보면 여기가 dev인지 prod인지 헷갈려서 장애를 만들 수 있음)
그런데 AWS 의 Direct connect 나 GCP의 interconnect로 연결된 IDC에서 연결을 할 때는 VPC에서만 적용되는 internal DNS는 필요가 없겠네요.
단일 VM 운영시 장애 대응 : 로드밸런서, GCP MIG 자동복구 이용
장애가 났을 때를 고려한다면 단일 인스턴스(VM)만 있더라도 앞에 로드밸런서를 두고 오토스케일링을 1대로만 지정해서 문제가 있으면 VM을 다시 자동으로 올리도록 구성합니다. (AWS)
GCP에서는 오토스케일링 기능을 이용하지 않아도 MIG 에서 상태확인 기능을 통해서 VM에 문제가 있을 때 자동으로 복구할 수 있네요. https://cloud.google.com/compute/docs/tutorials/high-availability-autohealing