[weekly] [nb] 버전 관리 및 협업하기(1)
백엔드 개발에서 CLI 명령어를 주로 활용하는 이유에 대해 설명해 주세요.
CLI 명령어를 주로 활용하는 이유는 곧 왜 CLI 환경 위주 로 사용하기 때문이라고 생각한다.
CLI vs GUI
남는 컴퓨터에 Ubuntu Linux Server 를 설치해보면서 차이점을 정리해보았다.
생각보다 차이가 많이 나서 놀랬다.
스토리지 사용량 비교
항목 | Ubuntu Server(CLI) | Ubuntu Desktop(GUI) |
---|---|---|
기본 설치 용량 | 약 1~2GB | 약 6~10GB |
기본 설치 기준 으로 최소 5GB, 최대 8GB 이상의 차이가 발생한다.
메모리 사용량 비교
항목 | Ubuntu Server(CLI) | Ubuntu Desktop(GUI) |
---|---|---|
부팅 직후 | 50~150MB | 500MB~1.2GB |
기본 설치 상태 기준 으로 최소 400MB, 최대 1GB 이상 차이가 날 수 있다.
보안
항목 | CLI | GUI | 설명 |
---|---|---|---|
공격 표면 | 좁음 | 넓음 | GUI 데스크탑 환경을 이루는 서비스가 많아 공격 가능한 지점이 증가 |
불필요한 네트워크 서비스 | 가능성 있음 | 최소화 됨 | GUI 앱이 백그라운드로 동작할 수 있음 |
업데이트 및 패치 관리 | 복잡함 | 명확함 | GUI 앱 수 만큼 늘어남 |
로그 추적 | GUI 앱 로그도 추적 | syslog 및 ssh 등 핵심 로그만 추적 | GUI 앱에서 충돌이 났는지도 확인해야 할 수 있음. |
원격 접속 | VNC,RDP는 보안 위험 존재 | SSH 중심으로 통신 | VNC/RDP는 암호화가 미흡할 수 있음 |
결국, 유지비가 줄어들기 때문
AWS EC2 요금제 정책
AWS EC2 인스턴스 요금은 아래와 같다.
인스턴스 타입 | vCPU | 메모리(RAM) | 시간당 요금(USD) | 용도 |
---|---|---|---|---|
t3.nano | 2 | 0.5GB | $0.0052 | 저사양 서버, 테스트 |
t3.micro | 2 | 1GB | $0.0104 | 소형 웹 서버 |
t3.small | 2 | 2GB | $0.0208 | 간단한 백엔드 |
t3.medium | 2 | 4GB | $0.0416 | 중소형 애플리케이션 |
t3.larger | 2 | 8GB | $0.0832 | 데이터 처리, 트래픽 대응 |
m7g.medium | 1 | 4GB | $0.0342 | ARM 기반, 효율적 비용 구조 |
CLI 사용 시 비용 절감 기대표
항목 | CLI | GUI |
---|---|---|
메모리 | 0.5~1GB 충분 | 최소 1~2GB 이상 |
스토리지 | 1~2GB | 8~10GB 이상 |
최소 인스턴스 스펙 | t3.nano 또는 t3.micro | t3.small 이상 |
시간당 비용 | $0.005~$0.01 | $0.02 이상 |
스냅샷/백업 크기 | 작음 | 큼 |
유지비 차이(한 달 기준, 24시간 x 30일)
구성 | 인스턴스 타입 | 시간당 비용 | 월간 비용(USD) |
---|---|---|---|
CLI | t3.small | $0.0208 | 약 $14.98 |
GUI | t3.nano | $0.0052 | 약 $3.74 |
약 75% 비용 절감 가능!
75% 비용 절감이면 어떤 느낌인지 감이 잘 안 올 수도 있다.
내가 어떤 앱을 만들었을 때, 원래 월 10만원이 들어가는 유지비가 월 2만 5000원만 드는 것이다.
일 년이면 90만원을 절약하는 효과가 있다.
90 만원이면 피자를 30판이나 주문해서 먹을 수 있다. 즉 2주에 한번 피자를 주문하고 특별한 달은 추가로 피자를 주문해도 충분할 정도다.
단순 개인 기준으로도 삶의 질이 바뀌는 것이다.
만약 이게 회사 기준이라고 생각해보면, 이 정도 수준으로 절약된다는 것은 엄청난 일이다.