내일이 개인 프로젝트 마지막 날이다.
따라서 오늘 프로젝트를 마무리할 생각이었다...!
(원래 제출 시간에 딱 맞춰서 제출하는 나였지만... 변하려고 노력 중이라는 사실...)
결론부터 얘기하자면 개인 프로젝트인 Item-Simulator 는 이미 제출 완료!!!
하지만 프로젝트 진행 중 조금 막혔던 부분이 있어 이를 다뤄보고자 한다.
EC2 (Amazon Elastic Compute Cloud)
AWS(Amazon Web Services)에서 제공하는 가상 서버(인스턴스)를 생성하고 관리할 수 있는 클라우드 컴퓨팅 서비스.
쉽게 설명하자면, EC2는 사용자가 필요에 따라 가상 서버를 생성하고, CPU, 메모리, 스토리지, 네트워크 성능 등을 맞춤형으로 설정하여 애플리케이션을 실행할 수 있게 해주는 서비스이다.
이번 과제에서는 EC2로 서버를 열어야 하기 때문에 AWS로 들어가 Instance를 생성해줬다.
나는 Ubuntu로 서버를 생성했는데, Git bash로 터미널을 열어 해당 가상 서버를 실행했다.
그리고 git clone으로 Item-Simulator 프로젝트를 받고 실행시키는데...
오류가 생기네!!!??
가만 생각해보니... 내 github에는 .env가 없는데...?
그렇다고 개인 정보가 담긴 .env 를 git에 공유할 수는 없지 않겠는가!!!
그래서 부랴부랴 구글링을 시전했다... 거의 다 끝난 줄 알고 신났었는데...
조사해보니 가상 서버에 .env를 이용하는 방법은 크게 세 가지나 있더라구요!? (더 있으려나...)
첫 번째는 EC2 인스턴스에서 직접 .env 파일을 생성하는 방법. (이건 내가 택한 방법으로 조금 이따 다뤄보자!)
두 번째는 환경 변수를 직접 설정하거나 EC2 사용자 데이터(User Data)를 사용하여 환경 변수에 할당하는 방법.
마지막으로 AWS Systems Manager (SSM) Parameter Store를 사용하는 방법.
물론 SSM을 이용해 중요한 정보를 안전하게 관리하는 방법이 베스트겠지만...
AWS는 역시... 비용문제가... 두렵다...
따라서 나는 원래 내 프로젝트처럼 가상 서버의 Item-Simulator 프로젝트에도 .env를 직접 만들기로 결정하였다!!!
인스턴스(Instance) 접속
당연한 말이지만, 파일을 생성하려면 해당 서버에 접속해야 한다!
먼저 Git Bash (Mac의 경우 터미널) 를 열어주고 ,
ssh -i your-key.pem ec2-user@your-ec2-id
프로젝트 디렉토리로 이동
서버가 열리면 item-simulator 폴더로 이동한다.
cd item-simulator
.env 파일 생성
touch .env
.env 파일 설정
nano .env
여기까지 진행하면 .env 파일이 열리고 자유롭게 코드를 기입할 수 있는 상태가 된다!!!
나는 .env에 원래 프로젝트에 있던 (기밀) 정보들을 기입했다...!
간단하게 예로 들면 이런 식이다.
# 데이터베이스 경로
# AWS RDS 사용 시
DATABASE_URL="mysql://........"
# localhost
# DATABASE_URL="mysql://........"
...
이후 `Ctrl + O` 로 저장하고, (파일 확인을 위해 Enter도!)
`Ctrl + X` 를 눌러 nano 편집기를 종료한다.
이후 서버를 재시작하고 내가 만든 API를 확인해보면...?
깔끔하게 서버가 열리고 API가 실행되는 것을 확인할 수 있었다!
다음 시간에는 가비아(gabia)를 이용하여 도메인을 설정하고 DNS 관리하는 방법을 알아보도록 하자!!!
'Side Projects' 카테고리의 다른 글
Chrome dino 모작 - 트러블 슈팅 (1) | 2024.10.07 |
---|---|
Prisma 다시 돌아보기 (2) | 2024.09.25 |
Session Storage / Local Storage (0) | 2024.09.23 |
gabia에서 ec2 인스턴스 도메인 설정하고 관리하기 (0) | 2024.09.20 |
추억 앨범 페이지 만들기 (0) | 2024.09.11 |