Amazon Web Service : 배포 전략

YoungJoon Suh·2022년 4월 23일
0

Deploy Strategy
지금까지는 로컬 환경에서 클라이언트와 서버, 데이터베이스를 띄워서 작성한 코드를 구동하고 확인했었습니다.

개발한 서비스를 사용자들이 이용할 수 있도록 하는 것을 배포라고 합니다.

AWS에서 제공하는 서비스인 S3라는 서비스를 통해 사용자들에게 Client를 제공할 수 있습니다.

로컬 환경에서는 자체 개발 서버 (create-react-app)를 이용해서 클라이언트 앱을 실행시키는 것이 보통입니다. 그럼, 클라이언트를 위해서 EC2 인스턴스를 사용해야 할까요?
그렇지 않습니다. 클라이언트 앱을 정적 파일로 빌드하여 제공합니다.
따라서 S3를 이용해서 클라이언트를 배포합니다.

빌드란?

  • 불필요한 데이터를 없애고, 통합/압축하여 배포하기 최적화된 상태를 만드는 것
  • 데이터의 용량이 줄어들고 웹 사이트 로딩 속도가 빨라진다.

일반적인 의미의 빌드?
소스코드를 실행 가능한 번들로 변환하는 컴파일 과정
웹 앱에서와 같이 HTML, CSS, JS의 형태로 배포하는 경우는 조금 다릅니다.
웹 앱은 배포 가능한 정적 파일(static files)의 형태로 만들어 줘야 합니다.

asset 자체가 정적인 경우, 있는 그대로 배포하면 됩니다. React의 경우 npm run build와 같은 명령을 사용해서, 정적 파일 형태의 결과물을 만들어 낸 후 배포하면 됩니다. 사용하고 있는 환경에 따라 빌드 과정은 다를 수 있습니다.

Client Application을 배포하는 방법:
AWS에서 제공하는 CDN 서비스인 CloudFront를 통해서 각지의 데이터 센터에 데이터를 분산시켜서 저장해 뒀다가 가까운 지역에서 데이터를 주는 방식으로 사용자에게 더 빠르게 서비스를 제공할 수 있습니다.

Server Application을 배포하는 방법:
안정적으로 서비스를 제공하기 위해 가상의 PC(AWS EC2)를 빌려 서버 코드를 구동할 수 있습니다.
AWS EC2 서비스를 통해 손쉽게 서버를 구성하고 서비스를 제공할 수 있습니다.

AWS에서는 Database 특화 서비스인 RDS 서비스를 제공하고 있습니다.
AWS가 유지 보수 작업을 담당하는 RDS를 이용하여 즉시 데이터베이스를 사용할 수 있습니다.
RDS 서비스를 이용하여 EC2를 통해 배포된 Server Application의 데이터를 저장, 제공하는 데이터베이스를 배포할 수 있습니다.

처음 배포된 여러분의 서비스는 도메인 주소를 통해 접근할 수 있을까요?

하지만 여러분이 배포한 서비스는 현재 IP주소 혹은 AWS에서 제공한 서비스와는 전혀 연관이 없는 도메인으로 접속합니다.

S3, EC2를 이용해서 배포된 서비스는 IP주소 혹은 AWS에서 제공하는 여러분의 서비스와는 전혀 상관없는 긴 도메인 주소를 통해 접근하게 됩니다.

도메인을 통해 서비스에 접속하려면, AWS의 서비스 중 Route53을 이용합니다.

profile
저는 서영준 입니다.

0개의 댓글