EC2 생성하기
어느 정도의 프로젝트 베이스가 마련되어 실질적인 배포를 진행해보려고 한다.
이를 위해 이전에 AWS에 대해 학습한 바 있고 이를 실제 프로젝트로 적용하려고 한다.
먼저, 배포를 위한 EC2를 생성해보자. (AWS에 가입되어 있다고 가정한다.)
AWS에서는 프리 티어로 EC2를 무료로 사용할 수 있다.
나는 프리 티어로 이번에 진행을 해볼 것이다.
먼저, EC2에 들어왔다면 인스턴스 시작을 눌러 실제 EC2를 생성해보자.
AWS 서비스에서 EC2를 들어가 인스턴스 탭에서 인스턴스 시작을 누르자.
그렇다면 다음과 같이 AMI을 선택하는 화면이 나오게 된다.
여기서 우리는 프리 티어를 사용하여 EC2 환경을 구축할 것이기 때문에 다음과 같이 선택해준다.
프리 티어 용으로 선택하고 넘어가준다.
인스턴스를 설정하는데 있어 스토리지를 변경하려고한다.
기본적으로 EC2를 프리 티어로 생성할 때 기본적으로 설정되는 스토리지 용량은 8GB이다.
하지만, EC2의 프리 티어를 사용할 때 무료로 사용할 수 있는 용량은 30GB이다.
- 30GB라는 것이 EC2당 개별적으로 무료로 주어지는 것이 아니라 프리 티어로 사용되는 모든 EC2 인스턴스에 대해 30GB를 확인하는 것이므로 이를 주의하여 생성하여야 한다.
나는 이 EC2에 Spring Boot와 React를 띄워 환경을 구축할 생각이며 Jenkins를 통한 CI/CD 환경 또한 구축하려하기에 용량을 20GB로 늘리려고 한다.
메모리 1GB, 20GB의 스토리지로 부족하다고 생각이 들긴하지만 일단 진행을 한 뒤 추후 트러블슈팅할 예정이다.
시작하게 되면 EC2에 접속하기 전에 확인할 키 페어에 대해 설정하게 된다.
이전에 키 페어를 생성하였다면 기존 키 페어를 사용해도 되고 없다면 새 키 페어를 생성하여 사용할 수 있다.
그리고 인스턴스 세부 정보에 들어가
보안 -> 인바운드 규칙 설정에 들어가 수정을 진행하자.
우리는 해당 EC2의 인바운드에 대해 설정해야한다.
80포트는 HTTP 포트에 대한 설정, 9090은 추후 젠킨스에 대한 포트 설정, 8080은 스프링에 대한 설정을 진행하고 추후 리액트에 대한 3000 또한 설정하려한다.
현재 이 EC2 인스턴스에 퍼블릭 IP가 배정되어있기는 하나, 추후 재시작을 진행할 경우 IP가 변경되어버린다.
이를 방지하기 위해 탄력적 IP 주소를 할당해보자.
다음과 같이 탄력적 IP 탭에 들어가 생성을 하고 위 인스턴스에 할당한다.
RDS 생성하기
EC2에 대한 설정이 완료되었다.
하지만 아직 남아있는 과제들이 많다.
그 중 먼저 데이터베이스를 살펴보자.
나는 서버를 운영하는데 있어 MySQL을 이용하고 있다.
EC2에 실제로 MySQL을 설치하고 그 안에서 MySQL을 활용해도 되지만 AWS에서는 관계형 데이터베이스 사용을 위한 RDS를 제공해준다.
나는 이를 적극적으로 활용하기로 하였고 이에 대한 부분을 설정하려고 하였다.
다음과 같이 RDS에 들어가 생성을 누른다.
그러면 다음과 같이 다양한 벤더사를 고를 수 있게 된다.
그 중 나는 MySQL을 사용하기에 해당 옵션을 클릭한다.
그리고 우리는 프리 티어로 진행할 것이기 때문에 해당 옵션을 체크해준다.
그리고 해당 인스턴스 식별자랑 마스터 정보에 대해 각자 편한 부분으로 설정해주면 된다.
그리고 스토리지에 대한 부분이다.
프리티어에서는 20GB를 설정하자.
그리고 VPC에 대한 설정을 진행해야하는데 기존에 생성된 VPC가 존재한다면 선택하면 되지만 없다면 default로 진행해도 된다.
그리고 아래에서 볼 수 있듯이 생성되면 아래와 같은 정보를 볼 수 있는데
연결&보안에 대한 부분의 엔드포인트는 RDS에 접근할 때 필요한 정보이고 아래 인바운드 규칙을 편집해 다른 곳에서 RDS에 접근할 수 있도록 설정해준다.
이와 같이 EC2와 RDS에 대해 설정을 진행했다면 설정이 완료된 것이다.
만약, 서버 운영을 위해 도메인을 구매했다면 Route 53에 등록을 완료하고 이를 활용해야할 것이지만 현재 그 부분에 대한 내용은 생략하였다.
이렇게 완료되었다면 실제 EC2를 실행하여 진행하면 되는데 linux 환경이 아니라 윈도우 환경에서 이를 진행하려면 putty 혹은 xshell을 통해 이를 진행해야한다.
이를 다음 포스트에서 알아보려고 한다.
'AWS' 카테고리의 다른 글
[배포를 진행해보자] Jenkins를 통한 CI/CD 구축 (0) | 2022.02.02 |
---|---|
[AWS] Lambda, CloudFront (0) | 2021.12.24 |
[AWS] CloudWatch (0) | 2021.12.24 |
[AWS] S3 (0) | 2021.12.24 |
[AWS] RDS (0) | 2021.12.20 |