클라우드 서비스 플랫폼이다.
서버를 구축하는데 필요한 여러 장치들을 클라우드 환경에서 제공해주는 서비스
서버를 구동하기 위해서는
두 가지의 방법이 존재하는데
전자를 온 프레미스(on-premise), 후자를 클라우드 방식이라고 한다.
이러한 장점들이 있으므로 기업에서도 많이 사용한다.
<출처> - AWS 의 기본 서비스 S3, EC2, RDS에 대하여
데이터를 저장하거나 꺼내오는 서버임
S3 는 버킷이라는게 있다.
버킷에는 key와 value의 형태로 데이터가 저장되는데 하나의 value(object)는 하나의 key를 갖는다.
이 value는 실제 데이터가 저장되는 파일 부분과 객체의 메타데이터(생성일, 크기, 유형)로 구성된다.
key - obj{ file + metaData }
데이터에 대한 접근은
http://{버킷명}.S3.amazonaws.com/{객체키}
ex) photo 라는 버킷이 있고 그 안에 animal/dog.jpg 라는 key를 가진 사진 파일이 있을 수 있다.
-> http://photo.S3.amazonaws.com/animal/dog.jpg
로 데이터에 대한 접근이 가능하다.
사진, 동영상
S3에는 저장할 수 있는 파일 수 및 용량의 제한이 없다 (물론 쓴 만큼 비용을 냄)
다만 각 객체의 크기는 최소 0Byte에서 5TB까지 이다.
하나의 PUT 요청으로 업로드 가능한 객체의 크기는 5GB 이다.
모든 PUT, DELETE (삽입, 삭제) 요청에 대해 read-after-write(쓰기 후 읽기) 정책을 기본으로 한다.
그래서 GET, LIST (읽기) 요청은 모든 데이터가 수정이 완료 된 후 이루어 지게 되므로 일관성이 보장된다.
Lock 기능을 제공하지 않아 여러 쓰레드에서 동시에 같은 객체에 접근할 경우 문제가 생길 수 있다.
( + 객체에 대해 Transaction 처리를 지원하지 않는다. -> 개별 객체에 대한 원자성만 보장한다. )
인터넷 환경에서 저 멀리있는 컴퓨터를 빌려서 원격으로 서버를 운용 해주는 서비스임.
가상의 컴퓨터에 운영체제를 설치하고, 프로그램을 설치해서 서버를 구축할 수 있다.
여기서는 하나의 컴퓨터를 인스턴스 라고 표기한다.
ec2를 사용하는 이유?
저렴하다.
사용자가 인스턴스를 완전히 제어할 수 있다.
보안을 aws 에서 관리해준다.
내가 사용하고자 하는 서버의 용량을 탄력적으로 늘리거나 줄일 수 있다.
RDB (Relational Database) 를 간편하게 운영, 설정, 확장할 수 있게 해주는 서비스이다.
EC2 내부에 MySQL을 설치해서 EC2 내부에서 사용할 수도 있지만,
보통 DB를 위한 별도 RDS를 만들어서 작업한다고 한다. DB 서버를 따로 분리하는 개념.
RDS는 여러가지 RDBMS를 지원하기 때문에 주로 사용하는 DBMS를 사용하면 된다.
(ex : MySQL, oracle, MariaDB, Postgre)
비용이 발생하는 서비스인 만큼 굳이 사용을 안해도 상관은 없으나
사용을 하면 DB서버를 따로 분리하여 데이터 손실이나, 유지에 대한 부담을 덜 수 있다.
결국 서비스의 유지보수 및 속도 측면에서 어떤것이 좋을지 생각해 볼 수 있다.
반갑습니다 소통해요