프로젝트 운영 환경 설정 중 aws의 s3를 다뤄볼 일이 생겼다. 학생 때 잠깐 공부하면서 다뤄보았던 것 외로, 실무에서 접해본 것은 처음이었다. 물론 현재 나는 프론트 엔드 업무를 주로 하고 있긴 하지만 CI/CD 관련한 내용을 습득하고 있는 것이 추후 내게 도움이 될테니 정리해보자. 👍
AWS는 Amazon Web Service, 즉 아마존에서 제공하는 클라우드 서비스로 다양한 서비스를 제공한다. AWS는 쉽고 빠른 확정성을 제공하고 저렴한 비용으로 사용한 용량 만큼만 비용을 지불하며 빠른 속도 등 여러가지 장점을 지니고 있다.
S3(Simple Storage Service)는 데이터를 저장하거나 추출하게 해 주는 온라인 스토리지 웹 서비스이다. 즉 파일 서버의 역할을 하는 서비스이다. 하나의 저장 공간을 구성하고 그 공간에 데이터를 자유롭게 업로드, 다운로드 할 수 있다. HTTP 프로토콜로 파일에 접근할 수 있다. 일반적인 시스템과는 다르게 파일(또는 데이터) 이름인 key 와 파일 자체인 value 로 구분되는 객체 형태로 파일을 저장한다.
S3는 보통 바이너리 파일 혹은 다른 중요한 데이터를 저장하기위해서 사용합니다. S3는 거대한 하드디스크
와 비교할 수 있다. 많은 양의 데이터를 매우 적은 I/O (수십억의 데이터 오브젝트를 핸들링하려고 설계된)오버헤드로 저장하고 접근할 수 있다.
객체(Object) : S3에 데이터가 저장되는 최소 단위. 1) 파일 2) 메타데이터로 구성된다.
EC2(Elastic Compute Cloud)는 아마존 웹 서비스에서 제공하는 서비스로 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스이다. 개발자가 더 쉽게 웹 규모의 클라우드 컴퓨팅 작업을 할 수 있도록 설계되었다.
기본적으로 EC2는 윈도우나 리눅스 혹은 다른 OS에서 실행되는 거대한 컴퓨터
와 같다. 그리고 어떤 소프트웨어나 어플리케이션을 인스톨할 수 있다. 예를 들어 PHP, Python, 데이터베이스, 다른 유틸리티 등이 있다. 간단히 말해 EC2는 어플리케이션 호스팅 플랫폼이고 사용자의 요청으로 시스템을 설치할 수 있고 어플리케이션을 실행시킬 수 있다.
클라우드란?
컴퓨터 통신망이 구름과 같은 것에 싸여 안이 보이지 않고, 일반 사용자는 이 복잡한 내부를 굳이 알 필요도 없이 어디에서나 구름 속으로 손을 집어넣어(통신망에 접근해서) 자기가 원하는 작업을 할 수 있다는 것이다. 이른바 동일한 체험을, 인터넷이 연결된 어디에서나 보장해주는 것이다.
클라우드 컴퓨팅은 클라우드 속에서 클라우드에 연결된 다른 컴퓨터로 정보를 처리하는 기술을 의미한다. EC2는 가상의 컴퓨터를 빌려주는 서비스라고 생각하면 이해하기가 쉽다. 비록 가상이지만 실제 컴퓨터와 동일하게 사용할 수 있다. 가상 컴퓨터에 운영체제를 설치하고 프로그램들을 설치하여 서버를 구축할 수 있다. EC2에서 말하는 인스턴스라는 것은 생성된 1대의 가상 컴퓨터를 의미한다.
RDS 에 대해 알아보기 전에 먼저 RDB 에 대해서 알아본다. RDB(Relational Database)란 관계형 데이터 모델에 기초를 둔 데이터베이스이다. 즉 데이터 항목 간에 사전 정의된 관계가 있을 때 그러한 데이터 항목들의 모음을 가리킨다.
S3 는 거대한 하드디스크, EC2는 거대한 컴퓨터! 기억하자.
https://austinpark420.github.io/posts/ec2ands3
https://medium.com/@heizence6626/aws-%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-s3-ec2-rdb%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-1eb60cbd951d