[한이음] EC2 생성 및 설정

김유정·2022년 7월 2일
0

한이음

목록 보기
2/3
post-thumbnail

백엔드를 처음 하겠다고 프로젝트에 참여했을 때, 가장 어려웠던 부분이 백엔드 개발이 어떤 단계로 이루어져있고 뭐부터 해야하는지 감이 안왔다. 뭘 해야하는지 알면 그거와 관련해서 알아보겠는데, 순서를 몰라서 헤맸다.

아직도 잘 모르지만, 공부하면서 어떤 걸 공부해야하는지 적어보려한다. 그래서 한이음 시리즈에서는 백엔드 개발을 단계별로 정리해보고 싶다. 어차피 단계만 알면, 자세한 건 이 블로그보다 잘 설명해주는 글들이 많을테니...각 단계에서 한 것 위주로 정리해보자

지금까지 한 부분


  • MySQLWorkbench로 erd 설계(데이터베이스 설계)
  • Spring Intializer로 Spring + Gradle 프로젝트 생성
  • EC2에 인스턴스 생성
  • EC2에 Java, MySQL, Git 설치

다음 단계

  • RDS에 데이터베이스 생성
  • 파라미터그룹 생성 후 데이터베이스 옵션의 DB 파라미터 그룹 변경
  • RDS에 생성한 데이터베이스와 인스턴스 연결
  • RDS와 MySQLWorkbench 연결
  • MyBatis로 RDS와 spring 프로젝트 연결

같이 백엔드 개발하시는 선우님이 데이터베이스 설계를 해주셔서 나는 RDS에 데이터베이스를 만들고, ERD로 설계한 걸 바탕으로 RDS에 테이블을 만들었다.
RDS와 spring 프로젝트 연결하는 부분에서 500 internal server error가 나서 많은 시간을 소요했지만, 잘 해결돼서 테스트로 삽입한 user 데이터를 받아오는 것까지는 확인했다.

EC2에 인스턴스 생성


AWS에서 다음과 같은 단계를 수행해주면 된다. 인스턴스 생성할 때 보안그룹을 생성하거나 이미 존재하는 그룹을 선택해주면 된다.

1) 인스턴스 생성 (오른쪽 위 지역 꼭 확인하기!)

2) 보안그룹 생성 및 설정

3) 탄력적 IP 발급 & 인스턴스에 탄련적 IP 연결

EC2 설정 & 접속


EC2에 편리하게 접속하기위해 내 컴퓨터 terminal에서 해야하는 것들을 정리해봤다.

4) 인스턴스 생성 단계에서 선택 또는 추가한 pem 키를 ~/.ssh/로 복사

cp pem 키를 내려받은 위치 ~/.ssh/

5) pem 키 권한 변경

chmod 600 ~/.ssh/pem키이름

6) ~/.ssh 디렉토리에 config 파일 생성

vi ~/.ssh/config

(vi 말고 다른 편집기를 사용해도 되고, config 파일만 만들어주면 된다.)
config 파일에 아래 내용을 추가해준다.

# 주석. 어떤 서비스인지 알아볼 수 있게 알아서 작성.
Host 원하는 서비스명
HostName ec2의 탄력적 IP 주소
User ec2-user
IdentityFile ~/.ssh/pem키 이름

AMI(아마존 머신 이미지)를 Ubuntu로 선택해서 인스턴스를 생성했다면, HostName에 ec2-user 대신 ubuntu라고 적어줘야한다. AMI에 맞는 HostName이 아니면 접속할 때 에러가 난다.
다 작성했다면, esc키 누른 후:wq 명령어로 저장 후 종료

7) config 파일 실행 권한 설정

chmod 700 ~/.ssh/config

8) ec2로 접속

ssh config에 Host에 적은 서비스명

탄력적 IP를 할당하지 않으면, 인스턴스를 재시작할 때마다 다른 IP가 할당되기 때문에, 번거롭다. 그리고 config 파일을 설정해주지 않으면, 매번 아래와 같은 명령어를 입력해서 접속해야한다.

ssh -i {YOUR_KEY_PAIR_FILE.pem} {USER_NAME}@{AWS_PUBLIC_DNS_}

하지만, 탄력적 IP를 할당하고 config 파일에 설정해두면, ssh 서비스명으로 간단하게 접속이 가능하다.

ssh 접속이 안될 때

ssh 접속이 안돼서 당황했던 적이 많다. 그래서 포스팅으로 따로 정리해놓았다.
https://velog.io/@youjung/AWS-Permission-denied-publickey

ec2에 Java, Git, MySQL 설치


sudo yum install git
  • MySQL 설치
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
sudo dnf install mysql-community-server

ubuntu AMI를 사용한다면, yum 대신 apt-get을 사용해 설치하면 된다.

타임존 변경


EC2 서버의 기본 타임존은 UTC로, 한국의 시간과는 9시간의 차이가 발생한다. 따라서 한국 시간으로 변경해주어야 한다.

  • 한국 시간으로 변경
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
  • 확인
date

지금 시간이 나오면 변경 완료!

마무리


글이 길어져서 RDS 부분은 다음에 포스팅하려한다. 인스턴스를 만드는 것은 이제 문제 없지만, ec2라는 서비스와 인스턴스에 대한 개념이 부족한 것 같다. 인스턴스에 대해 더 공부하고, 공부한 내용은 여기 추가해두자.

참고


0개의 댓글