- AWS에서 자체 서버로 이전해 월 인프라 비용을 10분의 1로 절감한 개발자의 경험담으로, 월 1,400달러에서 120달러로 줄이면서 더 강력한 서버 성능을 확보
- Hetzner 같은 업체에서 제공하는 베어메탈 서버는 80코어에 월 190달러 수준으로, AWS의 유사 사양 인스턴스 대비 7~18배 저렴
- 클라우드 엔지니어들이 자체 서버 운영을 반대하는 이유는 고용 안정성과 복잡한 인프라에 대한 의존성 때문이며, 실제 비용 부담은 고용주가 지기 때문
- 대부분의 소규모 비즈니스는 고가용성, 멀티존 복제, 자동 페일오버 같은 엔터프라이즈급 기능이 불필요하며, 단일 서버로도 일일 수백만 요청 처리 가능
- 서버 관리는 초기 설정 후 안정적으로 유지되며, AI 도구의 도움으로 리눅스 서버 운영 진입장벽이 역대 최저 수준임
클라우드 비용 절감 사례
- 최근 모든 프로젝트를 클라우드에서 이전해 월 AWS 비용 10배 절감 및 수천 달러 절약 달성
- 월 AWS 요금이 약 1,400달러에서 120달러 미만으로 감소
- 더 강력한 서버 인프라를 더 저렴한 비용으로 확보
- 성능은 2배 향상되었고 벤더 종속에서 자유로워짐
- 이 트윗이 바이럴되면서 두 가지 발견: 많은 개발자가 방법에 관심을 보였고, 다수는 이 아이디어에 강한 반감과 대립적 태도 표출
- 비즈니스 관점에서 비용 10배 절감, 성능 2배 향상, 벤더 종속 탈피라는 명백한 이득을 달성했으나 강한 반발에 직면함
클라우드 옹호자들의 이해관계
- 반대 의견을 낸 사람들 대부분이 프로필에 "devops", "cloud engineer", "serverless guy", "AWS certified" 등의 키워드 보유
- 이들은 자신의 프로젝트를 클라우드에서 운영하지 않으며, 클라우드 비용을 직접 부담하지 않음
- 고용주의 AWS 청구서에 무관심하며, 매달 수천 달러가 낭비되는 고통을 체감하지 못함
- AWS가 이들에게 편리한 이유
- 기술적으로 복잡해 보여 다른 개발자 앞에서 똑똑해 보이게 함
- 의존성과 종속 효과를 만들어 직원으로서 대체 불가능해짐
- 클라우드 사용이 높은 월급을 보장하므로 비즈니스를 위한 효율적 결정을 할 인센티브가 없음
- 오히려 비즈니스 인프라가 복잡하고 난해할수록 자신의 일자리가 안전해짐
- 이들은 서버가 실제로는 저렴하다는 진실을 말하지 않을 것
저렴한 서버 임대 옵션
- Hetzner로 이전 (제휴 없음, 단지 저렴한 서버 제공)
- 80코어 베어메탈 서버를 월 190달러 미만에 임대 가능
- AWS의 C5-C6 계열 유사 사양 인스턴스는 월 2,500~3,500달러로 13~18배 더 비쌈
- 예약 인스턴스로도 월 1,300달러 수준으로 여전히 7배 비싸며, 46,000달러 선불과 3년 계약 필요
- VPS 옵션도 매력적
- 48개 vCPU 머신을 월 300달러에 제공, 설정 수수료나 장기 계약 없이 완전한 유연성 보장
- 8코어, 32GB RAM 머신을 월 50달러에 제공, 일일 수백만 요청이 아니라면 모든 프로젝트를 동시에 실행 가능
서버 구매 및 데이터센터 활용
- 장기적으로는 서버 구매가 더 저렴
- 44 CPU, 256GB RAM, 2TB NVMe SSD를 갖춘 랙 마운트 서버를 1,000달러 미만에 구매 가능
- 월 클라우드 비용보다 저렴한 가격으로 앱을 수년간 운영 가능
- 데이터센터 랙 공간 임대 옵션
- 전기, 인터넷, 냉각, 보안을 제공하는 데이터센터 케이지 또는 공유 랙 공간 임대 가능
- DatacenterMap 같은 웹사이트로 지역 데이터센터 검색 가능
- 소규모 개발자에게는 지나치게 복잡
- 엔지니어 고용 필요, 가격 협상 등 번거로운 과정
- 주로 중대형 기업을 대상으로 하며, 소규모 팀에는 비실용적
- Hetzner 같은 업체에서 이미 마운트된 서버를 임대하는 것과 실질적으로 동일하며, 하드웨어 관리 부담을 덜어줌
"여전히 클라우드 아니냐"는 비판에 대한 반박
- 가장 흔한 비판: "그것도 여전히 클라우드 아니냐", "클라우드를 나간 게 아니라 클라우드 제공업체만 바꾼 것"
- 핵심 논점을 놓친 비판
- 중요한 것은 자체 서버 관리 vs 클라우드를 당연시하는 것 사이의 가치
- 작은 리눅스 머신을 운영해 RDS 같은 비용 소모적 관리형 서비스를 대체하면 10~100배 적은 비용 지불
- 대부분의 개발자는 서버를 두려워하며, 저렴하게 자체 서버를 설정할 수 있다는 약간의 격려만 필요
- 실제 세계에서는 거의 아무도 클라우드의 비싼 관리형 서비스가 필요 없으며, 몇 대의 리눅스 박스에서 일반 소프트웨어로 충분히 가능
- 명명 논쟁은 본질을 흐림
- VPS든, 베어메탈이든, 온프레미스든, 코로든 명칭은 중요하지 않음
- 서버를 어딘가에 두어야 하는 것은 사실이며, 중요한 것은 돈을 주머니에 더 많이 남겼는지 아니면 아마존 주주들에게 넘겼는지
- 이런 주장을 하는 사람들은 본질적으로 문지기(gatekeeper) 역할
- "제대로 하는 게 아니다, 스위치도 직접 구매하고, 랙도 직접 만들고, 이더넷 케이블도 직접 연결해야 한다"
- 독성이 있고 게으른 논증이며, 피상적 세부사항에 집착해 중심 논점을 회피하는 태도
클라우드 비용은 본질적으로 비쌈
- 클라우드 옹호자들의 가스라이팅 시도
- "클라우드를 잘못 사용하고 있다", "비싼 이유는 잘못 하고 있어서다", "클라우드 사용법을 알아야 한다"
- 이들은 대안을 실제로 시도해본 적이 없으며, 자신의 프로젝트를 위해 서버를 관리한 실제 경험이 없음
- 본인은 AWS에 익숙하며 AWS 자격증도 공부
- 인프라가 과다 프로비저닝되지 않았는지 확인
- 사용하지 않는 서비스에 대한 비용 지불 여부 확인
- AWS 비용 최적화에 수없이 많은 시간을 투자했으며, 월 5,000달러 이상이던 AWS 청구서를 절반 이상 줄이는 성공도 거둠
- 서버리스 컴퓨팅, 예약 인스턴스 등 모두 알고 있음
- 예약 인스턴스는 문제를 악화시킬 뿐: 벤더 종속을 만들고, 3년 계약으로 자신을 묶음
- 클라우드 이탈을 고려하는 상황에서 3년 계약은 최악의 선택
- 모든 시도 끝에 내린 결론: 클라우드는 단순히 너무 비쌈
반발의 원인
- 왜 이렇게 많은 사람들이 비용 절감에 대해 신경 쓰는가?
- 두 가지 주요 결론
- 생계가 달려 있음: 자신과 같은 사람들이 충분히 많은 사람을 설득하면 일자리를 잃을 수 있음
- 두려움으로 인한 비이성적 논쟁: 지난 10년간 클라우드 구축이 트렌드였고 수백만 명의 "devops"와 "cloud engineers" 직군 생성, 이제 클라우드를 벗어나는 것이 트렌드가 되면 많은 클라우드 전문가의 경력이 종료될 수 있음
- 많은 개발자가 클라우드가 초기 약속만큼 좋지 않다는 것을 은밀히 알고 있음
- 고용주의 AWS 지출이 적정 수준의 10배라는 것을 보면서도 "괜찮다"고 넘어감
- 관리자를 화나게 하거나 책임을 떠안을 위험을 감수하고 싶지 않음
- 팀에서 가장 목소리 큰 사람과 의견이 다를 때의 정치적 비용을 두려워함
- AWS는 강한 컬트적 추종 보유
- 인증을 통해 실제 판매 페이지와 제품 설명을 암기하도록 교육
- 실용주의 대신 교조주의를 주장하는 복음 전도자(evangelists) 보유
- 외부 세계에 대한 두려움 주입(서버는 위험하다! 확장되지 않는다!)
- "클라우드 엔지니어"를 정체성으로 만들고, 진입은 쉽게 하되 탈출은 어렵게 함
- 생계가 걸려 있기 때문에 AWS 추종자들은 교조에 사로잡혀 비이성적 논쟁을 반복
- AWS 판매 랜딩 페이지의 논점을 하나하나 반복하며, 실제로 필요한지 생각하지 않음
- 믿음 체계에 대한 논쟁이라 사람들이 비이성적으로 변함
클라우드의 역사
- 과거에는 모두가 자체 서버 운영
- VPS, 호스팅 서비스, 데이터센터의 베어메탈, 회사 내 어두운 방, 또는 집에서
- 모두가 머신에 SSH 접속하는 것에 익숙하고 편안했음
- 2010년대 초 클라우드 마케팅 사이옵스(psyops) 캠페인 시작
- 기업 기술을 초기 단계 스타트업에 판매하려는 의도적 움직임
- 가능한 한 일찍 종속시켜 자금 조달 시 착취하려는 전략
- AWS의 전략
- 스타트업 전용 크레딧 제공 시작
- 스타트업 액셀러레이터를 돌며 모든 스타트업을 온보딩하려 함
- 트릭은 간단: 스타트업이 인프라를 구축할 때 극도로 저렴하게(무료!) 만들고, 성장하면 모든 것을 극도로 비싸게 만들어, 종속되어 생태계 탈출이 어려운 상황을 즐김
- IBM 클라우드도 유사한 전략 (2014년 이벤트)
- 당시 Heroku에서 모든 것을 운영 중이었고 잘 작동했음
- "이 모든 클라우드가 무엇이고 어떻게 사용하나?"라는 의문
- 자신들을 위해 설계되지 않은 것을 판매하려는 느낌
- 이들 기업이 지난 수년간 수백만 달러를 클라우드 홍보 캠페인에 투입해 초기 스타트업을 엔터프라이즈 기술 채택으로 유도
- 지난 10년간의 제로 금리가 현재 상태에 도달하는 데 기여
- 현재 반문화 운동 존재
- 주로 @dhh와 Rails 커뮤니티가 주도
- 지구상 대부분의 소프트웨어 비즈니스 현실과 근본적으로 신선하고 올바르며 일치
대부분의 비즈니스는 클라우드가 불필요
- 일부는 실제 소프트웨어 비즈니스가 어떤 모습인지 완전히 동떨어진 인식
- Fortune 500 관점으로 생각하며, 엔터프라이즈가 표준이라고 믿음
- 평균 비즈니스에 고가용성, 멀티존 복제, 자동 페일오버, 분산 Kubernetes 클러스터 등 클라우드의 모든 기능이 필요하다고 생각
- 실제로는 극소수의 소프트웨어 비즈니스만 이런 것이 필요
- 대부분의 비즈니스는 멱함수 법칙에 따라 항상 소규모일 것
- 미국에서는 소규모 비즈니스가 전체 비즈니스의 99.9% 차지
- 유럽연합에서는 SME(직원 250명 미만)가 전체 비즈니스의 99%를 차지
- 대부분의 개발자가 확장 요구사항을 과대평가
- "높은 트래픽"에 대한 기준이 너무 낮음
- 참고 지점: 현재 2서버 설정으로 일일 수백만 건의 요청을 수백만 월간 방문자에게 처리
- @levelsio 같은 인디 메이커는 모든 것을 단일 서버로 처리
- 대부분의 개발자는 실제 사용자와 프로덕션 트래픽을 가진 자신의 프로젝트를 단일 서버에서 운영해본 적이 없음
- 기술적 요구사항도 과대평가
- 극소수의 소프트웨어 비즈니스만 이런 기능이 필요하며, 보통 기술적 결정에 대한 충분한 이유 보유
- Netflix 같은 경우: 전 세계 고객에게 엄청난 양의 비디오를 트랜스코딩하고 스트리밍해야 하므로 분산 시스템, CDN, 엣지 컴퓨팅이 필요
- 천 명의 사용자를 가진 작은 앱이 JSON 객체만 주고받는다면 그런 것이 절대 불필요
- 많은 개발자가 자신의 프로젝트를 Netflix처럼 생각하는 마법적 개념 보유
- 희망적 사고이며 이해는 하지만, 잘못된 기술적 결정으로 이어짐
- 버튼을 탭할 때 몇 밀리초 지연 차이를 사용자가 알아챌 것이라 생각해 전 세계에 분산 서버가 필요하다고 믿음
서버는 괜찮을 것
- 많은 사람이 데이터센터 작동 방식에 대해 마법적 생각 보유
- 데이터센터의 서버가 취약하고 변동성이 크며 공중으로 사라질 수 있다고 생각
- 심지어 번개가 전체 데이터센터를 무너뜨릴 수 있다고 생각하는 사람도 있음
- 현대 데이터센터는 이미 모든 문제를 고려하고 많은 보호 장치 구비
- 번개 같은 평범한 것뿐 아니라 가동 시간을 위협할 수 있는 거의 모든 것에 대한 보호
- 중복 전원, 중복 냉각, 중복 인터넷 연결, 중복 소화 시스템, 중복 보안 시스템과 많은 물리적 보안
- 데이터센터의 모든 것은 가동 시간을 보장하기 위해 복원력과 중복성(최소 N+1, 때로는 2N)을 염두에 두고 설계
- 이는 주로 두려움 기반 의견이며, 성공적인 클라우드 마케팅과 사이옵스 캠페인의 결과
- AWS는 어디에 머신을 저장하는가? 무지개 아래 마법 장소?
- 어떻게 AWS 머신만 다른 데이터센터도 가진 문제로부터 마법처럼 보호되는가?
- 재난 발생 가능(OVH 2021 화재)하나 복구를 위한 백업 필요
- 약 15년간 서버를 운영한 경험상 드물며, 몇 분 이상의 다운타임을 경험한 적 없음
서버 관리는 풀타임 작업이 아님
- 충분히 오래 서버를 관리한 사람은 초기 설정에 대부분의 시간을 소비하며, 이후 서버는 비교적 안정적임을 알고 있음
- 하드웨어 장애는 비교적 드물며, 서버가 가동되면 보통 수년간 큰 개입 없이 완벽하게 작동
- 자체 서버 관리는 풀타임 작업이 아님
- 5명의 devops 팀 고용 불필요
- 서버 담당자 고용도 불필요: 직접 할 수 있으며 그렇게 어렵지 않음
- Claude와 ChatGPT가 리눅스 시스템과 관리 방법에 대한 좋은 이해 보유, 도움 요청 가능
- 트윗 게시 후 사람들은 이것이 첫 서버 운영이라 생각하고 서버 운영의 실제 의미에 대해 지나치게 낙관적이라고 주장
- 2006년부터 서버 관리 경험 보유
- PHP 스크립트 편집 및 FTP 서버 업로드로 시작
- WordPress 설치 방법 학습, WP 템플릿 편집 후 모든 것이 뒤따름
- 귀중한 경험이었으며 기초를 가르쳐줌
- 리눅스가 무엇인지, 탐색 방법 학습
- 2007년까지 Canonical에 Ubuntu CD-ROM 요청해 우편으로 받아 부모님 컴퓨터 파티션에 설치해 리눅스 학습
- 이러한 초기 경험이 웹 개발의 기초를 가르쳐줌, 다른 모든 것은 그 위에 구축됨
리눅스 학습의 중요성
- 신세대 개발자(Z세대, 알파세대)가 소프트웨어를 실행하는 하드웨어와 완전히 단절
- 이러한 종류의 기초 경험 부족
- YouTube의 무작위 사람이 특정 벤더를 홍보하고 모든 인프라 문제를 마법처럼 해결하는 특정 명령 실행을 가르치는 시대에 태어남
- 서버가 무엇이고 어떻게 작동하는지에 대한 마법적 가정 보유가 합리적
- "서버리스"로 일을 할 수 있다고 주장하지만 여러 다른 박스에서 코드를 실행하고 있다는 사실을 깨닫지 못함
- 물론 많은 이들이 리눅스와 서버에 대해 더 배우지만, 평균적인 부트캠프 졸업생은 20년 전 FTP 해커들이 가졌을 실습 리눅스 경험 부족
- 이에 대한 도덕적 판단은 하지 않음, 좋고 나쁨을 따지지 않음 – 현재 웹 개발의 상태일 뿐
- 결과는 Vercel 같은 회사가 자신이 무엇을 하는지 모르고 평생 서버를 운영해본 적 없는 신세대 개발자를 자본화해 수백만 달러 벌고 있음
- 무지는 이중 대가: 무지 자체와 사람들이 그 무지를 이용하는 데 지불하는 대가
- 사물이 어떻게 작동하는지 모르면 실제로 돈이 듦
지금은 서버를 배우기에 최적의 시기
- 자체 서버를 관리한 적이 없고 백엔드 냄새가 나는 모든 것이 두렵더라도 괜찮을 것
- 실제로 서버를 잘 다루기에 이보다 좋은 시기는 없었음
- Claude와 ChatGPT 모두 리눅스에 대해 매우 잘 알고 있으며, 기술 역사상 전례 없는 방식으로 단계 안내 가능
- 설정 방법과 작동 원리 이해뿐 아니라, 변경이 필요할 때 누구도 고용할 필요 없이 질문하고 단계를 따를 수 있음
- 그렇게 무섭지 않으며, 그렇게 자주 할 필요도 없음
- 코드 생성이 표준이고 코드가 상품이 될 수 있는 AI 시대에, 그 코드를 저렴한 프로덕션 서버에 배치하고 실제로 최종 사용자에게 유용하게 만드는 방법을 아는 것이 개발자로서 핵심 차별화 요소가 될 수 있음
- 보안 같은 것에 대해 걱정해야 하는 것은 사실
- EC2 인스턴스는 해커로부터 마법처럼 보호된다는 듯이 자체 서버 운영이 AWS 서버 운영보다 덜 안전하다는 주장은 무시할 것,
- 실제로는 올바르게 설정하는 것이 그렇게 어렵지 않음, 가이드와 설정 스크립트 참조만 하면
- 많은 개발자가 더 경험이 많지만 AI를 갖춘 당신보다 훨씬 더 나쁘게 프로덕션에서 일하고 있음
- ChatGPT에게 리눅스 서버 강화 방법과 보안 모범 사례(비밀번호 인증 사용 안 함, 강력한 SSH 키만 사용) 따르는 법을 물어보면 90% 완료
- Cloudflare로 추가 보호 계층 제공
- 리눅스 박스를 잠근 후 모든 것 위에 Cloudflare 실행
- DNS에서 서버 IP를 프록시해 노출하지 않으면 완벽
- DDoS 보호, 엣지 캐싱, 최고급 DNS를 본질적으로 무료로 제공