좌충우돌 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 설정을 해본 것은 신기한 경험이었다. 다음은 번역량 때문에 나오는 오류처리에 대해 적어보겠다.