1. 기술 스택 선정에 대한 고찰 -3편 웹 서버-

2023. 2. 18. 07:26프로젝트/8주차 실전 프로젝트

이전 포스팅

https://ksw0627.tistory.com/101

 

1. 기술 스택 선정에 대한 고찰 -1편-

1. TypeScript(이하 TS) 앞서 두 프로젝트(미니 프로젝트/클론 코딩)의 경우에는 Node.js로 작성되었다. JavaScript(이하 JS)를 이용하여 Node.js를 통해 서비스를 개발하면서 가장 많이 직면했던 문제점이 있

ksw0627.tistory.com

https://ksw0627.tistory.com/102

 

1. 기술 스택 선정에 대한 고찰 -2편 데이터베이스-

https://ksw0627.tistory.com/101 1. 기술 스택 선정에 대한 고찰 -1편- 1. TypeScript(이하 TS) 앞서 두 프로젝트(미니 프로젝트/클론 코딩)의 경우에는 Node.js로 작성되었다. JavaScript(이하 JS)를 이용하여 Node.js를

ksw0627.tistory.com

 

이번 내용은 AWS의 EC2, RDS에 대해서이다.

사실 AWS를 채택하게 된 것은 별 이유가 없었다. 블로그 포스팅이 많아서, 사용자가 많아서, 강의에서 이 셋팅을 알려주었기 때문에...였던 것 같다. 뭐 생각해보면 앞의 두 가지도 사용할 충분한 이유가 되기도 한다.(많이 사용하는 것은 이유가 있다.)

기존에는 "그냥 썼다."였다면 이번 기회에 "왜 이걸 많이 쓰는가?"에 대해서 좀 더 알아보기로 했다.

 

6. AWS EC2

다음은 Statista의 2022년 2분기 클라우드 서비스 제공자의 시장 점유율이다.

https://www.statista.com/chart/18819/worldwide-market-share-of-leading-cloud-infrastructure-service-providers/

그리고 다음은 Canalys에서 발표한 2022 Q4의 시장 점유율 자료이다.

https://www.canalys.com/newsroom/global-cloud-services-Q4-2022

AWS의 마켓 점유율이 높다.

 

이번 자료 조사는 chatGPT에게 물어보기로 했다. 당연히 각 제공자들은 우리 서비스가 좋다! 라고 말할 것이기 때문에 다른 제공자에 대한 정보도 알면서 중립적인 위치에서 알려줄 것이라 생각했기 때문이다.

 

그렇다면 AWS 말고 다른 제공자는 어떤 것이 있을까?

  1. Microsoft Azure Virtual Machines
  2. Google Compute Engine
  3. DigitalOcean
  4. IBM Cloud Virtual Servers
  5. 등등

1. Microsoft Azure Virtual Machines

-  Azure 클라우드 플랫폼에서 가상 머신을 만들고 관리할 수 있도록 Microsoft에서 제공하는 클라우드 컴퓨팅 서비스

2. Google Compute Engine

- Google에서 제공

3. DigitalOcean

- 개발자에게 클라우드에서 가상 머신을 가동할 수 있는 간단하고 저렴한 방법을 제공하는 클라우드 컴퓨팅 서비스

4. IBM Cloud Virtual Servers

- IBM에서 제공

 

뭔가 설명들이 다 비슷해서 그냥 제공하는 기업에 따라 차이만 있을 뿐이었다. 뭔가 와닿지 않았다.

그렇다면 AWS EC2만의 장점은 무엇인가?

오...그런갑다 싶었던 내용이긴 했다.

원문

처음에서 말했던 사람들이 많이 사용해서..라는 것도 있지만 개인적인 몇가지의 경험이 "역시 AWS를 추천하는 이유가 있구나" 하는 생각을 갖게 된 적이 있었다.

6년쯤 전이었던가. 코인 열풍이 일면서 관심을 가지게 된 적이 있었다. 자산을 불리고 하는 그런 관점이라기보단 영지식 증명? PoS? 마스터 노드? 이런 것을 하는 것에 흥미가 있었기 때문이다.

그 때 처음으로 EC2를 사용해봤던 것 같다. 마스터 노드를 구현해보기 위해 더듬더듬 구글링 해가면서 다른 사람이 설정한 것을 보고 따라해본 것이 첫 입문 이었다.

 

다른 경험은 AWS를 제공하는 아마존에 대한 기업 설명이었다.

한 때 취미가 유투브를 보는 것이었는데 그 중에서 관심있던 것은 세계사, 과학 지식, 그리고 경제 채널이었다. 그렇다보니 자연스럽게 아마존에 대한 지식을 알게될 기회가 있었고, 아마존이 전자 상거래(책) 서비스에서 어떻게 현재까지 왔는가. 10년에 걸친 클라우드 컴퓨팅 서비스를 만들기 위한 존버! 이런 기억이 있다. 아마존이 현재와 같은 점유율을 가질 수 있는 이유 중에 하나는 클라우드 컴퓨팅 시장의 선구자라서 인 것도 있을 것이다.

 

사담이 조금 길긴 했는데 아무튼 그렇다. 친숙하고, 다른 사람들도 많이 사용하고, 정보가 많다.

물론 위의 이유가 실제 기업들이 사용하는 중요한 이유일 것이다. 그러나 뭔가 나에게 와닿는 이야기는 아니었다.

 

다른 AWS 서비스와의 통합은 조금 와닿는 부분이었다.

RDS가 바로 그것이다. 이것은 다음 의사 결정에서 후술하겠다.

 

단점인지 모를 단점이 있었다.

유연하고 세세한 설정(보안, 요금 등등)이 가능한 것이 장점이지만 역으로 뉴비인 나에겐 아직도 어렵다.

EC2를 사용하면서 인스턴스를 생성하는 것이 옵션이 많아서 만들기 어려웠었던 것 같다. 아예 따로 AWS 설정하는 강의가 있는 것을 보니 전문적으로 파고들어야하는 영역으로 느껴졌다.(언젠간 나도 알아야 할지도..)

 

7. AWS RDS

AWS RDS를 사용하게 된 계기는 다음과 같다.

 

다른 선택지가 사실 와닿지 않았다.(현재 AWS EC2를 사용하고 있으므로)

AWS EC2를 사용하고 있기 때문에 RDS를 사용한 것도 물론 있지만, 굳이 다른 서비스 제공자의 RDBMS(관리형 데이터베이스 서비스)를 사용할 이유를 찾지 못했다.

다른 선택지로는

  1. Google Cloud SQL : MySQL과 PostgreSQL을 모두 지원하는 Google에서 제공하는 RDBMS
  2. Microsoft Azure DB for MySQL 및 PostgreSQL : 마소에서 지원
  3. IBM Cloud DB : IBM에서 제공
  4. DigitalOcean 관리형 DB: DigitalOcean에서 제공

이 있었다.

 

물론 RDS의 장점이 있다.

  1. 확장성 : DB 인스턴스 크기를 쉽게 늘리거나 읽기 전용 복제본 추가, 더 큰 DB 엔진 유형으로 마이그레이션
  2. 안정성 및 가용성 : 하드웨어 또는 소프트웨어 오류가 발생하더라도 DB가 계속 작동함
  3. 보안 : 유휴 및 전송 중 암호화, IAM(AWS Identity and Access Management) 통합을 위한 다양한 보안 기능 제공
  4. 비용 효율적 : 사용한 리소스에 대해서만 비용 지불
  5. AWS를 인프라로 사용할 경우 다른 서비스와 통합 및 관리가 편함.

과 같은 이유 였다. (사실 AWS 생태계 안에서 사용하는 것을 맞추기 위한 이유...)

 

8. Nginx

이 부분은 좀 더 공부 한 다음 기술하게 될 것 같다.