AWS을 이용해 배포 연습

김광훈·2021년 10월 17일
3

인프라 구축 연습

주말동안 AWS강의를 들으면서 이해 못했던 부분도 다시 이해할겸 강의를 처음부터 다시 들으면서 정리를 해보았다.

Frontend

  • S3에 저장소에 프론트 부분을 저장한 후 정적 호스팅 기능을 이용해서 프론트엔드 부분을 배포

  • cloudfront의 CDN 서비스를 이용해 전세계 리전으로 캐싱을 배포

  • gitaction을 이용해 front repo의 main 브랜치에 푸시할 때 자동으로 S3에 업로드되어 자동 배포되도록 함

    🔍S3

  • 웹에 업로드 되는 이미지나 파일을 저장함

  • 저장되어 있는 이미지나 파일은 AWS에 제공하는 객체 URL을 통해 파일을 볼 수 있다.

  • 정적 호스팅 기능으로 AWS에서 제공하는 URL을 통해 정적호스팅이 가능하다.

  • AWS CLI(SDK)를 이용해서 프로그래밍 언어(python)으로 파일 업로드가 가능 이때, IAM 권한이 필요하다

  • PYTHON의 boto3 라이브러리를 쓰면 S3에 저장할 수 있음

    🔍cloudfront

  • CDN 서비스를 이용해 전세계 리전으로 캐싱해줘서 빠르게 S3로 제공된 정적 페이지에 접근할 수 있다.

  • S3에 직접 접근할 때와 달리 과금이 되지 않는다.

    🔍gitaction

  • Gitaction에서 제안하는 폴더 구조를 만들면 푸쉬할 때 마다 자동으로 배포

  • S3에 정적호스팅 페이지를 할때, IAM, S3, Cloudfront의 정보를 환경변수로 설정

  • 환경변수는 REPO의 setting -> secret에서 설정

    Backend

  • EC2 인스턴스에 서버를 세팅 후 AMI 이미지를 생성

  • 여러 인스턴스를 하나의 서버로 묶어주는 ELB를 생성

  • 트레픽이 높아 졌을 때 인스턴스를 증설 시켜주는 역할을 하는 Auto-Scale 그룹을 생성

    VPC : AWS에서 제공하는 물리적인 네트워크 안에서 논리적인 네트워크를 의미
    Subnet : 연결되는 서버컴퓨팅 자원들에 내부 IP 할당
    라우팅 테이블 : 연결된 서브넷들을 연결
    보안그룹 : 방화벽 port를 제어
    탄력적 IP : 고정된 IP를 할당

🔍EC2

  • 인스턴스는 서버가 저장되는 컴퓨터를 의미
  • 인스턴스를 증설시키기 위해 AMI에 해당 인스턴스의 이미지를 생성시켜야 한다.

🔍ELB

  • 여러 인스턴스를 하나의 서버로 묶어주는 역할을 함
  • 수동으로 인스턴스를 추가했을 경우 TARGET GROUP에 포함해주어야 한다.

🔍auto-scale

  • 인스턴스에 트레픽이 증가했을 때 EC2를 증설시켜주는 역할을 함.
  • 자동으로 인스턴스를 추가했을 경우 인스턴스에서 접속하여 파일을 직접 실행시켜줘야한다.

🔍EB

  • EC2, ELB, Auto-scale 모두 포함된 환경을 제공한다.
  • EB 생성시 앞의 과정을 모두 생략할 수 있다.
  • 자동 또는 수동으로 인스턴스를 늘려줄 필요가 없이 자동으로 세팅이 된다.

참조 : https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/as-register-lbs-with-asg.html

profile
잘 부탁드려요

1개의 댓글

comment-user-thumbnail
2021년 10월 18일

퍼가요~^^

답글 달기