서버

EC2에서 Google Text-To-Speech 설정 + Docker 사용

김승진 2024. 4. 22. 23:36

 

프로젝트를 진행하면서 텍스트에 대한 음성 파일도 제공하기 위해 google TTS API를 사용하기로 했습니다.

로컬 PC에서는 찾은 정보로 어렵지 않게 구현할 수 있었습니다. 그런데 개발 서버 EC2에도 적용하기 위해 설정하면서 문제가 발생했습니다

 

 

EC2에서 google cloud의 TTS API 사용 문제 발생

실제 개발 서버인 EC2에서도 해당 API를 사용하기 위한 설정을 하는 도중 문제가 발생했다.

 

 

gcloud init 실패

 

 

EC2 amazon linux2 를 사용했는데 참고로 기본 설정이 python2.7.X로 되어 있다.

문서를 보면 python3.8 이상 버전에서만 사용 가능하다고 한다.

 

높은 버전의 파이썬을 설치해도 기본 설정으로 적용되지 않았는데 알고 보니 설치된 파이썬이 적용되지 않았다. 버전 확인을 하고 적용되지 않았다면 설정을 통해 맞춰주면 된다.

바보같이 헤맸습니다…

 

해결했으니 다시 실행해봅니다!

 

 

 

gcloud init이 잘 실행됐다!

 

 

google 인증할 URL도 알려줬고 들어가서 로그인만 하면 되는데 접속하니 또 문제가 발생했습니다

 

 

삽질만 몇 시간인데 눈물이 나네요…

구글링으로 찾기 어려워서 GPT한테 물어보니 gcloud sdk 버전 문제라고 하길래 일단 gcloud sdk 업데이트를 진행하면서 호환되는 파이썬도 같이 설치해줍니다.

 

 

설치를 해주고 이제 그대로 진행하면 됩니다!

 

 

 

위 방법과 같이 gcloud init과 같은 설정을 하거나 google 프로젝트의 json키 파일을 통해 google cloud API를 사용할 수 있습니다!

 

그런데 저는 ec2 서버 내에 gcloud init과 json 키 파일을 환경 변수로 지정해줬는데도 정상 동작하지 않았습니다 😂

 

몇 시간 헤매다가 문득 스프링부트 앱을 배포할 때, 도커를 사용했기에 문제가 있는 게 아닌가란 생각이 들었습니다.

 

도커 컨테이너에서는 당연히 ec2 서버 컴퓨터의 json 키 파일을 인식하지 못 합니다

docker compose를 통해서 도커 컨테이너 내부와 ec2를 연결해주는 과정을 통해 구현하면 정상 동작하니 혹시나 저와 같은 실수는 하지 않길 바랍니…

 

해당 API를 사용하기 위한 docker compose 설정입니다.

해당하는 json 키 파일을 ec2에서 도커 컨테이너 내부 경로로 가져와서 google cloud 문서에 요청하는 환경 변수와 매칭해주면 됩니다!

 

 

 

https://cloud.google.com/sdk/docs/components?hl=ko

 

gcloud CLI 구성요소 관리  |  Google Cloud CLI 문서

의견 보내기 gcloud CLI 구성요소 관리 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 구성요소란 Google Cloud CLI 중 설치 가능한 부분입니다. 구성요소는 명령줄

cloud.google.com

https://blerang055.tistory.com/56

 

구글 text-to-speech(TTS) API 적용 (feat. Javascript)

TTS (Text to Speech) 란? TTS (Text to Speech)는 오디오 표현을 위해 텍스트 단위를 음성 단위로 변경해야하는 자연스러운 언어 모델링 프로세스입니다. 이는 기술이 구어를 받아 텍스트로 정확하게 기록

blerang055.tistory.com

https://velog.io/@ji-vvon/ec2%EC%97%90%EC%84%9C-googleapplicationcredentials-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EB%B2%95

 

ec2에서 google_application_credentials 사용하는법

local 환경에서 사용하던 google_application_credentials가 ec2에서 동작하지 않는 문제 해결하기

velog.io