이번에 새로 시작하는 프로젝트에서는 로컬 DB가 아니라 웹 서버를 이용한 DB를 사용해 보고자(여러모로 편리할 것 같아서) AWS나 NCP 같은 클라우드 서비스를 찾아보다가..
NCP에서 micro 서버를 결제 수단 등록일 기준으로 1년간 무료 지원해준다고 해서 NCP에 입문하게 되었습니다.
우선 NCP 사이트에 들어갑니다. (당연히 로그인이 필요합니다.)
여기서 Services -> Server에 들어가 애플리케이션 서버를 생성할 수 있습니다.
VPC, Classic Platform 중에 뭘 골라야 할까?
Platform에서 Classic or VPC를 선택할 수 있는데, 각각의 장점은 다음과 같다고 합니다.
Classic 환경 장점
- 서로 다른 계정의 서버들 간 사설 통신이 가능하다.
- region간 서버들의 사설 통신 가능 (한국, 미국, 싱가포르, 홍콩, 일본, 독일)
- 다양한 설치형 서버 이미지 이용이 가능
VPC 환경 장점
- 논리적으로 분리된 network 이용이 가능
- 사용자가 직접 network 설계 가능
- 기존 고객의 데이터센터 네트워크와 유사한 구현이 가능
- 조금 더 상세하고, 높은 수준의 보안 설정이 가능
Classic 선택시 장점
- 구축하려는 서비스 규모가 작고, 네트워크 설정은 신경 쓰고 싶지 않은 경우
- region 서버 간의 사설 통신이 필요한 경우
- 다양한 설치형 서버 이미지가 필요한 경우
VPC 선택시 장점
- 네트워크의 세분화 및 서비스에 별도 사설 대역이 필요한 경우
- 서버, 네트워크 통신의 inbound, outbound traffic을 직접 통제하고 싶은 경우
- 좀 더 다양한 기능을 지원하는 상품을 이용하고자 하는 경우
여기서 VPC 개념 이해가 잘 안 돼서 조금 정리를 하고 이어가겠습니다.
일단 VPC에 앞서 VPN부터 정리해야 합니다.
VPN
- Virtual Private Network의 약자이며, 한국말로 "가상 사설망"을 의미한다.
- 따라서 실제 사설망이 아니라 가상의 사설망을 의미한다고 한다.
- 실제 사설망을 구축하려 하는 경우 회선을 다시 까는 등의 비용이 소비되는 반면, 가상 사설망은 논리적으로 네트워크를 분리하는 것이다. (보안상의 목적)
- 그러니까, VPN 사용 시 실제로는 같은 네트워크에 있어도 논리적으로 다른 네트워크에 속한 것처럼 동작한다고 한다.
VPC
- Virtual Private Cloud의 약자
- VPC는 VPN을 또 분리해서 사용하기 위한 개념이다.
- VPC가 없다면, 모든 인스턴스들(host가 아닐까)이 거미줄처럼 연결되고, 이에 따라 시스템의 복잡도가 증가한다.
- 이를 VPC를 적용해 VPC별로 독립된 네트워크를 구성하도록 할 수 있고, 각각의 VPC마다 네트워크 설정을 부여할 수 있게 된다.
정리는 해봤지만, 개념이 조금 낯설어서 차후에 세부적으로 공부해봐야 할 것 같습니다..
그래서 일단 다음 단계로 넘어갑니다.
저희가 구현하고자 하는 프로젝트는 이제 시작단계이고, 인원도 소규모로 구성되며 입문 단계임을 고려해 저는 Classic platform을 선택했습니다.
Micro 서버를 만들어보자.
Services 탭 -> Server 선택 이후에
이렇게 Classic platform을 선택하면, 서버 타입에서 Micro 서버를 선택할 수 있습니다. (VPC 선택 시에는 없다라고요..)
이미지는 아마 도커 이미지의 개념과 유사하게, 서버 설정 시 세팅할 환경의 종류를 고르는 것 같아서, OS 타입으로 선택하고 서버를 구축하는 용도로는 linux 기반의 centos를 많이 선택하는 것 같아 centos를 선택했습니다.
이다음으로는 ACG라는 것을 설정해야 하는데, 이게 또 중요합니다.
ACG 정리
- ACG는 서버 그룹에 대한 네트워크 접근을 제어, 관리할 수 있는 서비스이다.
- ACG를 사용하면, 고객이 개별적으로 방화벽을 구축할 필요 없이 ACG에 서버 그룹별로 방화벽 규칙을 설정해 인프라 보안 정책을 손쉽게 효율적으로 적용할 수 있다.
- 말이 어렵지만 정리하면, 외부의 인터넷 회선이나 내부의 다른 서버에서 해당 서버로 들어오는 inbound 트래픽에 대해서 IP 주소 + 포트 단위로 접근을 제어하는 방식이라고 합니다.
NCP의 각 계정에는 기본 ACG가 있습니다.
Default ACG를 선택하면
저는 일단 Classic에서 ACG 규칙 설정을 이어가겠습니다.
여기서 myIp 버튼을 눌러 자신의 IP를 접근 소스로 설정할 수 있고, 프로토콜(TCP/UDP/ICMP) 선택과 허용할 포트를 단일 포트 또는 범위를 지정해 추가할 수 있습니다.
저는 프로젝트 멤버들의 IP 주소를 추가해서 세팅해야 됩니다.
이렇게 ACG 규칙까지 설정하면 서버 설정이 완료됩니다!
더 자세한 규칙은 아래 ncloud guide 문서를 통해 확인하실 수 있습니다.
마치며
NCP가 네이버에서 운영하는 서비스이다 보니 문서화도 한글로 잘 되어있고, 또 구글링을 통해 다양한 정보를 손쉽게 획득할 수 있어, 개념을 얕게라도 이해하고 간단한 서버를 구축하는데 큰 어려움이 없던 것 같습니다.
앞으로 만든 서버를 활용해 프로젝트를 진행할 예정인데, 프로젝트를 진행하면서 관련되어 추가적으로 공부하는 사항들을 블로그에 기록하지 않을까 싶습니다.
참조한 글들
https://velog.io/@bbirds94/VPC-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC
https://league-cat.tistory.com/325
https://www.fin-ncloud.com/product/security/acg
https://docs.3rdeyesys.com/management/ncloud_management_classic_vs_vpc_guide.html
https://docs.3rdeyesys.com/security/ncloud_security_acg_guide.html
https://guide.ncloud-docs.com/docs/server-acg-classic
'TIL(Today I Learned)' 카테고리의 다른 글
[JAVA] java.util 패키지 정리 (0) | 2023.02.01 |
---|---|
[Java] java.lang 패키지 정리 (0) | 2023.01.31 |
@RequestParam vs @RequestBody vs @RequestPart 공부한 내용 정리 (0) | 2023.01.31 |
[Java] 예외 처리와 예외 발생과 관련된 개념 정리 (0) | 2023.01.12 |
JSON (JavaScript Object Notation) 개념 정리 (2) | 2022.07.30 |
댓글