Spring

AWS EC2 인스턴스에서 환경변수 설정하는 방법

검은고양이개발자 2023. 5. 13. 09:47
반응형

AWS EC2 인스턴스에서 .yaml 파일에서 불러오는 값 중 노출되면 안 되는 값들은 환경변수로 설정하는 것이 좋습니다.

 

 

spring:
  datasource:
    url: jdbc:mysql://cordjg-database.c8izlkxyxcni.ap-northeast-2.rds.amazonaws.com:13306/uncover?serverTimezone=Asia/Seoul&useSSL=false&characterEncoding=UTF-8
    username: admin
    password: ${MYSQL_SECRET}
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
  security:
    oauth2:
      client:
        registration:
          google:
            clientId: ${G_CLIENT_ID}
            clientSecret: ${G_CLIENT_SECRET}
            scope:
              - email
              - profile

위와 같이 노출되면 안 되는 값들은 ${...} 로 설정한 뒤 환경변수에 저장한 뒤 읽어올 수 있는데

ec2 인스턴스에서는 다음의 과정을 통해 환경변수를 설정할 수 있습니다.

 

ubuntu@ip-172-31-40-115:~$ ls -al
total 52
drwxr-xr-x  8 ubuntu ubuntu 4096 May 12 14:37 .
drwxr-xr-x  3 root   root   4096 May 12 05:26 ..
-rw-------  1 ubuntu ubuntu 2930 May 12 13:04 .bash_history
-rw-r--r--  1 ubuntu ubuntu  220 Feb 25  2020 .bash_logout
-rw-r--r--  1 ubuntu ubuntu 4008 May 12 14:37 .bashrc
drwx------  2 ubuntu ubuntu 4096 May 12 05:34 .cache
drwxrwxr-x 10 ubuntu ubuntu 4096 May 12 05:43 .gradle
drwxrwxr-x  3 ubuntu ubuntu 4096 May 12 05:52 .local
-rw-r--r--  1 ubuntu ubuntu  807 Feb 25  2020 .profile
drwx------  2 ubuntu ubuntu 4096 May 12 05:40 .ssh
-rw-r--r--  1 ubuntu ubuntu    0 May 12 05:36 .sudo_as_admin_successful
-rw-------  1 ubuntu ubuntu  753 May 12 13:04 .viminfo
drwxrwxr-x  2 ubuntu ubuntu 4096 May 12 07:46 image
drwxrwxr-x  7 ubuntu ubuntu 4096 May 12 05:40 seb43_main_017
ubuntu@ip-172-31-40-115:~$

 

우리가 찾아야 할 파일은 .bashrc 파일이고 이 파일은 
ubuntu@~~~~/home/ubuntu 에 있습니다.
따라서 본인 경로에서 cd ..를 통해 본인의 경로를 찾은뒤 home/ubuntu에서 ls -al 을 통해 .bashrc를 찾습니다.

 

 

 


1. .bashrc 파일에 환경변수 추가


home/ubuntu/ 경로에서 다음의 명령어를 사용합니다.

nano .bashrc

 

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

nano .bashrc 를 입력하면 위와 같은 화면이 나오는데 제일 밑으로 이동합니다.

 

 

 

 

 

2. 'export' 명령어를 사용하여 환경 변수를 설정합니다. 


export MYSQL_SECRET=123456789

 

 

 

 

 

3. 변경 사항을 저장합니다. ( Ctrl+x ,누른 뒤 Y 를 누르고 Enter를 누른다)


 

 

 

 

 

 

 

4. '.bashrc' 파일에서 설정한 환경 변수를 사용할 수 있도록 변경 사항을 적용하기 위해 다음 명령어를 입력합니다.


source .bashrc

 

 

 

 

 

 

5. 마지막으로 환경변수가 제대로 저장됐는지 확인해보면 끝입니다.!


echo $MYSQL_SECRET
123456789

 

반응형