AWS S3, EC2, RDS

Doum Kim·2020년 9월 15일
0
post-thumbnail

Deployment

내 로컬 컴퓨터가 아닌 다른 컴퓨터에서 내 코드를 돌리는 것이 배포.

즉 개발한 코드를 정상적으로 다른 사람들이 접속해 서비스를 받게 하는 작업을 배포라고 한다.

그렇다면 내 컴퓨터가 아닌 다른 컴퓨터에서 내 코드를 실행하려면 내 컴퓨터에 접근을 하여 서비스를 받아가도록 해야한다.

이런 방법이라면 보안 이슈가 발생할 수 있으며 서버를 구축하는 비용이 당연히 들 것이다.

따라서 자체 서버 즉 온프레미스 방식으로 운영을 하지 않으려면 어디선가 임대를 해와야한다.

이러한 경우 SaaS (Software as a Service)를 이용하면 된다.

나는 여기서 그 서비스 중에 하나인 AWS를 이용하여 배포를 진행하겠다.


우리가 사용할 AWS는 클라우드 서비스라고 하는데 그러면 클라우드 서비스란 무엇일까?

Cloud

인터넷을 통해 액세스 되는 서버와 해당 서버에서 실행되는 소프트웨어 및 데이터 베이스를 나타낸다.

클라우드 컴퓨팅은 무엇인가?

클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용하는 만큼 비용을 지불하는 것.

S3

Amazon simple Storage Service 인터넷용 스토리지 서비스이다.

개발자가 더 쉽게 웹 규모 컴퓨팅 작업을 수행할 수 있도록 설계되어 있다.

버킷, 액세스 포인트 객체 등의 핵심 개념이 있다.

버킷은 객체의 컨테이너이다. 하나 이상의 버킷을 가질 수 있다.

S3는 데이터를 버킷 내에 객체로 저장하며 객체는 파일 및 파일을 설명하는 선택적 메타 데이터이다.

S3에 파일을 저장하려면 버킷에 업로드해야 하고 파일을 객체로 업로드할 때 객체 및 모든 메타 데이터에 대한 권한을 설정할 수 있다.

엑세스를 제어하여 버킷에 있는 객체를 생성, 삭제, 나열 할 수 있는 사람을 정할 수 있다.

키는 버킷 내 객체의 고유한 식별자로 버킷 내 모든 객체는 정확히 하나의 키를 갖는다.

폴더 안에 폴더라는 개념이 아니라 하나의 키.

버킷에 우리가 빌드한 파일을 업로드하면 사용자들은 버킷 주소로 접속하여 어플리케이션을 다운 받아서 서버와 통신한다.

EC2

Elastic Compute Cloud

우리가 이전에 서버를 개발할 때는 포트 번호를 마음대로 설정을 해 개발을 하였다.

하지만 이런 방식으로 배포를 한다면 우리가 배포를 한다면 외부에서 내 컴퓨터에 접속을 할 수 있기 때문에 서버 전용으로 돌아가는 컴퓨터가 하나 별개로 있어야한다.

이러한 독립된 컴퓨터를 임대해주는 서비스가 바로 AWS EC2이다.

우리가 만약에 Node 환경의 서버를 구축했다면 EC2에서 임대해주는 컴퓨터에도 똑같이 node를 설치하여 서버를 구동할 수 있다.

이때 SSH 프로토콜을 이용해 인스턴스의 머신과 통신을 하여 명령을 내릴 수 있다.

AWS에서는 인터넷을 통해서 이 컴퓨터에 접속 할 수 있는 URL을 제공해준다.

이 주소를 이용해 웹서비스를 하거나, 자신이 구입한 도메인을 붙여 서비스를 제공할 수도 있다.

또한 사용자는 EC2에 있는 node 서버에 접속해서 api를 받아 갈 수 있다.

주요 특징

  • 컴퓨팅 요구사항의 변화에 따라 컴퓨팅 파워를 조정할 수 있다.
  • 새로운 서버 인스턴스 확보 및 부팅시간을 단축시킬 수 있다.
  • 실제로 사용한 용량만큼 비용 지불이 가능하다.
  • 운영체제 선택이 가능하다.

RDS

Relational Database Service

EC2 서비스에서도 데이터베이스를 구축할 수 있다. 하지만 AWS RDS 서비스에서 관계형 데이터 베이스에 특화된 서비스를 제공해준다.

RDS는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 서비스이다.
어렵고 지루한 관계형 데이터베이스 관리 작업 대다수를 대신 해준다.

Amazon RDS를 사용하면 CPU, 메모리, 스토리지 및 IOPS 이 모두가 따로 분할되므로 독립적으로 확장할 수 있습니다. 

백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리한다.

필요할 때 자동화된 백업을 수행하거나 고유한 백업 스냅샷을 수동으로 만들 수 있다. (DB 복원이 가능하다.)

RDS 데이터베이스에 액세스할 수 있는 사용자를 제어할 수 있다.

RDS - Free-tier를 사용할 때, 추가 과금을 막기 위해 설정해야 하는 것!

  • Multi-AZ(Multi-Availability Zone, 멀티 가용성 존) deployment -> NO

  • Storage type(스토리지 타입) -> General Purpose(SSD)

  • Backup retention period(백업 보존 기간) -> 0days

  • 필요 없는 리소스는 잊지말고 바로바로 삭제

0개의 댓글