본문 바로가기
Infra & Tools/AWS

AWS EC2, RDS, S3에 대해 알아보자.

by 깐니 2020. 7. 25.

목차
1. 소개
2. AWS EC2, RDS, S3에 대해 알아보자.

 

1. 소개

"클라우드 컴퓨팅에 대해 알아보자" 포스팅에서 클라우드 컴퓨팅에 대해 알아보았다.

이 중 IaaS 유형인 AWS를 이용하여 클라우드 컴퓨팅 서비스를 이용해보고자 한다.

우선, AWS에 대해 더 자세히 알아보자. 다음은 공식 사이트의 소개글이다.

아마존 웹 서비스(AWS)는 안전하고 신뢰할 수 있으며 쉽고 빠른 확장성과, 비용을 절감할 수 있는 플랫폼을 ‘Cloud’로 제공하고 있습니다.
확장성이 뛰어나고 신뢰도가 높은 IT 솔루션을 배포할 수 있도록 AWS에서 인프라를 관리 할 수 있게 합니다.
아마존 웹 서비스 사용 시에는 선 비용이나 장기 약정 없이 사용하는 만큼만 지불 할 수 있습니다.

다음은 AWS에서 제공하는 인프라 종류이다.

출처: https://cloud.hosting.kr/amazon-web-serviceaws/

이렇게나 많은 서비스를 제공받을 수 있다 !!

이중에서 AWS의 가상서버인 Amazon EC2, 클라우드 기반 관계형 데이터베이스인 Amazon RDS, API 기반 스토리지인 Amazon S3에 대해 알아보자.

 

2. AWS EC2, RDS, S3에 대해 알아보자.

Amazon EC2에 대해 알아보자.

EC2 (Elastic Compute Cloud)는 AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버이다. 
보통 AWS에서 리눅스 서버 혹은 윈도우서버를 사용을 의미한다.


AWS EC2 서버를 사용하기 위한 절차는 다음과 같다.

  1. AMI (Amazon Machine Image)를 선택한다.
    AMI -> EC2 인스턴스를 시작하는데 필요한 정보를 이미지로 만들어 놓은 것을 의미한다.
                인스턴스라는 가상머신 (가상서버)에 운영체제 등을 설치할 수 있게 구워 넣은 이미지라고 생각하면 된다.

  2. 인스턴스 유형을 선택한다.
    인스턴스는 애플리케이션을 실행할 수 있는 가상 서버이다.
    이러한 인스턴스에는 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합이 있다.
    이것을 사용하기 위한 요금유형을 선택하는 단계라고 생각하면 된다.

  3. 인스턴스 세부 정보를 구성한다.
    기업의 경우, VPC,서브넷 등을 자세하게 설정한다.
    VPC, 서브넷 등은 AWS 서비스들의 네트워크 환경을 구성하는 정도로만 이해하자.. 🥺 VPC에 대한 공부자료 참고하기

  4. 스토리지를 선택한다.
    스토리지는 하드디스크라고 부르는 서버의 디스크를 이야기한다.
    서버의 용량을 얼마나 정할지 선택하는 단계이다. 

  5. 보안 그룹을 설정한다. 🧐🧐🧐🧐 (매우 중요)
    AWS의 보안 그룹은 방화벽을 의미한다. == '서버로 80포트 외에는  허용하지 않는다.'

  6. EIP 할당하고 EC2주소를 연결하자.

  7. EC2 서버에 접속하자.

  8. 이외, AMI로 아마존 리눅스 1 (Amazon Linux AMI 1)로 서버를 생성했다면, 자바 기반의 웹 어플리케이션이라면, 꼭 해야 할 설정들
    Java 8 설치
    타임존 변경
    호스트네임 변경

 

각 절차의 상세 정보 및 실행 과정에 대한 포스팅 

 

AWS RDS에 대해 알아보자.


RDS (Relation Database Service)는 AWS에서 지원하는 클라우드기반 관계형 데이터베이스이다.
인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스이다.
추가로 조정 가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로 내면 정상적으로 서비스가 가능하다.
Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환) 등의 데이터베이스 엔진을 지원한다.

특히, Amazon Aurora라는 자체 데이터베이스를 제공한다.
Amazon Aurora는 AWS에서 MySQL과 PostgreSQL을 클라우드 기반에 맞게 재구성한 데이터베이스이다.
AWS에서 직접 엔지니어링하고 있기 때문데 계속 발전하고 있다.
하지만 프리티어대상(무료)가 아니라서, 나중에 Amazon Aurora로 교체하기 용이한 MariaDB를 추천한다.
또한, MariaDB는 MySQL을 기반으로 만들어졌기 때문에 사용법이 비슷하며, 더 향상된 성능을 지원한다.

AWS RDS 데이터베이스를 사용하기 위한 절차는 다음과 같다.

1. RDS 인스턴스를 생성한다.
   데이터베이스(DBMS) 를 선택하는 단계이다. 선택 시 참고 사항은 위에 글을 읽어보면 좋을 듯하다.

2. 상세 설정 및 데이터베이스 옵션을 설정한다.
   스토리지 유형, 할당된 스토리지 등을 설정하고, DB인스턴스 이름과 사용자 정보, 네트워크 및 보안을 설정한다.

3. RDS 운영환경에 맞는 파라미터 그룹을 설정한다.
    타임존 : Asia/Seoul
    Character Set
    Max Connection : 인스턴스 사양 

4. 파라미터 그룹을 데이터베이스에 연결한다.

5. IntelliJ (내 PC)에서 RDS에 접속하자.
   RDS 보안 그룹에 본인 PC의 IP주소를 추가한다.
   RDS 보안 그룹에 EC2의 보안 그룹을 추가한다. -> EC2와 RDS 간의 접근을 가능하게 하기 위함.
   IntelliJ에 Database 플러그인을 설치한 후, 세부 설정을 한다.

6. EC2에서 RDS에서의 접근을 확인해보자.

각 절차의 상세 정보 및 실행 과정에 대한 포스팅 

 

AWS RDS 환경 구축하기

이번 포스팅에서는 AWS RDS 인스턴스를 생성하여, IntelliJ 내 프로젝트와 연동하는 과정에 대해 알아보자. 사용할 DB는 mariaDB입니다. DB 선택 이유는 이전 포스팅에서 확인해주세요~ (이번 포스팅에��

shin-bugkiller.tistory.com

 

AWS S3에 대해 알아보자.

S3 (Simple Storage Service)는 아마존 웹 서비스에서 제공하는 API를 통한 인터넷 규모의 스토리지 웹 서비스이다.
AWS에서 제공하는 일종의 파일 서버이다.
파일 서버는 서비스 운영에서 어떤 파일을 저장하고, 저장된 파일을 필요한 사람에게 제공하는 역할을 한다.
S3에서는 파일이라는 표현이 아니라 객체라고 표현한다.

이미지 파일을 비롯한 정적 파일들을 관리하거나, 배포 파일들을 관리, 접근 권한 관리, 검색 등의 기능을 지원한다.
보통 이미지 업로드 구현에 S3를 많이 이용한다.

다음은 AWS S3의 특징에 대해 알아보자.

1. 많은 사용자가 접속을 해도 이를 감당하기 위해서 시스템적 작업을 하지 않아도 된다.

2. 저장할 수 있는 파일 수의 제한이 없다.

3. 단일 파일을 최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있다.

4. 파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다.

5. HTTP와 BitTorrent 프로토콜을 지원한다.
   
BitTorrent는 P2P방식의 배포방식이다.
    다운로드를 요청한 각각의 컴퓨터가 클라이언트이면서 서버역할을 한다.
    최초로 다운로드를 제공하게 되면, 그 다음부터는 클라이언트들이 서버 역할을 하게 되면서 역할을 분산하게 된다.
   -> 더 빠른 속도로 저렴하게 대용량 데이터를 사용자에게 제공할 수 있다.

6. REST, SOAP 인터페이스를 제공한다.
    
REST: HTTP 프로토콜로 데이터를 전달하는 프레임워크 (Ref.🧐)
    SOAP: XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜 (Ref.🧐)

7. 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다.
   
직접 하드디스크를 사용하는 것보다 훨씬 안전하다.

8. 버전관리 기능을 통해서 사용자에 의한 실수도 복원이 가능하다.

9. 정보의 중요도에 따라서 보호 수준을 차등 할 수 있고, 이에 따라서 비용을 절감 할 수 있다. (RSS)
   
예를 들면, 썸네일에 대해 생각해보자.
    썸네일은 이미지를 줄인 것으로, 원본 이미지가 존재한다.
    원본 이미지는 스탠다드 방식으로 S3에 저장을 하고, 썸네일된 데이터는 보호수준을 낮춘 서비스인  RSS방식으로 서비스를 한다.
    따라서, 그 데이터를 사용자에게 제공하는 데 필요한 비용이 낮아지게 된다.

 

이렇게 다음 포스팅인 AWS 자세한 사용방법을 알아보기 전에, 개념을 정리해보았다.
부족한 부분은 더 채워갈 예정입니다.

 

Reference
📗생활코딩
📘스프링부트와 AWS로 혼자구현하는 웹 서비스
📕AWS S3 문서
🧐REST 와 SOAP에 대한 참고자료