AWS

AWS EC2, RDS 인스턴스 생성하기

s-jiun 2023. 2. 4. 11:24
반응형

※ 이번 포스트는 <스프링부트와 AWS로 혼자 구현하는 웹서비스> 책의 6장, 7장을 공부하면서 정리한 것입니다.

 

서버를 24시간 구동하는 세 가지 방법

 

1. 집에 PC를 24시간 구동시킨다 (..?)

2. 호스팅 서비스(ex. Cafe24 등)를 이용한다

3. 클라우드 서비스(ex. AWS, GCP 등)를 이용한다

● 비용 측면

- 호스팅 서비스나 집에서 PC를 24시간 구동하는 것이 유리

●서비스 확장성

- 유동적으로 사양을 늘릴 수 있는 클라우드가 유리

 

 

클라우드 서비스란

 

클라우드를 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어 등의 컴퓨팅 서비스를 제공하는 것.

단순히 물리 장비를 대여해주는 것이 아니라 서버 내부의 로그 관리, 모니터링, 하드웨어 교체, 네트워크 관리 등을 지원해주어 개발자가 직접 해야할 일이 상당 부분 줄어든다

● 클라우드 서비스의 형태

- Infrastructure as a Service (IaaS)

: 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스

: 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해주는 서비스

: AWS의 EC2, S3 ...

- Platform as a Service (PaaS)

: IaaS에서 한 번 더 추상화한 서비스

: 한 번 더 추상화했기 때문에 많은 기능이 자동화되어 있다

: AWS의 Beanstalk, Heroku ...

- Software as a Service(SaaS)

: 구글 드라이브, 드랍박스와 같은 소프트웨어 서비스

 

 

AWS의 장점

 

- 가입 시 1년간 대부분의 서비스가 무료 (프리티어)

- 클라우드에서 기본적으로 지원하는 기능(모니터링, 백업, 복구...)이 많아 개발에 좀 더 집중할 수 있다

- 국내에서는 AWS 점유율이 압도적

- 사용자가 많아 국내 자료와 커뮤니티가 활성화되어 있다

 

 

AWS EC2 인스턴스 생성하기

 

1. AWS 회원가입을 한다 (Master 혹은 Visa 카드 필요)

2. 리전을 서울로 설정

3. EC2 대시보드에서 '인스턴스 시작 클릭

4. AMI (EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것) 선택

5. 인스턴스 유형 → 프리티어인 t2.micro 선택

: t2 외에 t3도 존재하며, 이를 T 시리즈라고 한다. 크레딧이 있어 인스턴스 크기에 따라 정해진 비율로 크레딧을 받게 되며 사용하지 않을 때는 크레딧을 축적하고 사용할 때 크레딧을 사용. 정해진 사양보다 더 높은 트레픽이 오면 크레딧을 더 적극적으로 사용하여 트레픽을 처리하지만 트레딧이 모두 소진되면 더이상 인스턴스를 사용할 수 없다. 때문에 트래픽이 높은 서비스에서는 T 시리즈가 아닌 다른 시리즈를 사용하기도 함

6. 서버 용량 설정 -> 기본 설정 값은 8GB이나 프리티어로 30GB까지 설정 가능

7. 태그 추가 ( 인스턴스의 이름 설정 )

8. 보안그룹 설정

: 이때 IP 주소를 0.0.0.0/0으로 설정할 경우 깃헙에 실수로 pem키가 노출되는 순간 서버에서 가상화폐가 채굴되는 경험을 할 수 있다

때문에 본인 집의 IP 주소를 기본으로 추가하고 다른 장소레서 접속할 때마다 해당 IP를 ssh 규칙에 추가하는 것이 안전하다

9. pem키 선택

: 절대 유출되면 안된다!! 인스턴스는 지정된 pem키와 매칭되는 공개키를 갖고 있어 해당 pem외에는 접근을 허용하지 않는다

기존에 생성된 키가 있다면 선택하고 아니라면 새로 생성한다

10. EIP (탄력적 IP) 할당

: 인스턴스를 중지하고 다시 시작할 때마다 IP가 변경되는 것을 막기 위해 고정 IP를 설정해주는 것. 탄력적 IP 생성 후 인스턴스에 연결하지 않으면 비용이 청구되므로 반드시 인스턴스에 연결해야 한다.

 

 

EC2 서버에 접속하기 for Windows

 

1. putty.org 사이트에서 putty와 puttygen을 다운로드

2. puttygen에서 pem키를 ppk로 변환

3. putty에서 ppk 파일을 불러온 후 세션을 실행하면 원격 접속이 가능

 

 

아마존 리눅스 서버 설정 시 꼭 해야하는 설정들

 

● JAVA 설치 - 아래 명령어는 자바8을 설치하는 명령어이다

sudo yum install -y java-1.8.0-openjdk-devel.x86_64

 

● 타임존 변경

EC2 서버의 기본 타임존은 UTC로 세계 표준 시각을 사용. 이는 한국과 9시간 차이가 발생하기 때문에 서버에서 수행되는 자바 어플리케이션에서 생성되는 시간과도 9시간 차이가 발생하므로 타임존을 변경해주어야 한다

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

● Hostname 변경

여러 서버를 관리하게 될 경우 각 서버가 어느 서비스인지 관리하기가 어려워지므로 HOSTNAME을 변경해주는 것이 좋다

sudo vim /etc/sysconfig/network

위의 명령을 입력 후 화면에 노출되는 항목 중 HOSTNAME을 본인이 원하는 이름으로 변경하고 아래 명령으로 서버 재부팅

sudo reboot

그 후 아래 명령을 수행한다.

sudo vim /etc/hosts

그럼 화면에 hostname들이 나오는데, 아래의 내용을 추가해준다

127.0.0.1   {등록한 hostname}

 

 

AWS RDS 생성하기

 

이 책에서는 RDS 인스턴스로 MariaDB를 사용한다. 하지만 나는 그동안 MySQL을 사용해 왔고, 이를 설정하는 방법을 이미 블로그에 업로드한 적이 있기 때문에 링크를 아래에 첨부하겠다. RDS MySQL과 MariaDB 모두 설정 방법은 같으니 설정 과정은 아래 링크를 참고하기 바란다.

https://devlog-j.tistory.com/29

 

AWS RDS MySQL 생성하기~

1. AWS에 로그인하여 RDS > 데이터베이스 생성 으로 들어갑니다. ​ 2. 엔진 옵션에서 MySQL을 선택합니다. 3. 탬플릿은 원하는 옵션으로 선택하면 되는데, 프리티어의 경우 1년 동안 아래의 서비스를

devlog-j.tistory.com

 

여기서는 MariaDB의 장점을 간단하게 정리하고 넘어가겠다

● MariaDB의 장점

- 가격: 프리티어 기간 이후 비용을 지불해야 하는데, 상용 sw인 오라클, MSSQL에 비해 저렴(이는 MySQL도 마찬가지)

- 교체 용이성 : Amazon Aurora로 교체하기 편리하다.

· Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 것으로, RDS MySQL보다 5배, RDS PostgreSQL보다 3배 성능이 우수하다고 한다. AWS에서 직접 엔지니어링 하고 있고 다양한 기능을 제공하여 좋지만 가격이 비싸다(최소 월 10만원 이상)

- 동일 하드웨어에서 MySQL보다 우수한 성능

- 좀 더 활성화된 커뮤니티

- 다양한 스토리지 엔진

반응형

 

반응형