이제 기본적인 게시판 구축은 완료되었다.
이제 AWS의 EC2와 RDS를 사용해서 프로젝트를 배포해보자!
그 첫 단계로, EC2 인스턴스를 생성하여 서버 환경을 만들어보자.
🍏 M1 맥북을 기준으로 작성하였습니다. 🍎
만약 AWS 계정이 없다면 아래 사이트로 들어가 가입하자.
https://aws.amazon.com/ko/
EC2(Elastic Compute Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버이다.
그러나, AWS는 무료 서비스가 아니다. 프리티어
라는 플랜만 무료로 사용할 수 있는데, 프리티어에는 아래 두 가지 제한이 있다.
가입이 완료되었다면, 헤더에서 닉네임 옆 리전(region)을 확인해보자.
리전은 AWS의 서비스가 구동될 지역을 이야기한다.
만약 서울이 아닌 다른 나라가 선택되었다면, 서버가 작동하지 않거나 매우 느릴 수 있으므로 꼭 ‼️서울‼️로 바꿔준다
이제 EC2 인스턴스를 생성해보자.
서비스 중 EC2를 찾아 클릭하거나, 검색 창에 검색하여 EC2 대시보드로 들어가서 인스턴스 시작
을 눌러준다.
이름을 적고, AMI를 선택해준다.
책에서는 Amazon Linux AMI를 사용하지만, 나는 Ubuntu Server 22.04 LTS, SSSD Volum Type
을 선택하였다.
인스턴스 유형은 앞에서 말한 t2.micro
로 하고, 키 페어를 선택해준다. 키 페어가 없다면 '새 키 페어 생성'을 눌러 키 페어를 생성해주자.
‼️ pem 키는 EC2에 접근하는 마스터키이므로 절대 !! 유출되면 안된다 ‼️
다음으로 보안 그룹과 스토리지를 선택해주었다.
나는 추후 다른 인스턴스에서도 범용적인 보안 그룹을 사용할 수 있도록 기존 보안 그룹 중 default를 선택하였고, (앞으로 채워나갈 예정)
스토리지의 경우 프리티어 플랜에서 30GB까지 무료 사용 가능하므로, 최대인 30으로 설정해주었다.
고급 세부 정보는 건드리지 않았다.
이제 인스턴스 설정이 마무리되었고, 인스턴스 시작 버튼을 눌러 인스턴스를 생성하자.
다음과 같이 인스턴스가 생성된 것을 확인할 수 있다.
인스턴스 ID 클릭 > 보안 > 보안 그룹 클릭 > 인바운드 규칙 편집 으로 들어가 아래 네 가지를 추가한다.
0.0.0.0/0
으로 설정한 이유는 집이 아닌 외부에서도 EC2에 접근할 수 있도록 한 것이다.인스턴스 생성 시 새 IP가 할당된다. (IP 주소 입력하면 서버 접속 가능)
그러나, 같은 인스턴스를 중지하고 다시 시작할 때도 새 IP가 할당된다.
이는 매우 번거롭기 때문에, IP가 매번 변경되지 않도록 고정 IP를 가지도록 해주자.
왼쪽 카테고리 중 '탄력적 IP'를 클릭한다.
탄력적 IP 할당 > 주소 연결
과정을 통해 탄력적 IP를 만들고 인스턴스에 연결해주자.
💥 탄력적 IP를 생성하고 EC2 서버에 연결하지 않으면 비용이 발생한다 💥
생성한 탄력적 IP는 꼭 인스턴스에 연결하고, 인스턴스 삭제 시 탄력적 IP도 꼭 함께 삭제해주도록 하자.
이것 때문에 몇 달 동안 3000원 가량 자잘하게 AWS한테 돈 뜯겼었다 ^_ㅠ
로컬(내 컴퓨터)에서 아까 만든 EC2 서버에 접속해보자.
아까 받은 키페어 pem 파일을 ~/.ssh/
로 복사하자.
pem 파일을 ~/.ssh/ 에 옮겨 놓으면 ssh 실행 시 pem 키 파일을 자동으로 읽어 접속을 진행하게 된다.
cp (pem 키 파일) ~/.ssh/
~/.ssh/ 디렉토리로 이동하여 확인해보면 잘 복사된 것을 볼 수 있다!
pem 키 권한을 변경하고, ~/.ssh 디렉토리에 config 파일을 생성한다.
config 파일의 내용이다.
혹시나 vim을 모르는 사용자를 위하여...!
i
를 눌러 INSERT 모드로 변경해야 타이핑이 가능하다.
내용을 다 입력했으면 ESC 키를 누르고 :wq
를 입력하면 저장 및 종료가 가능하다 :)
ssh (Host에 입력한 내용)
을 터미널에 입력하면 이제 EC2 서버에 접속 가능하다.생성된 config 파일에도 실행 권한이 필요하므로 권한을 변경해주자.
이제 EC2 서버에 접속해보자.
WoW !!
sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
date
명령어로 확인했을 때 타임존이 UTC에서 KST로 변경된 것을 확인할 수 있다.
sudo vim /etc/hosts
네모 친 부분을 원하는 이름으로 변경해준다.
sudo vim /etc/hostname
아까와 동일하게 이름을 변경해준다.
sudo reboot
재부팅이 끝나고 다시 접속하면 호스트 네임이 잘 변경된 것을 확인할 수 있다 ^ㅅ^ bb
https://velog.io/@banjjoknim/AWS-EC2-인스턴스-생성하기Ubuntu-AMI
https://coding-wonderland.tistory.com/19
https://i5i5.tistory.com/266
https://soobarkbar.tistory.com/226