솔루션 아키텍처(3)

이기태·2024년 4월 25일
0

AWS

목록 보기
20/62

Stateful Web App(MyWordPress.com)

완전히 확장 가능한 웹사이트를 만들고 싶다.
WordPress는 웹 사이트를 만드는데 흔히 사용되는 방법
WordPress에 접근하고 싶고 업로드한 그림이 바르게 나타나길 원한다.
WordPress가 작동하는 방식으로 어떤 드라이브에 그림을 저장하고 기본적으로 모든 인스턴스 들이 그 데이터에 접근해야 한다.
사용자 데이터와 블로그 내용등 모든 게 MySQL DB에 저장되어야 하고
글로벌하게 확장하고 싶다.

솔루션 아키텍트 과정

RDS 계층 생성하기

  • 백엔드에 RDS 계층을 생성
  • 크게 확장하고 싶다면?-> Aurora MySQL로 교체
  • 다중 AZ, 읽기 전용 복제본도 원한다면 글로벌 DB를 적용

이미지 저장

  • 하나의 인스턴스에 하나의 EBS 볼륨이 연결되어 있는 상태
  • 로드 밸런서에 연결되어 있는 상태
  • 사용자가 로드 밸런서로 이미지를 보내고 싶다.
    그 이미지는 EBS까지 도달한다.
    -> 단일 인스턴스일때는 문제없이 잘 저장하고 불러온다.
  • 확장하기 시작하면 문제가 생긴다.

이미지 저장(확장)

  • 2개의 인스턴스와 2개의 AZ가 있다.
    각각의 EBS 볼륨을 가지고 있다.
  • 하나의 인스턴스로 이미지를 보내면 해당 EBS볼륨에 저장된다.
  • 그러나 이미지를 읽어들이기 위해 다른 인스턴스에 접근할 수도 있다.
    EBS 볼륨은 하나의 인스턴스만 있을때 사용하지 좋은거 같다.
  • 그래서 EFS를 사용해보자

EFS를 사용해 이미지 저장

  • 위와 동일하게 2개의 인스턴스, AZ가 있다.
  • 이번엔 EFS(네트워크 파일 시스템 드라이브)를 사용해보자.
  • EFS는 탄력적인 네트워크 인터페이스를 위해 각각의 AZ에 ENI를 생성한다.
    ENI는 EFS 드라이브에 접근하는 모든 EC2에 사용 가능하다.
    스토리지가 모든 인스턴스에 공유된다.
    (이미지를 보내는 과정)
    사용자 -> M5 인스턴스 -> ENI -> EFS에 저장
    (이미지 불러오는 과정)
    사용자 -> 인스턴스 -> ENI -> EFS로부터 읽기 -> ENI -> 인스턴스 -> 사용자
  • 여러 인스턴스에 걸쳐 웹사이트 스토리지를 확장하는 방법(EFS)
    가용 영역이나 인스턴스 개수에 관계없이 모든 인스턴스가 동일한 파일에 접근하도록 허용

생각해보기..

  • Aurora Database
    적은 연산량과 다중 AZ 및 읽기 전용 복제본
  • EBS
    단일 인스턴스 애플리케이션에서 잘 작동
  • EFS
    인스턴스가 많아짐에 따라 다중 AZ에 걸쳐 분산 애플리케이션에 유용
  • 비용
    EFS < EBS
    상황에 따라 EBS,EFS 사용

0개의 댓글

관련 채용 정보