Intro
우연히 뜻이 맞는 프론트 유저분을 만나서 둘이서 간단한 프로젝트를 진행하고자 하였다. 비록 처음이지만 단순 프로그램 개발뿐만 아닌 배포까지 해보는 것을 목표로 하기로 하였다.
자료를 조사해보니 AWS라는 클라우드 컴퓨팅 시스템을 이용하여 주로 배포를 한다고 하였다. 따라서 이번에는 AWS의 개념과 AWS에 있는 EC2, S3 등이 무엇인지 알아보려고 한다.
AWS
AWS란 Amazon Web Service의 약자로, 아마존닷컴의 클라우드 컴퓨팅 시스템을 의미한다.
클라우드 컴퓨팅 시스템이란, 클라우드를 통해서 서버, 스토리지, DB 등 유저에게 필요한 IT 자원을 제공하는 것이다. 즉, 내 컴퓨터가 아닌 아마존에서 제공하는 환경을 돈을 지불하고 사용할 수 있는 것이다.
별도의 장비를 구입하고 OS등 소프트웨어를 구매하지 않아도, 사용하는 시간만큼 아마존에 대금을 지불하면 그 시스템을 사용할 수 있다는 엄청난 메리트가 있다!
그렇다면 보안적인 측면에서 우려를 할 수 있지만 아마존이라는 대기업답게 이에 대한 대비도 되어 있다고 한다. 공식 사이트에 따르면
이와 같이 뛰어난 보안을 자랑한다고 한다. 물론 자세히 어떤건지는 알 수는 없었지만 많은 사용자를 가지고 있는 것에는 이유가 있지 않을까 라고 생각한다.
클라우딩 컴퓨팅 시스템에는 SaaS, IaaS, Paas 등이 있다고 하는데 이는 나중에 따로 알아볼 예정이다. 우리가 알아보고자 하는 AWS는 IaaS라고 불리우는 Infrastructure as a Service라고 한다.
AWS EC2
Amazon Elastic Computer Cloud(Amazon EC2)는 AWS클라우드에서 확장 가능한 컴퓨팅 용량을 제공하는 서비스이다. 즉, 하드웨어에 대한 비용을 최대한 줄여서 간편하고 저렴하고 빠르게 애플리케이션을 개발 및 배포를 가능하게 해준다. 쉽게 설명해서, 컴퓨터를 Amazon한테서 한 대 빌린다고 생각하면 될 것 같다.
컴퓨터 스펙을 축소하거나 확장하는 것 또한 가능하며, 그 스펙만큼의 대가를 지불하기 때문에 효율적이라고 볼 수 있다.
인스턴스(Instance)라는 용어를 많이 사용하는데, 이는 내가 빌린 컴퓨터 1대(가상 서버)를 다르게 부르는 표현이다.
AWS S3
S3는 Simple Storage Service를 줄인 SSS를 S3라고 표현한다. EC2는 컴퓨터를 한 대 빌리는 것이라고 하였는데, S3는 파일 서버의 역할을 하게 된다.
단독 스토리지로도 사용할 수 있으며, EC2와 같은 다른 AWS 서비스와도 함께 사용할 수 있다. 또한, S3의 버킷은 무한대의 객체를 저장할 수 있기 때문에 확장 및 축소에 관해서는 크게 신경쓰지 않아도 된다. 그렇다면 데이터를 어떻게 저장 및 가져올까?
HTTPS 프로토콜을 사용하여 SSL로 암호화된 엔드포인트를 통해 업로드 및 다운로드를 할 수 있다. 또한 EC2에서 스펙 및 사용시간에 비례한 요금을 지불하는데, S3또한 사용한 스토리지 만큼 요금이 청구되게 된다.
AWS S3에는 알아야 할 기본 개념이 있는데 바로 객체(Object)와 버킷(Bucket)이다.
- 객체(Object)
- S3에 데이터가 저장되는 기본 단위로써 파일과 메타데이터로 이루어져 있다.
- 버킷(Bucket)
- S3에서 생성하는 최상위 디렉토리의 개념으로, 이름은 S3 리전중에서 유일해야한다.
- 계정별로 100개까지 생성 가능
- 버킷에 저장할 수 있는 객체 수와 용량은 무한대이다.
Outro
이 포스팅의 경우, 정말 aws가 뭔지 모르고 EC2, S3등 처음 들어보는 개념들을 간단히 정리하기 위해서 작성해봤다.
실제로는 개념적인 부분도 중요하지만 어떻게 사용하는지도 매우 중요할 것 같다.
그 부분은 따로 포스팅을 하면서 차근차근 사용법을 알아가려고 한다.
Reference
https://brunch.co.kr/@e9c7009de84443b/102
https://usefultoknow.tistory.com/entry/Amazon-S3%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
'Back-End' 카테고리의 다른 글
[Back-End] 스프링 프로젝트에 Jwt토큰 적용해보기!(1) - 설정 적용 (0) | 2024.01.25 |
---|---|
[Back-End] 인증/인가와 쿠키/세션/토큰(JWT) (2) | 2024.01.12 |
[Java] Long? long? Wrapper Class에 대하여 (4) | 2023.11.09 |
[Spring] 스프링 DB 접근 기술 (0) | 2023.11.08 |
[Backend] 디자인패턴 - MVC패턴 (2) | 2023.10.09 |
댓글