제로부터 쌓는 개발일지
article thumbnail
반응형

Scalability vs Availability

  • Scalability는 시스템이 사용자 수나 데이터 양의 증가에 따라 성능을 유지하거나 증가시킬 수 있는 능력을 말합니다.
    이는 주로 시스템이 수평적(새로운 인스턴스 추가) 또는 수직적(리소스 업그레이드)으로 확장 가능한지에 초점을 맞춥니다.
  • Availability는 시스템이 요청받은 시점에 서비스를 제공할 수 있는 상태를 유지하는 능력을 의미합니다.
    이는 시스템이 장애에도 불구하고 계속해서 서비스를 제공할 수 있도록 하는 다양한 장애 복구 및 고가용성(High Availability) 전략에 의해 결정됩니다.

 

 

 

Elastic Load Balancer (ELB)

AWS ELB는 인바운드 트래픽을 여러 대의 EC2 인스턴스에 자동으로 분산시켜주는 관리형 로드 밸런서 서비스입니다.

ELB는 고가용성, 자동 확장성, 보안을 제공하며, Application Load Balancer(ALB), Network Load Balancer(NLB), Classic Load Balancer(CLB)의 세 가지 유형이 있습니다.

 

 

 

Application Load Balancer

Application Load Balancer는 HTTP/HTTPS 트래픽의 로드 밸런싱에 최적화되어 있으며, 고급 라우팅 기능(호스트 기반 라우팅, 경로 기반 라우팅)을 제공합니다.

 

ALB 사용해보기

  • EC2 생성 시 고급 세부 정보 -> 사용자 데이터에 아래의 코드 입력

#!/bin/bash
apt-get update
apt-get install -y nginx
cat <<EOF > /var/www/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx</title>
</head>
<body>
<h1>Hello World!</h1>
<p>AWS deployed by Me!</p>
<p>private ip is $(hostname -f)</p>
</body>
</html>
EOF
sudo systemctl start nginx

 

2개의 EC2에 로드밸런서 붙이기

  • EC2 -> 로드 밸런서 -> 로드 밸런서 생성

 

로드 밸런서 유형 비교 및 선택

  • ALB 생성

 

로드밸런서 기본구성

 

로드밸런서 네트워크 매핑

  • 체크박스 전부 체크

 

로드밸런서 보안 그룹

  • 새 보안그룹 생성

 

  • 보안그룹 이름 입력

 

  • 인바운드 규칙 HTTP 설정 후 보안그룹 생성

 

  • 만든 보안그룹 선택 (우측 새로고침 버튼 누른 후 선택)

 

로드밸런서 리스너 및 라우팅

  • 대상 그룹 생성

 

  • 인스턴스 & 대상그룹 이름 지정 후 다음 클릭
    나머지 설정은 기본값 그대로 유지

 

  • 사용할 인스턴스 선택 후 포트 확인하고 아래에 보류 중인 것으로 포함 클릭

 

  • 확인 후 대상 그룹 생성 클릭

 

  • 새로고침 버튼 클릭 후 만든 대상그룹 선택하고 로드 밸런서 생성

 

로드밸런서로 EC2 접속하기

  • 프로비저닝이 끝나고 활성이 되면 DNS를 주소창에 입력

 

  • 새로고침을 해보면 IP가 변경되는걸 볼 수 있음

 

로드밸런서에게만 EC2 공개하기

 

보안그룹 생성

  • 보안그룹 이름 설정 후 인바운드 규칙 HTTP 유형에서 로드밸런서 보안그룹 선택

 

  • EC2 인스턴스로 이동해서 보안그룹 변경

 

  • 기존 보안그룹은 제거하고 새로 만들어준 보안그룹 등록

 

이렇게 하면 로드밸런서 DNS에서만 접근이 가능하고 EC2 퍼블릭 IP로는 접근이 불가능함!

 

 

 

. SSL과 HTTPS

SSL(Secure Sockets Layer)과 그 후속 기술인 TLS(Transport Layer Security)는 인터넷 통신의 보안을 강화하기 위해 설계되었습니다.

이들은 데이터를 암호화하여 클라이언트와 서버 간의 정보를 안전하게 전송합니다.

HTTPS는 SSL/TLS 프로토콜을 사용하여 HTTP 통신을 암호화하는 방식입니다.

  • SSH와 SSL/TLS의 차이점: SSH(Secure Shell)는 주로 원격 컴퓨터에 안전하게 접근하기 위한 프로토콜입니다.
    반면, SSL/TLS는 네트워크 상에서 데이터를 안전하게 전송하기 위한 프로토콜입니다.

 

 

 

ALB에 SSL 적용하기

ALB에 SSL/TLS 인증서를 적용하여 HTTPS 통신을 활성화하는 것은 웹 애플리케이션의 보안을 강화하는 데 필수적입니다.

AWS Certificate Manager(ACM)을 사용하여 SSL/TLS 인증서를 생성하거나 가져올 수 있으며, ALB에 적용하여 암호화된 트래픽을 처리할 수 있습니다.

  1. AWS Certificate Manager에서 SSL/TLS 인증서를 발급 또는 가져옵니다.
  2. Elastic Load Balancer 설정에서 생성된 인증서를 선택하여 HTTPS 리스너를 구성합니다.
  3. HTTPS 리스너를 사용하여 트래픽을 암호화하고, 보안 그룹에서 HTTPS(443) 포트를 열어줍니다.

 

반응형

'클라우드 서비스 > AWS' 카테고리의 다른 글

Relational Database Service  (0) 2024.02.07
Elastic Compute Cloud  (1) 2024.02.06
Identity and Access Mangement  (0) 2024.02.05
profile

제로부터 쌓는 개발일지

@PachyuChepe

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...