이번 학기에 듣는 수업이 과제부터 시험까지 모두 프로젝트 기반으로 점수가 매겨진다. (배포된 프로젝트를 채점)
이 수업에서는 지원해주는 비용으로 오직 AWS EC2만을 이용해서 배포를 실행하도록 지원해주는데,
한 가지 정말 불편한 점이 있었다면, 과제와 같은 하나의 프로젝트를 채점하고 나면,
다시 새로운 EC2 인스턴스 환경에 배포하라는 규칙이 있어서, JAVA 설치부터, 환경 변수 설정까지 싹 다 다시해야 하는게 너무 귀찮았다.
무엇보다, 매번 배포를 진행할 때마다 순탄하게 흘러가지 않고 항상 어디선가 막혀서 꼭 구글링을 다시 하게 되었다.
그래서 EC2에 간단하게 배포하는 법을 복기할 겸하여 이 글을 작성한다.
우선 EC2 인스턴스에서 사용하는 키의 권한을 설정해주어야 한다.
키 파일 종류는 PEK(맞는지 기억 안남)와 PEM 키 이렇게 2종류가 있던 걸로 기억하는데, 보통 PEM 형식을 많이 쓰는 것 같다.
이 글에서도 .pem 키를 이용해서 EC2에 접근하는 방법을 정리한다.
우선 pem 키의 권한을 설정해주었다.
(설정해주지 않으면, 키의 권한이 너무 개방적이어서 EC2 접근이 제한되는 것 같음.)
그렇게 발생한 에러 ⬇️
PEM키 읽기 권한만 설정하는 명령어. (Linux)
chmod 400 {.pem 키 이름}
PEM키 읽기 권한만 설정하는 명령어. (Window)
(사실 윈도우 명령어가 잘 기억이 안나서 메모 겸)
icacls {파일 경로} /grant:r {사용자명}:R
이렇게 pem 키에 접근 권한 설정을 마치면, ssh 명령어를 통해 EC2 콘솔로 접근이 가능해진다!
SSH 접속 명령어
ssh -i {PEM키 경로} {사용자명}@{EC2 인스턴스 PUBLIC IP}
참고로, PEM키 경로는 상대 경로를 사용해도 되고, 사용자명은 EC2 인스턴스의 운영체제 종류에 따라 조금씩 다른데, 내가 알고 있는 사용자명은 이정도다.
이것도 위에서 언급한 것처럼 운영체제마다 사용하는 명령어가 다른데,
Amazon Linux 2의 경우에는
sudo yum install java-11-openjdk-devel
ubuntu의 경우에는
sudo apt update
sudo apt install openjdk-11-jdk
apt update 명령어를 실행하는 이유는 apt가 업데이트되지 않아서 깔릴 jdk도 안 깔리는 문제가 생길 수도 있기에, 해주는 것도 좋은 방법이다.
(내가 당한 일)
우선 명령어가 실행되고 나면, [y/n] 으로 긴 영어 문구가 위협하는데,
난 jdk를 다운받을거니까 y 입력해주면 된다.
대충 기다린 후 다 된 것 같다 싶으면
java --version
명령어로 잘 설치되었는지 확인해주면 끗!
나는 jdk21을 받아주었다.
대망의 마지막이다. EC2 인스턴스에 환경 변수를 설정한다.
환경 변수를 지정해주는 방법도 나름 여러가진데,
전역적으로 설정하려면 /etc/profile 파일에 환경 변수를,
특정 사용자에 대해 설정하려면 특정 사용자의 홈 디렉토리 하위에 있는 .bashrc 파일을 편집하면 된다.
이 글에서는 /etc/profile 에 java 환경변수를 추가하려고 한다.
이렇게 파일 끝에 이 값들을 추가해준다.
export JAVA_HOME={JAVA 설치경로}
export PATH=$PATH:$JAVA_HOME/bin
여기서, JAVA 설치 경로는 readlink -f $(which java)
명령어로 나온 경로를 넣어주면 된다!
작성하고 저장한 파일을 반영하는 명령어를 실행해주자.
source /etc/profile
이러고 echo $JAVA_HOME
명령어와 echo $PATH
명령어로 환경변수가 잘 지정되었는지 확인해보자!
무언가가 잘 나온다면, 환경 변수 지정은 성공한 것이다.
만약 환경 변수 지정했는데도 echo 명령어로 확인할 수 없다면, EC2 인스턴스를 재부팅해보거나, 재접속해보자.
사실 정말 맘 잡고 하면 간단한 일이지만, 해놓았던 환경설정을 다시 하고 또 하는게 정말 번거롭고 매번 할 때마다 가물가물한게 더 짜증이 났었는데,
이렇게 정리하고 복기해보니 좀 더 익숙해진 기분이 든다.
오늘도 혹시나 이 길고 영양가 없는 글을 끝까지 읽어주신 분이 있다면,
정말 감사드립니다😊 좋은 하루 되세요!!