좌충우돌 GCP Translation 적용기

지난 글에서 번역 시스템을 만들기 위한 Google Translation API 환경 변수 세팅에 대해 적었다. 이번 글에서 같은 세팅을 EC2에 한 경험을 적어본다.

EC2에 GCP 환경 설정하기

Linux에서 환경변수를 넣듯이 아래와 같이 해도 변수를 읽어오지 못하고 The request is missing a valid API key 메세지를 던진다.

export
GOOGLE_APPLICATION_CREDENTIALS = [path]
export GOOGLE_API_KEY = [path]

Credential File 과 API Key File S3에 관리

받은 API key 값은 txt 파일로 만들고 Credential file과 함께 S3에서 관리한다.

AWS S3에 버킷 생성

모든 퍼블릿 엑세스 차단하기

민감한 정보이기 때문에 secure-file들을 관리 할 “퍼블릭이 아닌 버킷”을 생성 후 업로드 한다.

EC2 접속

S3에서 파일 받기 위한 세팅

/home/ec2-user/위치에 ./aws 폴더 생성

mkdir .aws

credentials 파일 생성 후 추가

[default]
aws_access_key_id = [key_id]
aws_secret_access_key = [access_key]

config 파일 생성 후 추가

[default]
region = ap-southeast-1

EC2 Run 파일 수정

EC2에 톰캣 서버를 실행하는 Run파일이 만들어져 있다. SSH로 EC2에 들어가 해당 파일에 아래의 명령들을 추가한다.

aws에서 파일을 받고 톰캣 위치로 파일을 옮긴다.

aws s3 cp s3://atomy-secure-files/GOOGLE_APPLICATION_CREDENTIALS.json ./
aws s3 cp s3://atomy-secure-files/GOOGLE_API_KEY.txt ./

sudo chmod -R 777 /home/tomcat/
mv ./GOOGLE_APPLICATION_CREDENTIALS.json /home/tomcat/
mv ./GOOGLE_API_KEY.txt /home/tomcat/

chmod 777 /home/tomcat/GOOGLE_APPLICATION_CREDENTIALS.json
chmod 777 /home/tomcat/GOOGLE_API_KEY.txt

sudo service tomcat start

profile파일에 환경변수를 넣어준다.

export GOOGLE_APPLICATION_CREDENTIALS=/home/tomcat/GOOGLE_APPLICATION_CREDENTIALS.json
export GOOGLE_API_KEY=/home/tomcat/GOOGLE_API_KEY.txt

혹은 톰캣 쉘 파일에 넣어준다.

export GOOGLE_APPLICATION_CREDENTIALS=/home/tomcat/GOOGLE_APPLICATION_CREDENTIALS.json
export GOOGLE_API_KEY=$(cat /home/tomcat/GOOGLE_API_KEY.txt)

Summary

자주 할 수 없는 EC2 설정을 해본 것은 신기한 경험이었다. 다음은 번역량 때문에 나오는 오류처리에 대해 적어보겠다.