SpringBoot에 CI/CD 적용하기(with Travis CI, AWS CodeDeploy)(1) - EC2 서버 생성하기

zooju·2023년 2월 28일
0

먼저 서버가 실행될 EC2를 생성해보자!

회사 VPC 안에 서브넷을 새로 만들고 그곳에 EC2를 생성해보자.

STEP1. VPC에서 새로운 EC2를 위한 서브넷 생성하기

사내 VPC에 EC2를 만들기 위해 서브넷을 만들려 한다.

1. AWS VPC 대시보드에서 “서브넷”에 들어가서 서브넷 생성

2. VPC 선택, 서브넷 이름 입력, 가용영역 선택, CIDR 블록 선택 후 생성해주기

  • VPC 선택: 회사 VPC 선택
  • 가용 영역: 이미 존재하는 DB와 연결하기 위해 DB와 동일한 가용영역을 선택해줬다.
  • CIDR 블록: VPC에서 남아있는 블록을 선택(예시: 10.0.33.0/24)

3. 라우팅 테이블 연결

생성된 서브넷을 클릭한 후, 인터넷 연결 등을 위해 사내 public 라우팅 테이블을 연결해준다.

서브넷 생성 끝!

나 같은 경우, 미래에 로드 밸랜서를 연결해 줄 때 가용영역이 2개가 필요하기 때문에 DB와 동일한 가용영역 하나(c), DB와 다른 가용영역 하나(a) 이렇게 2개를 만들어 주었다.

STEP2. EC2 인스턴스 생성하기

  1. AWS에 접속해 EC2 대시보드로 들어간다.
  2. 인스턴스 시작을 클릭해 인스턴스를 생성해준다.

  • 서버 이름: 원하는 서버 이름을 입력해준다.
  • AMI: AMI는 Amazon linux를 선택해줬다.

사실 기존에는 ubuntu가 익숙해서 ubuntu를 훨씬 자주 사용했지만, AWS가 적극적으로 지원해주는 OS를 사용해보고자 선택했다. 검색할 때에도 ubuntu보단 linux가 자료도 훨씬 많았던 것 같기도 해서…

  • 키페어: pem으로 새로 생성해서 pc에 저장해주었다.
  • 네트워크 설정: 사내 VPC, subnet을 선택해준다. 정해진 VPC가 없다면 기본값으로 두면 된다.

그리고 보안그룹 규칙에 ssh, http, 8080을 추가해주었다.

보안 그룹은 방화벽의 역할을 한다.

예시) 22포트에서는 “오피스 ip”외에는 허용하지 않는다. 

(SSH: AWS EC2에 터미널로 접속할 때 사용. 재택 근무를 위한 집 IP와 회사 IP를 추가했다)

  • 스토리지 구성

기본값이 8GB지만, 프리티어로 30GB까지 가능하므로 30GB으로 해주었다.

스토리지가 너무 작을 경우, 배포시 서버가 터지는 경우를 종종 접했기 때문에 넉넉하게 해주는 것이 좋다고 느꼈다.

설정이 모두 끝나면 인스턴스 시작 버튼을 눌러 인스턴스를 생성한다.

대시보드로 다시 나와서 인스턴스 상태가 “실행 중”이 되면 성공적으로 생성된 것이다.

STEP3. EC2 인스턴스에 탄력적 IP 붙여주기

인스턴스는 하나의 서버이기 때문에 IP가 존재한다. 그런데 AWS에선 EC2가 재시작할 때 마다 IP 값이 변경되는데 이렇게 되면 배포시에 굉장히 곤란해진다(계속 설정을 변경해주어야 하기 때문)

그렇기에 인스턴스의 IP가 매번 변경되지 않도록 고정 IP인 탄력적 IP를 생성해서 할당해준다.

1. 인스턴스 대시보드 > 네트워크 및 보안 > 탄력적 IP > 탄력적 IP 주소 할당 선택

2. 할당 선택

이렇게 되면 탄력적 주소가 생성된다.

3. 탄력적 IP와 EC2 인스턴스 연결하기

그리고 생성된 탄력적 주소를 선택하면 “탄력적 IP 주소 연결” 이라는 버튼이 나온다. 이를 클릭해준다.

그리고 인스턴스를 선택해준뒤 연결을 눌러주면 연결이 된다.

확인을 위해선 인스턴스 탭으로 다시 들어가서, 연결해준 ec2를 선택한다. 그러면 방금 할당한 탄력적 주소가 “퍼블릭 IPv4 주소”에 잘 들어가 있는 것을 확인할 수 있다.

STEP4. EC2 서버에 접속하기 (for MAC)

  • ssh로 서버 접속하기
  • ssh키

현재 맥북을 사용해서 개발을 하고 있기 때문에 맥북으로 EC2서버에 접속해보자.

다운로드한 pem 파일에 권한을 부여해준다.

chmod 600 <pem 키 이름>.pem

그리고 다음 명령어로 ec2에 접속할 수 있다.

ssh -i pem <pem 키 위치> ec2-user@<EIP 주소>

하지만 매번 이렇게 작성하는 것은 매우 번거롭다. 맥북에서는 키를 ~/.ssh/에 저장하고, config 파일에 반영함으로써 더 편리하게 사용할 수 있는데 이에 대한 정리는 아래의 포스트에 정리해두었다.

SSH 더 편하게 접속하기

STEP5. EC2 서버 설정하기

  • java 11 설치해주기

Amazon Linux EC2에 java 11 설치하기

  • 타임존 변경

Amazon Linux EC2 서버 타임 존 한국으로 변경하기

profile
이것 저것 새로운 분야에 관심이 많은 서버 개발자

0개의 댓글