Skip to content
@cwave-druwa

드루와 드루와. 트래픽? 드루와!

CloudWave 3기 올리브영 인프라 구축하기

CloudWave 3기 5조 올리브영 사이트 인프라 구축하기

최종발표 최우수상(1위)

최종 발표 결과 최우수상(1위)

구성원

홍예슬 (PM) 우정인 유재균 한주호
홍예슬 우정인 유재균 한주호
@HongYeseul @wooji9 @JaeGyun-Yoo @sohyunsung

전체 아키텍처

전체 아키텍처

저희 아키텍처는 크게 개발계, 배포계, DR로 이루어져 있습니다.

아키텍처 단순화

1. 개발계

개발계는 개발 겸 QA를 위한 공간입니다. 때문에 아래의 3가지를 중점적으로 신경 썼습니다.

  1. 쿠버네티스 내 Node와 Pod의 빠른 오토 스케일링
  2. 서버 관리를 위한 보안
  3. QA를 위한 파이프라인

1. 오토 스케일링

KarpenterHPA를 이용한 오토 스케일링을 하도록 했습니다. 해당 툴을 사용하지 않았을 때와 비교하여 체감상 약 70%의 속도가 상승했습니다.

2. 보안

K8S Controller를 위해 AWS SSM을 통한 엔드포인트로 접속하도록 했으며, private로 유지하기 위해 관리용 툴에는VPN을 사용한 접근만 허용 했습니다.

3. QA

sonarQubeAWS Device Farm을 사용함으로써 코드 검증기능 검증을 하도록 했습니다.

QA

AWS Device Farm은 쉽게 말해 AWS에서 기기를 대여 해주는 서비스로 테스트를 지시하면 AWS 스스로 테스트를 실행하며 결과에 대한 영상을 생성 해줍니다. QA Pod에서 해당 검증을 통과하면 PROD Pod로 배포되도록 설계하였습니다.

2. 배포계

해당 클러스터에는 모니터링이 위치해 있습니다.

프로메테우스 및 그라파나, 로키를 사용해서 모니터링이 가능하도록 구성했으며 서버에 장애가 발생할 때를 대비한 전화 알람 자동화 시스템을 구축했습니다.

모니터링

3. DR

DR은 가중치 기반 라우팅을 사용하여 서울 Pod들이 죽으면 Multi CloudMulti Region으로 라우팅 되도록 구성했습니다.

멀티 리전의 DR에 필요한 새로운 서버 이미지 파일의 경우 하루 한 번 람다를 이용해 ECR을 체크하여 이미지 최신화를 통해 ECS로 배포할 수 있도록 했습니다.

DR 이미지 최신화 방법

최종 발표 때 이미지 리포지토리에 푸시 되었을 때 람다를 작동시켜 멀티 리전으로 배포 할 수 있도록 구성하면 더 좋을 것이라는 피드백을 주셨습니다.

멀티 리전의 경우 테라폼으로 작성되었으며, 해당 리포지토리에서 찾아보실 수 있습니다.


기타 산출물

Pinned Loading

  1. olive-young-server-deployment olive-young-server-deployment Public

  2. oliveyoung-fe oliveyoung-fe Public

    JavaScript

  3. olive-young-BE-main olive-young-BE-main Public

    메인 페이지용 간단 기능 API

    Java

  4. terraform terraform Public

    terraform code for infrastructure

    HCL

Repositories

Showing 7 of 7 repositories
  • .github Public
    cwave-druwa/.github’s past year of commit activity
    0 1 0 0 Updated Sep 2, 2024
  • lambda-function Public

    람다로 작성되었던 코드들 정리용 리포지토리

    cwave-druwa/lambda-function’s past year of commit activity
    Python 0 0 0 0 Updated Sep 2, 2024
  • olive-young-BE-shutter Public

    셔터 페이지용 간단 기능 API

    cwave-druwa/olive-young-BE-shutter’s past year of commit activity
    Java 0 0 0 0 Updated Sep 1, 2024
  • olive-young-BE-main Public

    메인 페이지용 간단 기능 API

    cwave-druwa/olive-young-BE-main’s past year of commit activity
    Java 0 0 0 0 Updated Sep 1, 2024
  • cwave-druwa/olive-young-server-deployment’s past year of commit activity
    0 0 0 0 Updated Sep 1, 2024
  • oliveyoung-fe Public
    cwave-druwa/oliveyoung-fe’s past year of commit activity
    JavaScript 0 0 0 0 Updated Aug 29, 2024
  • terraform Public

    terraform code for infrastructure

    cwave-druwa/terraform’s past year of commit activity
    HCL 0 0 0 0 Updated Aug 24, 2024

Top languages

Loading…

Most used topics

Loading…