inblog logo
|
jay0628
    AWS

    [AWS] 5. 엘라스틱빈스톡으로 배포하기

    김주희's avatar
    김주희
    Jun 16, 2025
    [AWS] 5. 엘라스틱빈스톡으로 배포하기
    Contents
    1. 역할 생성2. Elastic Beanstalk 애플리케이션 생성
    notion image
     
    관리자는 무조건 휴대폰용으로는 안만든다 왜냐 불편하니까!
    하나의 서버에
    도메인 분리 - 그 도메인에만 집중해서 개발 가능 - 인원 줄어듦 - 커뮤니케이션 비용 감소
    리눅스 도커 쿠버네티스 클라우드 네트워크 +모든 프로그램으로 서버를 만든 경험 → 서버를 쪼갤 수 있다.
     
    Elastic BeanStalk
    단일 서버 배포시 편하다
    컴퓨터가 아니라 다양한 리소스를 가지고 있는 서비스
    PaaS = 배포 환경이 다 만들어져 있다.
    서버 만들고 테스트하면 된다.
     
    notion image
     
    notion image
     

    1. 역할 생성

    1. ec2 역할 생성

    notion image
     
    여러개의 권한을 하나의 정책으로 묶음
    AdministratorAccess = 전체 권한
    notion image
     
    notion image
     

    2. service 역할 생성

    notion image
    notion image
    notion image
    notion image
    이제 이 권한들을 계속 재사용하면 된다.
     

    2. Elastic Beanstalk 애플리케이션 생성

    1. 환경 구성

    notion image
     
    나중에는 docker로하는 것이 편하다. (한번에 구워서 가능)
    jdk가 필요하므로 플랫폼은 java를 선택한다.
    openjdk가 아님 oraclejdk도 아니고
    벤더사들끼리 협의해서 많이 쓰는 서드파티 라이브러리를 그 다음 버전에 추가
    자기들만의 라이브러리가 개발되어서 들어갈 수 있다.
    배포할 경우 안돌아갈 수 있기 때문에 openjdk로 개발하기
    notion image
     
    지금은 단일 인스턴스를 사용하지만 나중에는 사용자 지정 구성으로
    notion image
     

    2. 서비스 액세스 구성

    notion image
    notion image
     

    3. 선택사항 (3~5단계)

    3,4,5단계는 선택사항이므로 검토단계로 건너뛰기
     

    4. 생성 완료

    notion image
     
     
    DNS를 만들어준다.
    notion image
    notion image
     
     
    spring서버의 포트번호가 5000이어야 한다. (8080 안됨)
    prod 모드로 실행되지 않고 jar 파일을 배포하면 그냥 java -jar *.jar로 실행된다.
    프로젝트 시에는 dev로 잡아두고 실행만 prod 모드로 하면 된다.
    prod에서는 5000으로 잡혀있으므로 무조건 5000으로 서버 포트 지정
     
    OS ubuntu가 아니고 amazon linux이다.
    notion image
     
    ec2 인스턴스 자동생성됨
    단일인스턴스로 만들어서 하나만 만들어짐
    notion image
     
    포트를 5000으로 했는데 80으로 된 것
    5000번 포트를 열어준적도 없는데 → 내부를 알아야 됨
    notion image
     

     
    notion image
    notion image
    notion image
     
    나는 현재 root 사용자로 들어간 것
    notion image
     
    notion image
     
    이제는 ec2-user로 들어와있는 것을 확인할 수 있다.
    notion image
     
    프로세스가 돌고 있는지?
    포트는 진짜5000인가? 근데 왜 80으로 돌지?
    notion image
     
    80을 때리면 80을 받는 서버가 있고 걔를 5000으로 redirection해주는 애가 있다.
    80서버가 req,resp 받았을텐데 80서버에서 만든 req,resp 말고 5000 서버는 원래 클라이언트가 들고온 req, resp를 받아야 한다.
    notion image
     
    notion image
     
    최상위 루트에서 이름으로 *.jar와 일치하는 것을 찾겠다.
    어떤 이름으로 배포하든 내부에서 mv라는 명령어로 카피 후 이름을 변경한다. application.jar로
    notion image
     
    내가 파일 던지면 webapp이라는 애가 만들어낸거임
    pid로 kill해도 포트번호가 여전히 떠있다. = 자동 재시작이 된다.
    notion image
     
    notion image
    notion image
     
     
    notion image
     
    notion image
     
    💡
    서버 배포될 때 상태확인(서버가 잘 돌고 있는지 포트 확인)하는데 잘 안돌아가면 ec2를 꺼버린다.
    배포 (ec2 생성 - 환경 설정 - jar 파일 넣고 - jar 파일 실행 - 5000번 포트 잘 도는지 확인 - 안돌면 ec2 꺼버린다.) → 잠깐 ec2 떠있을 때 확인해야한다. ⇒ 이런식으로 배포하면 안된다.
    → test 서버에서 확인하고 완벽한 파일을 던져야됨
     

    conf.d는 폴더니까 쓰고 ela까지 쓰고 tab하면 자동완성됨
    notion image
     

    ela 만들기 = 객체 박스 만들어짐 (auto scaling박스) + 관리자
    notion image
     
     
    www.youtube.com
    www.youtube.com
    https://www.youtube.com/results?search_query=nginx+proxy
    실습 끝나면 바로 지우기

    종료

    notion image
     
    notion image
    Share article

    jay0628

    RSS·Powered by Inblog