본문 바로가기

일상

상용 DB 라이선스가 컨테이너에서 "Corrupted license string"으로 거부될 때 (Altibase 버전과 하드웨어 바인딩)

반응형

기존에 받은 알티베이스(Altibase) 라이선스를 도커 이미지에 넣었더니 라이선스가 깨졌다며 기동이 안 되는 원인과, 라이선스가 무엇에 묶여 있는지 확인하는 방법입니다.


개발용 DB 를 컨테이너로 띄우려고 했습니다. 라이선스 키는 이미 있었고, 공식 도커 이미지도 있었으니 키만 넣으면 뜰 거라고 생각했습니다.


그런데 기동하자마자 "Corrupted license string" 이 나오며 멈췄습니다. 키를 잘못 복사했나 싶어 다시 넣어봤고, 실제로 다른 서버에서 멀쩡히 돌고 있는 라이선스 파일을 그대로 가져와 넣어도 결과가 같았습니다.


원인은 키가 깨진 게 아니었습니다. 이 라이선스는 특정 버전, 특정 장비, 특정 운영체제에 묶여 있었고, 그중 버전이 먼저 어긋나서 키를 읽는 단계에서부터 거부된 것이었습니다.


- 상용 DB 라이선스는 버전, 장비(MAC 등), 운영체제에 묶여 발급되는 경우가 많다

- 버전이 다르면 장비를 대조하기도 전에 키 형식부터 못 읽는다

- 공식 이미지는 최신 버전만 있어서 옛 버전 라이선스는 넣을 곳이 없을 수 있다

- 길은 둘뿐이다. 라이선스가 묶인 그 장비를 쓰거나, 쓸 버전과 장비로 새로 받거나


1. 증상

공식 이미지에 라이선스 파일을 넣고 띄우면 이렇게 끝납니다.



"Corrupted"라는 말 때문에 파일이 손상됐거나 복사 중에 줄바꿈이 섞였다고 먼저 의심하게 됩니다. 그런데 다른 서버에서 실제로 동작 중인 파일을 넣어도 똑같이 나온다면, 파일 문제가 아니라 이 엔진이 이 키를 이해하지 못하는 것입니다.


2. 라이선스가 묶여 있는 세 가지

라이선스를 받을 때 입력한 정보를 떠올려 보면 답이 나옵니다. 발급 신청서에 보통 이런 것들을 적습니다.


- 제품 버전: 어느 버전 엔진에서 쓸 키인지

- 장비 정보: 호스트 이름, MAC 주소, 호스트 ID 같은 값

- 운영체제: 리눅스용인지 윈도우용인지


이 셋 중 하나라도 다르면 키가 동작하지 않습니다. 실제로 같은 제품이라도 리눅스용과 윈도우용 키가 따로 발급됐고, 같은 시기에 받은 키라도 사람마다 값이 달랐습니다.


3. 버전이 다르면 장비 대조까지 가지도 않는다

제일 헷갈렸던 부분이 이것입니다. 컨테이너는 MAC 주소가 매번 바뀌니 MAC 이 안 맞아서 거부됐다고 생각하기 쉬운데, 실제로는 그 전 단계에서 막혔습니다.


실측해 보니 엔진은 먼저 키를 자기 버전의 형식으로 해석하고, 해석이 돼야 그다음에 장비 정보를 대조하는 순서로 보였습니다. 옛 버전용 키는 새 버전 엔진이 해석 자체를 못 하니 "형식이 깨졌다" 는 오류가 나고, MAC 은 비교해 보지도 않습니다.



그래서 MAC 을 고정하는 방법을 찾아 헤매기 전에, 키를 발급받은 버전과 지금 엔진 버전이 같은지부터 확인해야 합니다. 여기서 막히면 장비 쪽을 아무리 맞춰도 소용이 없습니다.


4. 공식 이미지에 내 버전이 없을 때

이번 경우는 라이선스가 옛 버전용이었는데, 공식 도커 이미지는 그보다 새 버전만 제공하고 있었습니다. 오픈소스 버전도 이미 배포가 중단된 상태라 대안이 되지 못했습니다.


이러면 선택지가 사실상 둘로 좁혀집니다.


- 라이선스가 살아 있는 원래 장비(VM)를 그대로 개발 DB 로 쓴다

- 쓰려는 버전과 장비 기준으로 라이선스를 새로 발급받는다


새로 받을 때 컨테이너 환경이라면 MAC 주소를 고정할 수 있는지부터 봐야 합니다. 컨테이너를 다시 만들 때마다 MAC 이 바뀌면, 버전이 맞아도 장비 대조에서 또 막힙니다.



5. 개발용이라면 다른 길도 있다

개발 환경에서 필요한 게 SQL 이 돌아가는지 확인하는 정도라면, 같은 스키마를 다른 DB 에 올려서 대신 쓰는 방법도 있습니다. 저희는 라이선스 문제가 풀릴 때까지 해당 스키마를 다른 DB 에 옮겨 두고 개발을 이어갔습니다.


다만 이건 어디까지나 기능 확인용입니다. DB 마다 SQL 문법과 동작이 조금씩 달라서, 성능이나 잠금 같은 동작까지 같다고 보면 안 되고 운영 반영 전에는 실제 DB 에서 한 번 더 확인해야 합니다.


6. 정리

상용 DB 라이선스 오류는 메시지만 보면 키가 망가진 것처럼 보이지만, 대부분은 키가 발급된 조건과 지금 환경이 다른 것입니다.


- 라이선스는 버전, 장비, 운영체제에 묶여 있다

- "Corrupted license string" 은 버전 불일치부터 의심한다

- 버전이 맞아야 그다음 장비 대조로 넘어간다

- 방법은 원래 장비를 쓰거나, 새 조건으로 다시 받거나

- 컨테이너로 쓸 거면 MAC 고정 가능 여부를 먼저 본다


라이선스를 신청할 때 "나중에 어디서 띄울지"까지 정해두지 않으면, 이렇게 받아 놓고 못 쓰는 키가 생깁니다. 컨테이너로 옮길 계획이 있다면 발급 신청 단계에서 그 환경 기준으로 받는 편이 시간을 아낍니다.


여기까지 상용 DB 라이선스가 컨테이너에서 거부되는 문제에 대해서 작성해봤습니다. 여기까지 읽어주셔서 감사합니다!

반응형