inblog logo
|
sxias
    AWS

    [AWS] 4. CI/CD 2

    문정준's avatar
    문정준
    Jun 18, 2025
    [AWS] 4. CI/CD 2
    Contents
    Elastic BeanstalkElastic Beanstalk 구동

    Elastic Beanstalk

    • PaaS ( Platform as a Service ) : 이미 환경 구축이 완료되어 있는 플랫폼 제공
    • 단일 서버 배포에 강함
    notion image
     

    Elastic Beanstalk

    • 단일 또는 다중 서버를 On-Demand 환경에 맞추어 자동으로 설정할 수 있는 서비스
    • Elastic Beanstalk 내부의 관리자가 각 서버에 배포 환경 및 서버 파일을 배포
    • 단일 서버의 경우 EC2가 1개만 생성되기 때문에 로드밸런서 (LB) 도 만들어지지 않음
    • 다중 서버 (2개 이상) 의 경우 서버가 여러 대 생성됨에 따라 IP가 각각 다르기 때문에, 클라이언트의 접속을 제어할 수 있도록 로드밸런서가 생성됨
      • 다중 서버는 Auto-Scaling을 통해 사용자의 접속 트래픽에 따라 서버를 자동으로 증축
      • 너무 많이 생기면 서버의 비용이 증가하므로 최대 서버 수를 지정할 수 있음
    notion image
     

    Elastic Beanstalk 구동

     

    역할 설정

    • IAM (Identity and Access Management) 접속 : 사전 역할 설정
    notion image
     
    • 역할 진입 후 역할 생성 클릭
    notion image
     
    • 엔터티 선택
      • AWS 서비스
      • 사용 사례 : EC2
    notion image
     
    • 권한 추가
      • 검색 창에 ‘AWS Elastic’ 검색
      • MulticontainerDocker, WebTier, WorkerTier 추가
    notion image
     
    • 이름 지정 후 역할 생성
      • elb-ec2-role
    notion image
     
    • 2번째 역할 추가
      • 서비스 : Elastic Beanstalk
      • 사용 사례 : Environment
    notion image
     
    • 권한 추가
      • 자동으로 추가되어 있음 : 다음
    notion image
     
    • 이름 설정 후 역할 생성
      • elb-service-role
    notion image
     

    Elastic Beanstalk 생성

    • 환경 티어 : 웹 서버 환경
    • 애플리케이션 이름 : aws-v3
    • 환경 이름은 자동으로 설정됨
    notion image
     
    • 플랫폼 : Java (JDK 필요)
    • 애플리케이션 코드 : 샘플
      • 커스텀한 Beanstalk 사용할 경우 코드 업로드 필요
    notion image
     
    • 사전 설정 : 단일 인스턴스 (서버 하나만 구축)
      • 이후 서버를 추가로 개설할 시 사용자 지정 구성 선택
    notion image
     
    • 서비스 액세스 구성
      • 서비스 역할, EC2 인스턴스 프로파일, EC2 키 페어 선택 후 검토 단계로 건너뛰기
    notion image
     
    • 적용 사항 확인 후 생성
    notion image
     
    • 환경 생성 확인 후 업로드 및 배포 클릭
    notion image
     
    • 파일 선택 후 배포 클릭
    notion image
     
    • 파일은 내가 배포할 서버 파일 등록
    notion image
     
    • 인스턴스 자동 생성 : Elastic Beanstalk 생성 시 개설
      • 탄력적 IP 자동 설정 - 고정 IP
    notion image
     
    • 도메인을 통해 접속
    notion image
     
    notion image
     
    ❗

    배포 설정

    • 스프링 서버 포트 : 5000
    • 배포 환경 : Amazon Linux
     

    배포 확인

    • Amazon EC2 Console 화면
      • 기본 사용자 : root
      • Amazon Linux로 접속되는 것을 확인
    notion image
     
    • MobaXTerm으로 접속
      • 기본 사용자가 ubuntu가 아닌 ec2-user
      • 나머지는 기존 세션 생성과 동일
    notion image
     
    notion image
     
    • 현재 실행 중인 서버 확인 : netstat -nlpt
      • 80, 22, 5000 서버가 구동 중
    notion image
     
    • 인바운드 규칙 확인
      • 80, 22 서버만 Open 되어 있음
      • 내부적으로 80번 서버에 요청 시 5000번으로 연결하는 서버 존재
    notion image
     
    • 배포한 서버 파일 확인
      • 배포한 파일의 이름을 그대로 사용하지 않고 application이라는 이름으로 변경됨
      • sudo find / -name application.jar 로 검색
    notion image
     
    • 서버 강제 종료
      • kill을 해도 다시 서버가 실행됨
        • cron에 서버 재 시작 루틴이 설정되어 있음
    notion image
     

    로그 확인

    • Elastic Beanstalk에서 로그 클릭 → 로그 요청 후 다운로드
    notion image
     
    • 브라우저에서 바로 로그 파일 확인 가능
      • 로그 파일의 경로도 확인 가능
    notion image
     
    • MobaXTerm에서 직접 확인
      • /var/log/web.stdout.log 확인 : 스프링 서버 로그
    notion image
     
    • 로그 출력
      • tail 사용
    notion image
     
    • 내부 서버 확인 : nginx 파일 확인
      • /etc/nginx/conf.d/elasticbeanstalk 진입
      • 00_application.conf 확인 : nginx 서버 설정 파일
    notion image
     

    Elastic Beanstalk 종료

    • 환경 이동
    • 실행 중인 환경 선택
    • 작업 → 환경 종료 클릭
    • 환경 이름 입력 후 종료
    notion image
     
    Share article
    Contents
    Elastic BeanstalkElastic Beanstalk 구동

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog