본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

AWS EventBridge, Lambda, Elastic Beanstalk 실습 후기

by easyfly 2025. 10. 2.
반응형

 

AWS EventBridge, Lambda, Elastic Beanstalk 실습 후기

클라우드 환경을 제대로 이해하려면 단순히 서버를 띄워보는 경험을 넘어, 자동화와 배포 플랫폼을 직접 다뤄보는 것이 필요합니다. 이번 학습에서는 EventBridge와 Lambda를 이용한 EC2 자동 중지 실습, 그리고 Elastic Beanstalk을 통한 애플리케이션 배포 실습을 진행했습니다. 두 가지 과정 모두 AWS의 핵심 철학인 자동화와 관리 효율성을 잘 보여주는 좋은 경험이었습니다.


1. EventBridge와 Lambda를 활용한 EC2 자동 중지

먼저 진행한 실습은 EventBridge 이벤트를 트리거로 Lambda 함수를 실행하여 EC2 인스턴스를 자동으로 중지시키는 과정이었습니다. 평소에는 EC2를 콘솔에서 수동으로 켜고 끄지만, 일정 시간이 지나면 자동으로 중지되도록 설정해 두면 불필요한 비용을 줄일 수 있습니다. 특히 학습이나 테스트 목적으로 인스턴스를 자주 띄우는 경우, 자동 종료는 반드시 필요한 기능이라 할 수 있습니다.

실습 구성

  1. EventBridge에서 스케줄 규칙을 정의하여 특정 시간이나 조건에 이벤트 발생
  2. 이벤트가 발생하면 Lambda 함수가 호출됨
  3. Lambda 함수 내부에서 boto3 라이브러리를 사용해 EC2 인스턴스를 중지

Lambda 코드

import boto3

region = 'us-east-1'
instances = ['i-04e78de89c5489237']   # 중지할 인스턴스 ID
ec2 = boto3.client('ec2', region_name=region)

def lambda_handler(event, context):
    ec2.stop_instances(InstanceIds=instances)
    print('Stopped your instances: ' + str(instances))

이 코드를 배포하고 EventBridge와 연결하자, 지정된 인스턴스가 실제로 중지되는 것을 콘솔에서 확인할 수 있었습니다. 이 과정을 통해 자동화된 인프라 운영의 첫 단추를 경험했습니다.


2. Elastic Beanstalk을 통한 애플리케이션 배포

다음으로 진행한 실습은 AWS Elastic Beanstalk을 이용한 웹 애플리케이션 배포였습니다. Elastic Beanstalk은 개발자가 애플리케이션 코드를 업로드하면, AWS가 알아서 EC2, EBS, 로드밸런서, Auto Scaling 그룹 등을 구성하여 실행 환경을 자동으로 제공합니다.

실습 과정

  • Elastic Beanstalk 콘솔에서 새로운 환경을 생성
  • 플랫폼으로 Tomcat 9 with Corretto 선택
  • 환경 생성 후 제공된 URL에 접속하니, 파란색 화면에 “Congratulations” 메시지가 표시됨

이 화면은 애플리케이션이 정상적으로 배포되었다는 의미이며, 그 뒤에서는 AWS가 여러 리소스를 자동으로 생성해둡니다.

Elastic Beanstalk의 구조

  • EC2 인스턴스: 애플리케이션이 실행되는 서버
  • EBS: 인스턴스에 연결된 저장소
  • 로드밸런서(ELB): 여러 인스턴스에 트래픽 분산
  • Auto Scaling: 트래픽에 따라 인스턴스 개수를 자동 조절
  • CloudWatch: 상태 모니터링과 지표 관리

이처럼 Beanstalk은 단순히 서버를 띄우는 것을 넘어 애플리케이션 전체 환경을 자동 구성해 주므로, 개발자는 코드와 애플리케이션 로직에만 집중할 수 있습니다.


3. EBS와 Elastic Beanstalk의 차이

이 과정에서 자주 혼동되는 두 가지 용어도 정리할 수 있었습니다.

  • EBS(Elastic Block Store): EC2 인스턴스에 연결되는 저장소(하드디스크 역할)
  • Elastic Beanstalk: 애플리케이션을 자동으로 배포·운영해 주는 플랫폼 서비스

이름은 비슷하지만, EBS는 저장소이고 Beanstalk은 배포 자동화 플랫폼으로 성격이 전혀 다릅니다.


4. 학습을 통해 얻은 교훈

이번 학습을 통해 다음과 같은 중요한 포인트를 확인했습니다.

  1. EventBridge + Lambda 조합으로 반복적이고 번거로운 작업(예: EC2 중지)을 자동화할 수 있다.
  2. Lambda 코드에서는 반드시 올바른 **인스턴스 ID(i-xxxx)**를 지정해야 한다.
  3. Elastic Beanstalk은 개발자가 직접 인프라를 설계하지 않아도, 애플리케이션 배포 환경을 손쉽게 마련해 준다.
  4. EBS와 Beanstalk은 서로 다른 서비스이며, 하나는 저장소, 하나는 배포 플랫폼이다.

맺음말

AWS를 학습하다 보면, 처음에는 각 서비스의 이름과 기능이 다소 복잡하게 느껴집니다. 그러나 이번처럼 작은 실습을 통해 직접 실행해 보고 눈으로 결과를 확인하면 서비스의 역할과 차이가 확실히 잡힙니다.

이번 실습은 단순히 인스턴스를 중지시키는 것과, 기본 애플리케이션을 배포하는 과정이었지만, 여기서 더 나아가면 비용 최적화, 무중단 배포, 자동 확장 서비스 운영 같은 고급 활용도 가능해집니다. 작은 실습이지만, AWS 클라우드의 강점을 몸소 체험할 수 있는 좋은 계기였습니다.


 

반응형

댓글