드디어 코드스테이츠의 마지막 스프린트 Deploy...이날이 오긴 오는구나 감개무량하다.
어쨌건 저쨌건 프로젝트 구축부터 배포까지의 일련의 과정을 모두 배웠다. 실제 프로젝트를 진행하며 우여곡절을 겪을것이 뻔하지만, 개발자라는 직업이 막연하게만 느껴졌던 언 5개월전을 생각하면 상상도 못할 발전을 이루긴 했다.
이번 스프린트는 두 가지 과정으로 진행되는데, 첫번째로 배포의 이론적인 내용에 대해 공부했고, 두번째로 스프린트로 진행했던 Short.ly Express SPA페이지를 배포했다.
AWS 란, 아마존의 클라우드 컴퓨팅 서비스로, IT 인프라 구축에 필요한 대부분의 서비스를 제공한다. AWS를 이용하는것으로 사용자는 서버 및 DB를 구축하는데 필요한 인적, 물적 자원을 최소화하고 서비스에 집중할수있다.
S3 는 클라우드 데이터 저장소로, 정보(파일)을 저장하는 서비스다.
EC2는 AWS에서 제공하는 임의 가상 서버다. 필요에 따라 규모 확대나 축소를 자유롭게 할 수 있기 때문에 물리적인 컴퓨터 서버에 비해 관리의 편의성, 확장성이 따른다.
EC2를 통해서 임대받은 가상 컴퓨터 서버를 인스턴스라고 부른다.
인스턴스가 아무래도 어디서 들어본 단어라 생각해보니 얼마 전 유투브 영상을 보고 아이패드에 가상 리눅스 서버를 임대받아 사용하고 있었느데, 그게 바로 인스턴스였다. GCP를 통해 VM 웨어라는 이름으로 서버를 발급받았는데, AWS에서는 이를 EC2라고 부르는것같다.

임의로 임대받은 이 가상 서버는 일반적인 컴퓨터처럼 사용이 가능하다, 이 프로젝트의 경우, 리눅스 서버에 해당 server를 git clone받아, 필요한 npm 모듈을 설치하고, 서버를 구동시키는 방법으로 진행했다.
S3와 마찬가지로, 편의 확장성 등에 한계가 있을 수 밖에 없는 물리적 서버의 단점을 보완할 수 있다. 다만 보안이 필요한, 은행과 같은 업종에서는 여전히 물리적 서버를 두는것을 선호한다.
EC2도 공간을 가진 서버이기 때문에 DB를 구축할 수 있으나, 서버의 한계를 보완하기 위해 DB 특화된 서비스를 제공한다. 그 중 RDS는 SQL에 특화된 DB 클라우드 서비스다. RDS는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있도록 돕는다.
RDS를 사용하면 CPU나 메모리 등이 서버와 분리되기 때문에, 더 높은 확장성을 추구할 수 있다. 뿐만 아니라 RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리하며, 필요시 특정 시점의 스냅샷, 자동 백업을 통해 DB 복원을 가능하게 한다.