평소 ec2에 docker image를 올리는 과정에서 환경변수를 그대로 올리는 형태로 구현해왔다.
아래와 같이 docker image 속에 ec2 host, docker ID/password 등이 그대로 적혀 있게 되면 docker가 private이면 그나마 괜찮겠지만.. public이라면!!😱😱
이 image가 그대로 노출되어 버렸을 때 큰 불상사를 야기할 수 있다.!! 지갑을 지키자
이를 해결하는 효율적인 방법으로 ec2 server단에 환경변수를 저장하는 방법이 존재한다.
ec2 ubuntu 환경에서 파일을 만드는 것이다.
아래 명령어를 통해 .env 파일을 만들 수 있다.
vim .env ##파일이 없으면 생성, 있으면 수정 또는 추가
.env파일은 초기에 비어있다. 환경변수값은 application.yml 파일에서
jwt:
secret: example 로 작성했다면 아래와 같이 JWT_SECRET = example 로 작성해주면 된다.
즉, yml 파일에서 ':'로 계층적 구조를 작성해왔던 것들을 '_'으로 풀어 쓴다고 이해하자!
추가로 Intellij에서 application.yml 파일에 환경변수를 적지 않고 Intellij 상에 환경변수를 할당하는 방법에 대해 알아보자!
위와 같이 Intellij에서 Edit Configuration을 찾아 들어가면 환경변수 Environment variables를 할당받을 수 있는 방법이 있다.
이후 위의 빨간색 버튼을 눌러 환경변수들을 UPPER_CASE와 _언더바를 이용하여 할당해준다. 그러면 왼쪽과 같이 ;로 여러 환경변수들이 분류됨을 알 수 있다.
이 환경변수들은 왼쪽과 같이 .yml 파일에서 ${} 내의 변수로 할당하여 사용할 수도 있고,
오른쪽과 같이 @Value("jwt-secret") 등의 value annotation에 할당된 변수로도 사용될 수 있다.
추가로 공부할 내용
OpenSSL을 이용하여 .env 파일 암호화하기
Linux 에서 파일 권한 제한해보기 - chmod
'BackEnd > DEVOPS' 카테고리의 다른 글
[Serverless|Cloud RUN] Google Cloud Run으로 JAVA WAR 파일 배포하기 (2) | 2024.01.02 |
---|---|
[DEVOPS] Linux 환경에서 ELK metricbeat를 사용한 시스템 모니터링 (0) | 2023.09.02 |
[Kafka] Kafka 이론 및 실습(Window10 Local 환경) (0) | 2023.08.11 |
[DevOps] Docker+Docker_compose+Github_Actions (5) | 2023.03.24 |
[DEVOPS] EC2+Docker로 배포해보기 (2) | 2023.02.09 |