반응형
📌 개요
하나의 웹 어플리케이션을 완성시키기 위해서 각각의 구성요소들이 어떤 역할을 하는지 정확히 알아야 한다고 생각한다.
'EC2에 내 스프링부트 프로젝트를 올리기만 하면, 웹 서버 만든거 아님?' 이라고 생각했던 과거의 나 자신을 반성하며
간단히 Amazon EC2, WAS, Docker에 대해 알아보고자 한다.
1️⃣ EC2
EC2(Amazon Elastic Compute Cloud)는 단순히 AWS로부터 컴퓨터 한대를 빌려서 쓰는 개념이다.
조립식 컴퓨터를 첫 구매했을때를 떠올려보라. 열심히 조립하고 부팅하면 정말 아무것도 없는 것을 볼 수있다.
EC2도 마찬가지로 운영체제(Ubuntu, Amazon linux) 등을 설치 후에
WAS와 DB를 올리고 나서야 애플리케이션을 실행할 수 있는 환경이 조성된다.
EC2는 가상머신(VM)일 뿐, 애플리케이션을 실행하기 위해선 환경을 직접 조성해야한다.
Elastic: 탄력적인(사용한 만큼 비용을 지불하는)
Compute Cloud: 클라우드 컴퓨터(가상 컴퓨터)
2️⃣ WAS
WAS는 클라이언트로부터 요청을 받아 비즈니스 로직을 처리하고 동적 컨텐츠를 제공하는 서버이다.
대표적인 WAS
- Spring Boot → Tomcat (내장)
- NestJS → Express.js/Fastify (내장)
- Node.js → 직접실행
WAS는 애플리케이션을 실행하는 서버이며, Spring Boot는 Tomcat을, NestJS는 Express/Fastify를 내장하고 있다.
3️⃣ Docker
Docker는 애플리케이션을 컨테이너화해서 실행하는 기술.
가상 머신(VM)과 다르게 운영체제 전체를 포함하지 않고 필요한 애플리케이션과 라이브러리만 패키징해서 실행한다.
Docker는 EC2 안에서 애플리케이션을 실행하는 방법 중 하나이며, 환경 구성을 쉽게 해준다.
반응형