티끌모아 태산

백엔드 CI/CD에 필요한 AWS 지식 본문

백엔드/DevOps

백엔드 CI/CD에 필요한 AWS 지식

goldpig 2024. 6. 2. 23:05
728x90

✅배포란(Deployment)?

배포란 내가 만든 서비스를 다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 것을 의미한다. 쉽게 말해 우리가 만든 웹 페이지나 서버를 다른 사람들이 사용하려면 인터넷 상에 배포가 돼있어야한다. 

보통 자신의 컴퓨터에서 개발을 할 때는 'localhost' 라는 주소로 테스트도하고 개발을 한다. 하지만 이 localhost는 다른 컴퓨터에서 접근이 불가능한 주소다. 그렇기 때문에 배포를 하게되면 고유의 IP주소나 도메인 주소를 부여받게되고, 다른 컴퓨터에서 그 주소로 접속할 수 있게 된다

따라서 어떤 서비스를 완성했으면, 그것을 다른 사용자들이 사용할 수 있도록 배포를 해줘야한다. 

✅EC2(Elastic Compute Cloud)란 무엇인가? 

EC2란 쉽게 말해 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스다. 쉽게 말해 하나의 컴퓨터를 의미한다. 그렇다면 EC2를 왜 배울까? 배포를 하기 위해서는 컴퓨터가 필요한데, 내 컴퓨터를 활용할 수 있다. 하지만 내 컴퓨터로 서버를 배포하게 되면 24시간 동안 컴퓨터를 켜놔야한다. 또한 인터넷을 통해 내 컴퓨터에 접근할 수 있게 만들다보니 보안상의 위험이 있다. 

이러한 문제점을 해결하기 위해서 내 컴퓨터를 사용하지 않고, AWS EC2라는 컴퓨터를 빌려서 해결할 수 있다. 이 외에도 AWS EC2는 여러가지 부가 기능(로깅, 오토스케일링, 로드밸런싱 등)을 많을 갖고 있다. 실제 현업에서도 서버를 배포할 때 AWS EC2를 많이 활용한다. 

  • 백엔드 서버를 배포해야 할 때면 EC2에 서버를 배포해서 사용한다. 
  • 프론트엔드 웹 페이지를 배포할 때는 AWS EC2를 활용할 수 있지만 vercel, netlify 또는 AWS S3를 사용해서 주로 배포한다. 

IP와 Port의 개념

IP란 host에 대한 식별자로, 네트워크 상에서 특정 컴퓨터를 가리키는 주소다. Port란 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소를 의미한다. 예를 들어, 외부에서 특정 컴퓨터 내부에 있는 Spring Boot라는 서버에 통신을 하고 싶다고 가정하자. 하지만 외부에서 IP주소만 알아서는 실행되고 있는 여러 프로그램 중 어떤 프로그램과 통신을 해야 할 지 알 수가 없다. 그래서 특정 서버와 통신을 할 때는 IP 주소와 서버가 실행되고 있는 포트 번호까지 알고 있어야 한다. 

  • 22번 (SSH, Secure Shell Protocol): 원격 접속을 위한 포트 번호. EC2 인스턴스에 연결할 때, 22번 포트를 사용한다.
  • 80번 (HTTP): HTTP로 통신을 할 때 사용한다.
  • 442 (HTTPS): HTTPS로 통신을 할 때 사용한다.

위 포트 번호는 일반적으로 정해져 있는 규약이지 반드시 지켜야하는 것은 아니다. 예를 들어, 특정 서버와 HTTP 통신을 할 때 80번 포트를 쓰지 않고 3000번 포트나 8080번 포트를 써도 상관 없다. 

728x90

'백엔드 > DevOps' 카테고리의 다른 글

CI/CD를 왜 배우는 걸까?  (0) 2024.06.02