ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS를 이용한 Deploy
    thoughts 2019. 8. 24. 23:03

    Deploy

    • 배포란? '남들이 접속할 수 있는 컴퓨터에 내 코드를 돌리는 것''이다.

    AWS

    RDS(Relational databases services)

    • EC2 인스턴스를 기반으로 운영한다.

    • 로컬에 데이터베이스를 수립할 경우, 데이터베이스의 규모가 커졌을 때 안정적으로 운영하기 어렵다. 이런 고충을 해결해주는 서비스가 바로 RDS. 설치, 운영, 백업, 복제 등을 AWS에서 위임해서 관리한다.

    • 덕분에 사용자는 데이터베이스 스키마 설계와 같은 핵심적인 작업에만 집중할 수 있다.

    • mySQL, Oracle, MariaDB, Aurora 등과 같은 다양한 관계형 데이터베이스를 사용할 수 있다.

    • 특징

      • 다중 AZ 복제: 하나의 region 안에 여러개의 AZ(Availability zone, 가용 영역)가 있다. 내가 생성한 데이터베이스의 인스턴스가 다른 AZ에 백업이 된다. 덕분에 서버에 장애가 생기면 해결이 가능하다.

      • 읽기 복제(read replica): 마스터 서버는 쓰기에 집중, 슬레이브 서버는 읽기에 집중.

      • 백업 자동화: 문제 발생시 복원에 용이.

      • DB 스냅샷: 새로운 디비를 만들 떄 사용 가능.

    EC2(Elastic compute cloud)

    • 독립된 컴퓨터 한 대를 임대해주는 것과 같다. 이 컴퓨터를 '인스턴스'라고 부른다.

    • 선호하는 운영체제를 설치하고, 웹서비스를 위한 프로그램을 설치할 수 있다.

    • 이미지: 인스턴스를 세팅한 상태 그대로 저장해 둘 수 있다. 기존 이미지를 이용해서 새로운 인스턴스를 만들면, 이미지에 저장된 상태와 똑같은 또 다른 인스턴스를 생성할 수 있다.

    • 인스턴스는 물리적으로 존재하는 컴퓨터는 아니고(따라서 당연히 GUI가 아니라 CLI 기반으로 작동이 되며), 아마존에서 세계 각 지역에 만들어놓은 인프라에 생성되는 것이기 때문에 네트워크를 통해 제어해야 한다.

    • EC2 또한 서버 운영의 지속성을 담보한다. 단적인 예로, 만약 집에 있는 랩탑으로 서버를 돌린다면(😂), 랩탑을 덮었을 때 서버도 꺼진다. 하지만 내 로컬 컴퓨터가 꺼져도 AWS의 인스턴스는 계속 돌아간다.

    S3(Simple Storage Service)

    • 인터넷상 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지. 한 마디로 '데이터 저장하고 관리해 주는 서비스'.

    • 활용 방안이 아주 무궁무진하다는 점! 개발자 입장에서는 클라이언트 빌드용, 정적 파일 호스팅 용도로 활용할 수 있다.

    • 일반적인 파일서버는 트래픽이 증가하면 장비를 증설해야 하는데, S3는 이를 대행한다.

    • 버켓에 데이터 저장, 데이터 다운 기능, 업/다운로드 접근 권한 부여 가능.

      • 버킷: S3에 저장된 객체에 대한 컨테이너.

      • 객체: S3에 저장된 각각의 데이터를 객체라고 부른다. 그냥 하나의 파일이라고 이해하면 된다.

      • S3에 저장된 객체들의 변화를 저장하는 버전관리 기능이 있다.

      • 멀티파트 업로딩.


     

    deploy하는 방법에 대해 배웠다.

    앞으로 개인 프로젝트를 진행하면서 배포까지 해 보는 게 개발자로서 나의 작은 소망인지라 흥미롭게 수업을 들었다. 개발자가 짠 코드는 궁극적으로 로컬이 아닌 어떤 인스턴스 위에서 돌아간다는 개념을 새삼 이해할 수 있었다. 여담이지만 aws는 프리 티어로 가입을 해서 실습을 했는데, 혹시 옵션을 잘못 선택하여 과금이 될까봐 은근히 긴장했다. 과제를 전부 마친 후에는 빛의 속도로 EC2, RDS, S3를 종료시켰다(ㅋㅋㅋ).

    deploy를 마지막으로 지난 5주간 진행되었던 스프린트가 끝이 났다. 프론트앤드, 백앤드 그리고 배포까지, 빠르게나마 전체적인 개발 과정을 끝까지 훑은 것 같아 감회가 남다르다. 주말 동안 지금까지 습득한 걸 되새기는 시간을 가져야지.

    'thoughts' 카테고리의 다른 글

    코딩 부트캠프, 온라인 수강의 장단점  (0) 2019.09.02
    2주 프로젝트 시작!  (0) 2019.08.31
    쿠키, 세션, 토큰  (0) 2019.08.22
    SQL, MySQL 이용하기  (0) 2019.08.19
    Article Collector 만들기  (0) 2019.08.17

    댓글

Designed by Tistory.