[부스트캠프] 클라우드를 GUI로 설계 가능한 Cloud Canvas
Cloud Canvas는 클라우드 인프라를 GUI로 손쉽게 설계하고, 이를 Terraform 코드로 자동 변환할 수 있는 도구입니다.
주요 기능은 아래와 같습니다.
🎨 직관적인 UI/UX
- 클릭 몇 번으로 누구나 쉽게 클라우드 인프라를 설계할 수 있습니다.
💻 Terraform 코드 변환
- 설계한 인프라를 자동으로 Terraform 코드로 변환하여 사용할 수 있습니다.
🤝 협업 및 재활용
- 인프라 허브를 통해 다른 사용자들과 설계도를 공유하고 수정하며 효율적으로 협업할 수 있습니다.
다음으로 실행 화면에 대해서 보여드리겠습니다.
리소스 배치
왼쪽 탭에서 원하는 리소스를 골라 배치하는 장면입니다.
리소스 속성 설정
원하는 리소스를 클릭하여 속성 창에서 해당 리소스의 속성을 설정하는 장면입니다.
노드 삭제 및 엣지 연결
노드 삭제와 노드와 노드간의 엣지 연결에 대한 장면입니다.
인프라 허브에 공유
SHARE버튼을 눌러 인프라 허브에 공유하는 장면입니다.
불러오기
인프라 허브에 올라와있는 인프라 구성을 캔버스로 불러오는 장면입니다.
2D / 3D, 라이트 / 다크 모드
테라폼 코드 변환
GUI로 그린 인프라를 테라폼 코드로 변환하는 장면입니다.
테라폼 배포
생성된 테라폼 코드로 실제 NCloud에 배포하는 장면입니다.
추가적으로 궁금한 사항은 GitHub를 참고해주시기 바랍니다!
NCloud에서 사용한 서비스
아래는 저희가 만든 Cloud Canvas로 직접 그린 도면입니다
저희 팀의 프로덕션 환경의 인프라는 그림과 같이 구성되어 있습니다.
먼저 public 서브넷과 private 서브넷을 나눠서 구성함으로써 외부 사용자의 접근을 프론트 서버로 강제하였으며, private 서브넷의 아웃바운드 네트워크는 인터넷을 사용할 수 있도록 NAT Gateway를 추가하였습니다.
안정적인 컨테이너 런타임 환경을 위해 SSD swap을 적용한 서버 이미지를 모든 서버의베이스 이미지로 활용하여 총 8기가의 메모리로 컨테이너를 원활하게 돌릴 수 있도록 구성하였습니다.
또한, Ncloud Container Registry를 사용하여 도커 이미지를 저장함으로써 컨테이너 레지스트리의 물리적 거리를 감소시키고 내부 통신을 활용해, 이미지 다운로드 속도를 증가하였습니다.
NCloud를 사용하며 만족한 점, 아쉬운 점
만족한 점
1. NCloud를 사용하며 만족한 점은 우선 효율적인 네트워크 구성이었습니다.
private 서브넷과 public 서브넷을 분리하여 보안성을 높이고, NAT Gateway를 통해 private 서브넷의 아웃바운드 인터넷 연결을 가능하게 한 점에서 안정성과 효율성이 뛰어났습니다.
그리고 NCloud의 네트워크 설정은 직관적이며, 사용자가 설정한 대로 안정적으로 작동하여 기대한 아키텍처를 문제없이 구현할 수 있었습니다.
2. 그리고 빠른 컨테이너 이미지 다운로드 입니다.
NCloud Container Registry를 활용하여 레지스트리의 물리적 거리를 줄임으로써 내부 네트워크를 통한 빠른 이미지 다운로드가 가능했습니다. 이를 통해 배포 속도가 개선되어 CI/CD 파이프라인의 전반적인 처리 속도 향상에 기여했습니다.
아쉬운 점
1. 아쉬운 점은 첫번 째로 비용 관리의 어려움입니다.
NAT Gateway를 포함한 다양한 구성 요소의 비용이 예상보다 높게 산출되는 경우가 있었습니다. 서비스 초기에는 리소스 사용량 추정이 어려워, 운영 후 세부 비용 관리에 신경을 더 써야 했습니다.
2. 다음으로 리소스 생성 속도입니다.
가상 서버나 네트워크 리소스 생성 시, AWS와 같은 글로벌 클라우드 서비스에 비해 초기 생성 속도가 느리게 느껴지는 경우가 있었습니다.이는 테스트 환경이나 개발 환경에서 반복적으로 리소스를 생성/삭제하는 작업이 많을 때 생산성 저하로 이어질 수 있었습니다.
이번 Green Developers 프로그램으로 NCloud 크레딧을 지원 받으며 프로젝트를 할 수 있어서, 비용 부담없이 자유롭게 하고 싶은 것을 할 수 있어서 성장하기 시작하는 주니어 개발자들에게 많은 도움이 될 것 같은 프로그램이었습니다.
Cloud Canvas는 앞으로도 개발을 멈추지 않고, 변환한 Terraform코드로 바로 배포할 수 있는 기능도 구현하고, NCloud 의 AI도 도입하며 프로젝트를 계속 개발해 나갈 생각입니다.
https://www.ncloud.com/support/greenDevelopers
댓글