Basic

[Backend][Basic] AWS에서 서비스 배포 및 관리: Lambda, EC2, RDS, S3와 Auto Scaling, ELB 활용

천재단미 2025. 3. 31. 10:04
728x90
반응형

목차 ▽열기

 

 

AWS는 클라우드 환경에서 애플리케이션을 효율적으로 배포하고 관리할 수 있는 다양한 서비스를 제공합니다. 이 글에서는 주요 AWS 서비스인 EC2RDSS3Lambda를 활용한 배포 방법과 함께 Auto Scaling 및 **Elastic Load Balancer(ELB)**를 통한 확장성과 고가용성 구현 방법을 자세히 설명합니다.

1. AWS 서비스 배포 개요

AWS에서는 애플리케이션 배포를 자동화하고 최적화하기 위해 다양한 도구와 전략을 제공합니다.

1.1 EC2, RDS, S3를 포함한 배포

AWS CloudFormation을 사용하면 YAML 템플릿으로 인프라를 코드로 정의하여 EC2 인스턴스, RDS 데이터베이스, S3 버킷을 자동으로 생성하고 관리할 수 있습니다.

 

YAML 템플릿 예시

  • EC2 설정:
Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t2.micro
      KeyName: MyKeyPair
      SecurityGroups:
        - !Ref MyEC2SecurityGroup
      ImageId: ami-0abcdef1234567890 # Ubuntu AMI ID

  • RDS 설정:
Resources:
  MyDBInstance:
    Type: AWS::RDS::DBInstance
    Properties:
      DBInstanceClass: db.t2.small
      Engine: MySQL
      MasterUsername: admin
      MasterUserPassword: !Ref DBPassword
      AllocatedStorage: 20

  • S3 버킷 생성:
Resources:
  MyS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: my-unique-bucket-name

1.2 Lambda를 활용한 서버리스 배포

AWS Lambda는 서버리스 컴퓨팅 환경을 제공하며, 이벤트 기반으로 코드를 실행합니다. Lambda는 S3 업로드 이벤트, API Gateway 요청 등 다양한 트리거와 연동됩니다.

Lambda의 주요 특징

  • 서버 관리 불필요.
  • 초당 수천 개의 요청 처리 가능.
  • 사용한 만큼만 비용 지불(초 단위 과금).

2. ELB와 Auto Scaling 연동

2.1 Elastic Load Balancer(ELB)

ELB는 트래픽을 여러 대상(예: EC2, 컨테이너, Lambda)으로 분산하여 애플리케이션의 가용성과 확장성을 보장합니다.

 

ELB 유형

  1. Application Load Balancer(ALB): HTTP/HTTPS 트래픽 처리에 최적화.
  2. Network Load Balancer(NLB): 초저지연 네트워크 트래픽 처리.
  3. Gateway Load Balancer(GWLB): 네트워크 어플라이언스 관리.

ELB 구성 요소

  • 리스너(Listener): 클라이언트 요청을 수신하는 프로토콜과 포트 정의.
  • 대상 그룹(Target Group): 트래픽이 전달될 대상 정의.
  • 헬스 체크(Health Check): 비정상 리소스를 감지하고 트래픽 전달 중지.

 

2.2 Auto Scaling

Auto Scaling은 트래픽 변화에 따라 EC2 인스턴스나 컨테이너 수를 자동으로 조정합니다.

 

Auto Scaling 정책

  1. Target Tracking Scaling: 특정 메트릭(CPU 사용률 등)이 목표 수준에 도달하도록 조정.
  2. Step Scaling: 임계값 초과 정도에 따라 단계적으로 조정.
  3. Scheduled Scaling: 특정 시간이나 날짜에 맞춰 자원을 미리 조정.

3. 보안 및 모니터링

3.1 보안 강화

AWS 서비스를 안전하게 운영하기 위해 다음 보안 모범 사례를 준수해야 합니다.

  • IAM 역할 최소 권한 부여.
  • S3 버킷 암호화(AES256) 및 퍼블릭 접근 차단.
  • RDS 데이터 암호화 활성화(StorageEncrypted=true).
  • 보안 그룹 규칙 최소화(예: SSH 접근 IP 제한).

 

보안 예시 (YAML 템플릿)

Resources:
  MyS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketEncryption:
        ServerSideEncryptionConfiguration:
          - ServerSideEncryptionByDefault:
              SSEAlgorithm: AES256
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true

3.2 모니터링

AWS CloudWatch와 CloudTrail을 활용하여 시스템 상태를 실시간으로 모니터링하고 로그를 분석합니다.

  • CloudWatch 알람 설정(CPU > 80% 시 알림 발송).
  • ELB 액세스 로그 활성화(S3 저장).
  • AWS X-Ray로 분산 추적 활성화.

 

4. 주요 서비스별 특징

서비스 특징 및 사용 사례

EC2 가상 서버 제공, Auto Scaling과 ELB로 확장성 및 고가용성 구현 가능.
RDS 관리형 데이터베이스 서비스로 자동 백업 및 멀티 AZ 지원.
S3 객체 저장소로 데이터 백업 및 CDN(Content Delivery Network)에 적합.
Lambda 서버리스 컴퓨팅으로 이벤트 중심 애플리케이션 구축 가능.

 

5. 결론

AWS의 다양한 서비스(Lambda, EC2, RDS, S3 등)는 각각의 특성과 장점을 살려 애플리케이션을 효율적으로 배포하고 관리할 수 있도록 설계되었습니다. 특히 ELB와 Auto Scaling은 확장성과 고가용성을 보장하며, 보안 및 모니터링 도구와 결합하면 안정적인 클라우드 환경을 구축할 수 있습니다.

728x90
반응형
home
}