2024년 2월 24일 토요일
📙 강의 내용 요약
- Server
- 서버는 해당 사용 목적에 따라서 여러 대를 사용해야 한다.
- 또한, 24시간 365일 켜져 있어야 서비스 이용에 문제가 생기지 않는다.
- 서버 컴퓨터를 설치해야 하는 공간이 필요하다.
- 컴퓨터 냉각을 위한 에어컨, 백업 서버 등을 계속해서 구축해야 한다. → 상당한 비용 발생
-
cloud server
- 서버 컴퓨터에 필요한 인프라 요소를 대신해서 제공해준다.
- 서버용 프로그램만 작성해 올리면 된다.
- 사용한 부분만 비용을 지불한다.
- 종류 : Google Cloud, AWS, Microsoft Azure
-
AWS
- EC2 : 서버 컴퓨터로 생각하면 된다.
- 운영체제 선택, 하드디스크 크기, 컴퓨터 장치들을 선택
- RDS : DB가 깔려있는 컴퓨터를 제공해주는 것이라 생각하면 된다.
- 용량과 DB 종류를 선택, 백업, 복구도 제공
- Amazon S3 : 하드디스크 또는 SSD와 같은 저장소 기능을 제공
- EB : 서버 관리, 배포 서비스
-
EB를 사용해야 하는 이유?
- AWS-EC2 Deploy
- EC2 환경을 구성한 서버에 접속해 Python 설치, 가상 환경 만들기 등 필요한 모든 요소를 스스로 세팅해야 한다.
- 또한 구성요소들을 모두 다 연결을 해줘야 하는 작업까지 해야하는 불편함이 있다.
- EB
- 개발자가 필요한 요소들을 미리 script 안에만 작성을 해서 올린다.
- 그러면 EB가 그 구성요소들을 읽어가며 EC2 서버에 설치를 진행하고, 구성을 해준다.
- 부하 분산 관리 시스템 제공 : 여러 개의 EC2를 동시에 열어 순간에 100, 1000명 등의 트래픽이 들어올 때에도 부하 분산을 한다.
- 설정 파일에 몇가지 코드만 설정 해주면 바로 서비스가 가능하다.
♻️ 느낀점&인사이트
오늘은 AWS 서비스에 대한 강의를 들었다.
사실, 개발 경험이 있다보니 서버 배포에 대한 기본적인 지식을 모두 알고 있는 상태였고 덕분에 가볍게 복습하는 형태로 강의를 들을 수 있었다.
MSA 형식으로 각자 개발을 해서 게이트웨이로 통신을 할 때에는 비교적 소스코드와 DB가 가벼웠기 때문에 EC2 1가지만 이용해서 그 안에 환경을 직접 구축해 배포한 경험이 있었다.
그리고 최근에는 GitHub Actions를 이용해 flow 스크립트를 작성해 배포한 경험이 있는데 먼저 스크립트 안에서 EC2 IP 정보를 통해 연결하고 RDS를 연결 RDS를 연결하고, API는 Docker 컨테이너를 통해 이미지를 업로드하고, 서버 안에서 pull 해서 사용하는 방식으로 배포를 진행한 경험이 있었다.
아마도 강의 후반에 이야기한 EB가 이러한 형태와 순서로 배포를 하는 것 같다는 생각이 들었다.
배포는 정말 셀 수 없을 정도로 많은 방식이 존재하기에 또 다시 새로운 배포 방식을 배우게 될 생각에 더 흥미를 느끼게 되기도 했다.
다만, 한가지 아쉬운 점은 AWS를 이용함에 따라 청구되는 비용에 대한 언급을 더 자세하게 해주는 것이 어땠을까 하는 생각이 든다.
AWS를 이용하며 과금으로 인해 문제가 되었던 경우가 꽤 많았었고, 특히 RDS와 EB의 경우 생성만 하더라도 과금이 바로 발생했던 경험도 다수 있었어서 그런지 이런 부분에 대한 언급이 거의 없다는 점이 유독 더 아쉽게 느껴졌다.
그래도 앞으로 강의를 들으며 잘 판단하고 난 뒤, 배포를 진행해봐야 할 것 같다🤯