플럿 / AWS 구축 솔루션
안으로
교실의 학습 도구도, 사장님의 서류함도, 결제도 전부 여기 있습니다.
둘러보며
고장도 우리가 먼저 맞습니다. 그래서 무엇이 진짜 문제인지 압니다.
그리고
AI 시대의 미래
남의 인프라를 설계하기 전에 저희 것을 먼저 짓고 8년째 굴리고 있습니다. 아래는 이 글을 쓰는 시점에 저희 서버에서 직접 읽은 값입니다.
클라우드로 옮기는 일은 어렵지 않습니다. 어려운 것은 옮기는 동안 장사를 멈추지 않는 것입니다.그래서 «언제 끊기는지»부터 먼저 적어 드립니다
«언제 얼마나 끊기는지»를 못 적는 이전 계획은 계획이 아닙니다. 되돌릴 방법을 정해 두지 않은 이전은 더 그렇습니다.
«서버 3대»가 아니라 프로세스·포트·크론·인증서·외부 연동까지 하나씩 셉니다. 이전 사고는 대부분 «아무도 몰랐던 배치 작업»에서 납니다.
무중단으로 갈 수 있는 것과 몇 분은 반드시 멈춰야 하는 것을 나눕니다. «무중단입니다»라고만 말하는 쪽을 조심하셔야 합니다.
옮긴 뒤 문제가 생기면 옛 환경으로 돌아갈 수 있어야 합니다. 돌아갈 길이 없으면 그건 이전이 아니라 도박입니다.
먼저 통째로 한 번, 전환 직전에 바뀐 것만 한 번. 한 번에 옮기려 하면 그 시간만큼 장사를 멈춰야 합니다.
새 환경이 실제 트래픽을 받아 보는 시간을 둡니다. DNS 를 먼저 돌리면 문제를 발견할 때는 이미 손님이 겪은 뒤입니다.
운영 문서와 경보를 함께 넘깁니다. 처음 한 달은 같은 화면을 저희도 봅니다. «넘겼으니 끝»이 가장 많은 사고를 만듭니다.
학습용 인스턴스는 쓸 때만 켜고 끝나면 즉시 끕니다. 추론은 작은 것을 여러 개 두어 한 대가 멈춰도 서비스가 멈추지 않게 합니다.
GPU 요금은 «돌린 시간»이 아니라 «켜 둔 시간»으로 나옵니다.
비싼 GPU 가 데이터를 기다리며 노는 경우가 흔합니다. 저장소와 학습 노드를 같은 구역에 두고, 읽는 속도를 먼저 재 봅니다.
GPU 를 늘리기 전에 «지금 몇 퍼센트나 쓰고 있는지»부터 봅니다.
저렴한 중단형 인스턴스를 쓰려면 언제 꺼져도 이어 할 수 있어야 합니다. 학습 상태를 주기적으로 남기고, 다시 뜨면 그 지점부터 갑니다.
이 구조가 없으면 싼 인스턴스는 싼 게 아니라 위험한 것입니다.
어떤 데이터로 학습했고 무엇을 추론에 보냈는지 기록해 둡니다. 나중에 «왜 이런 답이 나왔나»를 되짚을 수 있어야 합니다.
개인정보가 섞여 들어가는 것을 막는 검사도 같은 자리에서 합니다.
크기마다 파일을 따로 만들어 쌓으면 저장 비용이 몇 배가 됩니다. 원본 한 벌만 두고 필요한 크기는 요청할 때 만들어 캐시에 둡니다.
한 번 만든 것은 다시 만들지 않습니다 — 그래서 첫 요청만 느립니다.
저장은 싸고 내보내는 것이 비쌉니다. 캐시를 앞에 두어 같은 이미지를 원본 저장소에서 반복해 꺼내지 않게 합니다.
이 구조 하나로 이미지 요금이 크게 줄어드는 경우가 많습니다.
1년 전 사진은 거의 열리지 않습니다. 열린 기록을 보고 저렴한 보관 등급으로 자동으로 내립니다. 지우지는 않습니다.
«언제 내릴지»는 지우는 규칙이 아니라 옮기는 규칙입니다.
이미지 주소가 공개되면 남의 사이트가 우리 요금으로 이미지를 씁니다. 서명된 주소와 호출 제한으로 막습니다.
이미지 요금이 갑자기 튀는 사고의 절반이 이것입니다.
한 대가 멈추면 마흔 개가 멈춥니다.
그래서 «어디까지 같이 죽는지»를 먼저 그립니다.
하나만 필요하시면 하나만 하셔도 됩니다. 묶어 파는 구성은 없습니다.
지금 쓰시는 환경을 그대로 옮기거나 처음부터 다시 설계합니다. 끊기는 시간을 숫자로 먼저 적고 시작합니다.
올려 두고 끝이 아니라 매일 도는 것을 대신 봐 드립니다. 복구는 실제로 해 봐야 백업입니다.
사진이 많은 서비스의 저장·변환·전송을 한 벌로 설계합니다. 저장보다 내보내는 쪽이 비쌉니다.
GPU 를 언제 켜고 언제 끌지까지가 설계입니다. 요금은 돌린 시간이 아니라 켜 둔 시간으로 나옵니다.
직접 두는 편이 나은지부터 계산합니다. 아니라고 나오면 아니라고 말씀드립니다.
결국 담당자분이 직접 하실 수 있게 넘겨드리는 것이 목표입니다. 계속 물어야만 돌아가는 구조는 잘 만든 것이 아닙니다.
저희가 실제로 자주 줄이는 항목입니다. 아래는 «어디를 보는지»를 보여 드리는 그림이며, 실제 절감폭은 환경마다 다릅니다. 진단 전에는 숫자를 약속드리지 않습니다.
복구 연습을 안 하면 백업은 «있다는 느낌»일 뿐입니다. 되살려 보기 전까지는 백업이 아닙니다.
자동 갱신을 걸어 두어도 갱신 실패를 아무도 안 봅니다. 갱신이 아니라 «실패 알림»을 확인해야 합니다.
웹서버 설정 폴더에 백업 파일을 두었다가 서버가 통째로 기동에 실패한 적이 있습니다.
지문을 만드는 «소금»을 옮기면 쌓아 둔 값이 전부 낯선 값이 됩니다. 재계산이 먼저입니다.
부르기 전에 먼저 기록하고, 답이 없으면 «모름»으로 남깁니다. 성공으로 치는 순간 돈이 샙니다.
서명된 주소와 호출 제한이 없으면 어느 날 갑자기 전송비가 뜁니다.
아닙니다. 저희는 AWS 를 비롯한 클라우드 위에 시스템을 설계·구축·운영하는 독립 개발사이고, 특정 사업자와 제휴 관계에 있지 않습니다. 파트너 등급이 필요한 일이라면 그 점을 먼저 말씀드리고, 필요하시면 다른 곳을 권해 드립니다.
환경을 보기 전에는 말씀드리지 않습니다. 대신 진단은 짧게 끝냅니다 — 지금 무엇이 돌고 있는지 목록으로 만들어 드리고, 거기서 «며칠·얼마»가 나옵니다. 진단 결과 «옮기지 않는 편이 낫다»면 그렇게 말씀드립니다.
대부분은 가능하지만 «전부 무중단»이라고는 말하지 않겠습니다. 데이터베이스를 넘기는 순간처럼 몇 분은 반드시 멈춰야 하는 구간이 있습니다. 그 시간을 미리 숫자로 적어 드리고 가장 한가한 시간에 맞춥니다.
그게 목표입니다. 계속 저희에게 물어야만 돌아가는 구조는 잘 만든 것이 아닙니다. 운영 문서와 경보를 함께 넘기고, 담당자분이 직접 해 보시는 자리를 만듭니다.
팀플럿도 작은 회사입니다. 그래서 큰 조직이 맡기 어려운 규모의 일을 합니다. 다만 24시간 상주 인력이 필요한 규모라면 솔직히 말씀드리고 맡지 않습니다. 감당 못 할 일을 맡는 것이 가장 큰 사고입니다.
AI 시대의 미래
옮길지 말지는 그 다음입니다. 세어 보고 «그냥 두는 게 낫다»고 나오면 그렇게 말씀드립니다.