네이버클라우드 활용 후기

Sangwoon Park·2024년 3월 23일

Q. 프로젝트를 소개해 주세요.

핫한 공연 예매의 시작, 불티!
지금 불티에서 티켓을 구매하고 공연을 즐겨보세요.

● 공연 정보를 한 눈에, 홈・검색
공연 포스터부터 공연명까지 공연 예매에 필요한 정보를 한 눈에 확인할 수 있어요.
공연명 검색으로 빠르게 내가 예매하려는 공연을 찾아보세요.

● 누구나 손쉬운, 예매
시간과 장소에 상관없이 원하는 공연의 티켓을 손쉽게 예매해 보세요.

● 모으는 재미가 있는, 티켓
공연마다 디자인이 달라지는 티켓! 내가 방문했던 공연의 티켓을 모아보세요.

● 티켓 화면에서 바로, QR 입장
신분증도 안내 문자도 꺼낼 필요 없이! 티켓의 QR을 스캔하고 공연장에 빠르게 입장해 보세요.

넥스터즈 24기에서 진행한 프로젝트 "불티"를 출시했다.
불티는 다음 두 사용자를 위한 서비스이다.

  • 공연을 주최 및 관리하고 싶은 사람
  • 불티를 통해 주최한 공연을 관람하고 싶은 사람

아래는 각각 플레이스토어와 앱스토어 링크이다.

출처: 숨겨진 최고의 안드로이드 개발자의 블로그. 지금이 저점입니다 여러분.

Q. Ncloud에서 어떤 서비스를 활용하셨나요?

  • [Classic] Server Compact G1 * 2
  • [Classic] Load Balancer * 2
  • Container Registry
  • Certification Manager
  • Global DNS
  • Object Storage
  • Global CDN

Q. Ncloud 서비스를 어떻게 적용 하였나요?

[Classic] Server Compact G1 * 2

  • 개발환경과 운영환경 서버를 나누기 위해 서버 컨네이너 2대를 임대했다.
  • 비용을 줄이기 위해 서버 어플리케이션과 DBMS를 한 곳에 같이 두었다.
  • 서버 어플리케이션은 Container Registry를 통해 이미지를 받아와 도커 환경에서 구동하였다.

[Classic] Load Balancer * 2

  • SSL 오프로딩을 지원하기 위해 각 환경 서버 앞단에 로드 밸런서를 배치하였다.
  • 서버 컨테이너의 자원이 빠듯했기 때문에 앞단의 웹서버를 다른 자원으로 뺄 의도였다.
  • 돌려보니 좀 과한 조치였다고 생각한다.

Certification Manager

  • 앞서 Load Balancer를 SSL 오프로딩 용도로 사용했다고 했다.
  • Load Balancer에서 HTTPS 프로토콜을 지원하기 위해 인증서를 달아줘야 했다.
  • 네이버 클라우드의 Certification Manager는 자체 CA가 검증한 인증서 생성을 지원한다.
  • 그래서 이 서비스를 활용하여 인증서를 생성하고 Load Balancer 2대에 연결해주었다.
  • 다만 네이버 클라우드 CA가 꽤 최근에 만들어진 탓인지, 구형 기기들을 지원하지 않았다.
  • 그래서 어쩔 수 없이 외부에서 인증서를 생성하여 Certification Manager에 등록하고 다시 Load Balancer에 연결해주었다.

Container Registry

  • 서버 어플리케이션은 jar를 포함한 CNI로 패키징 했다.
  • 인프라 환경의 영향을 덜받게 하기 위한 조치였다.
  • 빌드된 CNI는 네이버 클라우드에서 제공하는 Container Registry로 push 하도록 구축했다.
  • 이후 Github action을 활용한 deploy script가 이곳에 저장된 이미지를 pull하여 서버를 구동하도록 구축하였다.

Object Storage

  • Object Storage의 용도는 크게 2개였다.
  • 첫번째로 Container Registry.
    • 네이버클라우드의 Container Registry는 특이하게도 Object Stroage를 만든 후 연결하게끔 되어 있었다. 이 Object Storage에 이미지들이 저장되는 듯 하다.
    • AWS의 S3와 동일한 역할인줄 알았는데 이보단 일반적인 개념으로 구상한 것 같다.
  • 두번째론 정적 파일 저장소
    • 불티에는 공연 포스터 이미지를 업로드하고 서빙하는 요구사항이 있었다.
    • 이 이미지들을 보관하기 위해 파일 저장소에 특화된 Object Stroage를 활용하였다.

Global CDN

  • 공연 포스터 이미지를 서빙하기 위해 활용하였다.
  • 딱히 네이버 클라우드의 가격 정책을 살펴보진 않았지만,
    AWS 가격 정책 기준으로 스토리지에서 직접 파일을 저장하는 것보다 CDN을 통해 캐싱해서 서빙하는게 더 저렴했던 것으로 기억한다.
  • 유저의 행위 중, 포스터 이미지 업로드 (공연 등록) 보단 포스트 이미지 다운로드 (공연 조회) 가 많을 것으로 예상했고, 그냥 평소 하던 듯 CDN을 Object Storage 앞단에 달았다.

Global DNS

  • 서버에 연결한 도메인 관리를 위해 활용하였다.

Q. Ncloud 사용 중 특히 만족했던 점과, 아쉬웠던 점은 무엇인가요?

만족했던 것

  • 전반적으로 사용법이 어렵지 않았던 것 같다. 조금이라도 경험이 있는 백엔드 엔지니어라면 사용 매뉴얼을 딱히 살펴보지 않고도 손쉽게 활용할 수 있게끔 사용자 흐름이 설계되어 있던 것 같다.
  • 이번에 참여한 넥스터즈와 같은 단체에 크레딧을 넉넉하게 제공해주는게 좋았다. 서버비 부담없이 이것저것 시도해볼 수 있었다.
  • aws cli를 활용하여 command line에서도 NCP의 인프라를 똑같이 관리할 수 있었던 것이 좋았다.

아쉬웠던 점

  • api key를 메인 계정을 통해서만 생성할 수 있었던게 아쉬웠다.
    aws의 IAM 서비스와 같이 각 계정의 권한을 부여하고 credentials을 분리할 수 있으며 활동을 식별할 수 있으면 더 좋을 것 같다. 차후 사고 발생 시 분석을 위해서.
  • 네이버 클라우드를 통해 생성한 인증서가 꽤나 최신 OS만 지원한다는 것이 아쉬웠다.
    시간이 갈수록 기기 최소 OS버전이 올라가서 어느정도 해소가 되겠지만,
    아직은 활용하기 어려울 것 같다.

Q. Green Developers 프로그램 참여 소감 말씀 부탁 드립니다.

  • 개인 개발자들을 위해 크레딧을 넉넉히 제공해주셔서 이것저것 인프라들을 활용해볼 수 있어 좋았습니다.
  • AWS 외에 다른 CSP를 경험해보는 것은 처음인데, 국내에서도 많은 노력을 통해 이렇게 퀄리티 높은 서비스를 만들고 있다는 사실을 알게되어 좋았습니다.

Q. 마지막 한 말씀 부탁 드립니다.

  • 앞으로도 NCP에 다른 서비스들을 활용하여 저희 서비스를 개선해 나갈 생각입니다.
  • 지금은 서버 컨테이너만 주로 활용하고 있지만, 앞으로 수익이 더 나게 되면
  • 관리형 DBMS나 관리형 캐시도 활용하고,
  • Cloud Function도 적극적으로 활용하게 될 것 같습니다.
profile
백엔드 개발자입니다.

0개의 댓글