9/12 TIL EC2로 서비스 배포하기

이승준·2023년 9월 14일
0
post-thumbnail

EC2와 Elastic Beanstalk

배포를 해본 경험이 있었는데.. Elastic Beanstalk과 EC2가 헷갈렸다.. 뭘로 했지? 처음에는 Elastic Beanstalk으로 하려고했다.

🤔스파르타에서 배운 Elastic Beanstalk로 배포하는 법

  1. AWS 보안자격에 들어가 access key와 보안 access key 를 발급 받는다
  2. 순서
  • mkdir deploy : deploy라는 폴더를 하나 만듭니다!
  • cp [app.py](http://app.py) deploy/application.py : app.py라는 파일을 deploy 폴더에 application.py라는 이름으로 바꿔서 복제합니다!
  • cp -r templates deploy/templates : templates라는 폴더를 deploy 폴더 안에 통째로 복제합니다!
  • pip freeze > deploy/requirements.txt : 내가 pip 명령어로 설치한 라이브러리들의 목록을 deploy 폴더 안에 requirements.txt 파일에 기록합니다!
  • cd deploy : deploy 폴더 안으로 들어갑니다!(폴더 더블클릭과 똑같은 기능이네요!)

pip install awsebcli 여기서 약간 쌔함을 느끼고 pip와 awsebcli는 python환경에서 지원한다는... EC2는 잊고 이때부터 배포가 까다로워졌다.
하는방법, 요금문제를 알아보다가 EC2가 있다는 것을 기억했고, 그차이점이 궁금해 알아봤다.

Elastic Beanstalk과 EC2로 배포하는 것 간의 주요 차이점은 다음과 같습니다:

  1. 관리 수준:

    • Elastic Beanstalk: AWS Elastic Beanstalk는 관리형 플랫폼 서비스로, 애플리케이션을 배포하고 관리하는 데 필요한 많은 작업을 자동화합니다. 서버 프로비저닝, 로드 밸런싱, 확장성 관리, 애플리케이션 버전 업데이트 및 모니터링을 자동으로 처리합니다. 개발자는 애플리케이션 코드에 집중할 수 있습니다.

    • EC2: Amazon EC2는 가상 서버 호스팅 서비스로, 개발자가 가상 머신을 프로비저닝하고 관리해야 합니다. 이것은 더 많은 유연성을 제공하지만, 모든 시스템 관리 작업과 보안 설정을 개발자가 직접 수행해야 합니다.

  2. 추상화 수준:

    • Elastic Beanstalk: 추상화 수준이 높으며, 애플리케이션 코드만 업로드하면 됩니다. Elastic Beanstalk은 배포 및 인프라 관리 작업을 대부분 자동화하므로 개발자가 인프라 세부 사항에 대한 걱정을 덜어줍니다.

    • EC2: EC2를 사용하면 개발자는 운영체제 선택부터 웹 서버, 데이터베이스, 보안 및 확장성 관리까지 모든 것을 제어해야 합니다. 이것은 더 많은 유연성을 제공하지만, 관리 작업이 더 많이 필요합니다.

  3. 사용 사례:

    • Elastic Beanstalk: 단순한 웹 애플리케이션 또는 마이크로서비스와 같이 단일 컨테이너 애플리케이션을 배포하거나 관리 작업을 최소화하려는 경우에 적합합니다.

    • EC2: 복잡한 애플리케이션 아키텍처 또는 특정 요구 사항을 충족시키기 위해 고도로 맞춤형 환경을 구성하려는 경우 EC2가 더 적합할 수 있습니다.

  4. 유지 보수:

    • Elastic Beanstalk: 업데이트 및 스케일링과 같은 유지 보수 작업을 AWS가 관리하므로 개발자가 덜 관여해도 됩니다.

    • EC2: 모든 유지 보수 작업은 개발자에게 달려있으며, 운영체제 및 소프트웨어 업데이트, 보안 패치 등을 수동으로 관리해야 합니다.

요약하면, Elastic Beanstalk은 AWS가 인프라 관리를 처리하도록 설계된 관리형 서비스이며, EC2는 더 많은 제어와 유연성을 제공하는 가상 서버 호스팅 서비스입니다.

🤔그래서 EC2로 배포하는 법!!

  1. EC2 인스턴스 만들기
    • aws EC2로 접속해 freetier로 하나 만들기!
    • 보안그룹 설정 시 해당 TCP포트 http/https 포트 열어주기 (더 공부!)
    • 키페어 만들어서 pem형식으로 저장
    • 운영체제는 우분투로 만들었다
  2. EC2 접속하기
    • powerShell 또는 amazon 자체적으로 커맨드로 접속가능
    • ssh -i 키페어 ubuntu@EC2퍼블릭주소
  3. EC2 서버세팅
    • sudo apt update 패키지 정보를 최신상태로 업데이트
    • sudo apt install nodejs nodejs 배포하기 위한 nodejs 설치
    • sudo apt-get install npm nodejs 배포하기 위한 npm 설치
    • git은 설치되어 있다
  4. EC2에 프로젝트 가져오기
    • git clone 주소 이때 특정 브랜치로 가져오는 코드도 있다
    • npm run start로 실행
  5. 퍼블릭IPv4 주소:포트 주소로 접속하면 일단 배포 끝!

0개의 댓글