[AWS]서버리스

해피데빙·2023년 1월 22일
0

서버리스

목록 보기
1/1

서버리스란?

  • 서버를 고려할 필요 없이 애플리케이션을 구축하고 실행할 수 있게 해주는 AWS의 서비스
  • 클라우드 내에서 물리, 가상 서버를 제공하는 플랫폼 서비스와 달리 사용자가 도메인에 집중할 수 있도록 인프라의 관리, 운영 요소를 서비스에 포함하여 제공하는 기반이다

기존의 서버 개발 (예시)

1. 서버 개발

  1. node.js의 express를 사용하여 http api 서버를 개발한다
  2. react 등의 적당한 프런트엔드 프레임워크를 선택하여 프런트엔드 페이지를 개발한다
  3. 백엔드 서버에서 프런트엔드 페이지를 제공하는 코드를 개발한다

2. 배포

개발한 결과물을 고객이 접근할 수 있도록 이를 배포해야 한다

  1. 클라우드 업체로부터 적당한 가상 서버를 할당한다
  2. 프론트엔드 페이지와 백엔드 코드를 서버에 복제하고 가동한다

이제 고객은 해당 서버의 IP 주소를 통해 접근 가능
하지만 더 나은 서비스 운영르 위해 도메인을 부여할 필요가 있다

3. 도메인

  1. 도메인 제공 업체로부터 도메인 구입
  2. 네임 서버를 구축하거나 도메인 제공 업체에서 제공하는 서비스를 이용하여 구축한 가상 서버의 ip 주소를 연결한다

4. https로 서비스 제공

  1. LetsEncrypt같은 곳에서 ssl 인증서 발급
  2. 백엔드 서버가 인증서를 사용하여 https 서비스가 가능하도록 코드 수정
  3. 수정한 코드를 가상 서버에 복제하고 다시 기동한다
  4. 인증서는 만료 기간이 있으므로 만료 직전에 인증서를 다시 발급하고 가상 서버를 갱신하는 작업을 주기적으로 해야 한다

5. 오류 확인

1. 로그 확인
서비스 도중 오류가 발생할 경우 배포된 서버에 접근하여 로그 확인이 필요하다

  1. 가상 서버에 접속하여 백엔드 서버가 남긴 로그 파일을 확인한다
  2. 가상 서버의 디스크 공간에는 한계가 있으므로 오래된 로그 파일을 압축하여 보관하거나 삭제하는 로직을 추가한다

2. 모니터링
서비스가 정상 동작하고 있는지 확인 위해 모니터링

1.백엔드 서버의 응답 중 정상과 비정상 응답수를 세어 지표 서버에 보고한다
2. 지표 서버로부터 수치를 시각화하는 대시보드를 구축한다
3. 비정상 응답수가 일정 이상일 경우 경보를 보내는 기능을 추가한다

6. 서버 증설

갑자기 고객이 많아져서 서비스가 응답할 수 있는 수준 이상의 요청이 발생하게 될 경우 서버 증설을 한다.

  1. 필요한 만큼 가상 서버를 더 많이 할당한다
  2. 모든 가상 서버에 프런트엔드 페이지와 백엔드 코드를 복제하고 기동한다
  3. 가상 서버에 요청을 분배하는 로드 밸런서를 설정하고 여기에 도메인을 연결한다

서버리스 기반의 서비스 개발

서버 고려 없이 애플리케이션 구축하고 실행해준느 서비스

  • 백엔드 서버 코드를 실행하는 컴퓨팅 자원으로 람다 사용
    ex. 람다 : 업로드한 코드를 제한된 자원 내에서 HTTP 등의 이벤트에 의해 수항하고 그 결과를 반환하는 컴퓨팅 자원

  • 백엔드 서버 코드를 aws lambda로 실행할 때 그 HTTP 이벤트를 생성하는 Amazon API Gateway 사용. API Gateway에서 HTTP 요청을 받으면 AWS lambda를 실행하여 필요한 도메인 로직을 처리하고 그 결과를 HTTP 응답으로 반환한다.

http(요청) - 생성 Amazon API Gateway(이벤트 생성, 람다 실행) - aws lambda : 도메인 로직 처리(서버가 하던 역할) - http 응답으로 반환

s3: 프론트엔드 페이지를 사용자에게 제공하기 위해 클라우드 저장소인 아마존 S3를 사용

업로드한 파일을 http로 제공하는 정적 웹사이트 호스팅 기능을 제고
람다와 같은 컴퓨팅 자원은 아니므로 로직 실행은 불가능
정적인 파일을 반환하는 HTTP 서버를 사용할 수 있어 편리하다
S3에서 정적으로 제공하는 파일을 CDN을 사용하여 고객에게 좀 더 빠르게 제공하기 위해 Amazon CloudFront를 사용한다

로직 실행은 줄가능하지만 정적인 파일을 반환하는 HTTP 서버로 사용할 수 있어 편리하다

S3에서 정적으로 제공하는 파일을 CDN을 사용하여 고객에게 좀 더 빠르게 제공하기 위해 Amazon CloudFront를 사용한다.S3를 위한 데이터센터보다 더 많은 Eㅇㄷㅎㄷfmf rkwlrh

52강
일 월 화
17강
연결리스트

profile
노션 : https://garrulous-gander-3f2.notion.site/c488d337791c4c4cb6d93cb9fcc26f17

0개의 댓글