-
5일 간의 홈서버 구축기 💻 🛠️ 프롬프트 공유프롬프트 엔지니어링 2024. 9. 16. 14:00반응형
홈서버를 구축하게 된 계기는 뜻밖의 문제에서 시작되었습니다. AWS 프리티어로 서버를 운영하던 중, 예상치 못한 API 차단 이슈로 인해 앱이 멈춰버린 것입니다.
작동하지 않는 앱을 방치한 상황에서 우연히 미국에 있는 친구의 홈서버로 해결책을 찾았고, 그 경험이 저에게 직접 홈서버를 만들어야겠다는 결심을 안겨주었습니다.
이 글에서는 중고 컴퓨터를 구매해 홈서버를 구축하게 된 과정과 서버 스펙 선택, 구축 절차 등을 공유하고자 합니다. 홈서버를 처음 도전하려는 분들에게 유익한 팁을 전해드립니다.
서버용 컴퓨터 스펙(중고)
스친이 추천한 사양을 참고해 중고 10만원에 RAM 16GB / i7 / 1TB HDD 로 구매했습니다.
- 스친이 추천한 사양: 중고 17만원에 RAM 32GB / i7 / 128 SSD
이렇게 장비 구입을 시작으로 홈서버를 5일간 작업했습니다:
- Day 1: 서버용 컴퓨터 구입 (10만원)
- Day 2: 필요한 케이블 주문, Claude랑 서버 어떻게 구축하고, 앱 마이그레이션할지 전체적인 프로세스 구상.
- Day 3: 우분투 설치, SSH 보안 접속, 도메인 & 공유기 설정
- Day 4: Nginx & Gunicorn 구성(삽질), Flask 앱 소스 코드 준비
- Day 5: 테스트 및 로깅 구현, 요약해줘 앱 수정, 앱 심사 제출, 배포 완료
전부 Claude와 같이 작업했습니다.
Claude와 모든 걸 함께 했기 때문에, 홈서버를 어떻게 만들었는지 기술적인 부분에서 설명하는 글보다, Claude를 어떻게 활용한 건지만 자세히 얘기해보겠습니다.
홈서버 구축을 위한 Claude 활용법
Claude와 대화를 통해 서버 구축 및 마이그레이션 과정에 대한 구체적인 계획을 세웠습니다.
나:
현재 상황:
* AWS에 Python Flask 앱이 실행되고 있음
* 집에 내 개인 서버를 세팅하기 위해 Intel i7 데스크탑을 구입함
* AWS에서 운용 중인 서비스를 내 개인 서버로 옮기는 작업을 해야 함
내가 홈서버를 세팅할 수 있도록 도와줘.Claude:
홈 서버를 세팅하고 AWS에서 운영 중인 서비스를 옮기는 과정을 도와드리겠습니다.
다음과 같은 단계별 계획을 제안드립니다:
1. 홈 서버 준비
2. 서비스 마이그레이션
3. 도메인 전환
4. 테스트 및 최적화
5. AWS 서비스 종료이전에 서버를 구축한 경험이 없기 때문에 꼬리에 꼬리를 물고 질문을 계속 했습니다.
- 구축 과정에 대한 궁금한 점
- 어떤 기술이 있는지
- 어떤 방식을 채택할 것인지
어느 정도 스펙과 구축 과정이 정립되었을 때, Claude Project 기능으로 홈서버 구축 전용 대화방을 만들기 위해 프롬프트를 요청했습니다.
나:
지금까지의 대화를 종합해서, 내 상황을 포함한 프롬프트를 작성해줘.
앞으로 Ubuntu 세팅과 Flask 앱 서버를 구축할거야.
보안이 좋은 서버로 만들어야 하고, 다수의 개인 프로젝트를 운영할 수 있도록 만들어나갈거야.Claude:
네, 지금까지의 대화를 종합하여 귀하의 상황에 맞는 프롬프트를 작성해 드리겠습니다.
[프롬프트 하단에 첨부]
이 프롬프트는 귀하의 현재 상황, 목표, 그리고 고려해야 할 주요 사항들을 포괄적으로 다루고 있습니다. 이를 바탕으로 Ubuntu 서버 설치부터 Flask 앱 배포, 보안 설정, 그리고 다중 프로젝트 호스팅까지 단계별로 진행할 수 있습니다.
이 프롬프트를 사용하면, 각 단계에 대한 구체적인 가이드와 조언을 얻을 수 있을 것입니다.이렇게 Claude가 만들어 준 프롬프트를 Project의 instruction에 붙여 넣습니다.
이제 이 프로젝트로 대화를 시작하면, 기본적인 배경이 되는 상황에 대해 자꾸 알려줄 필요가 없습니다.
그리고 단계별로 진전이 있을 때마다, 프롬프트 업데이트를 요청합니다.
"지금까지의 완료 상황을 최초의 프롬프트에 반영해서 다시 작성해줘"
이렇게 요청하면 업데이트된 프롬프트를 작성할 수 있습니다.
홈서버 구축 프롬프트 최초 버전 공유
Claude가 만들어 주는 프롬프트는 아래와 같은 형식입니다.
홈 서버 구축 및 Flask 앱 배포 프로젝트
현재 상황
AWS에서 Python Flask 앱을 운영 중
Intel i7 데스크탑을 구매하여 홈 서버로 사용 예정
현재 도메인: www.api.blahblah.com 변경 예정 도메인: www.api.foobar.co.kr
GitHub private 저장소로 프로젝트 형상 관리 중
목표
Ubuntu 기반의 안전하고 효율적인 홈 서버 구축
Flask 앱을 홈 서버로 마이그레이션
다수의 개인 프로젝트를 위한 확장 가능한 환경 조성
GitHub Actions를 활용한 자동화된 배포 파이프라인 구축
높은 수준의 보안 유지
주요 고려사항
Ubuntu 서버 설치 및 초기 설정
네트워크 설정 (포트 포워딩, 방화벽 등)
SSH 보안 강화 (포트 변경, 키 기반 인증 등)
Flask 앱 구동을 위한 환경 설정 (uWSGI, Nginx 등)
SSL/TLS 인증서 설정 (Let's Encrypt)
데이터베이스 마이그레이션 및 설정 백업 및 복구 전략
모니터링 및 로깅 시스템 구축
다중 프로젝트 호스팅을 위한 가상 환경 또는 컨테이너 사용 고려
GitHub Actions 워크플로우 설정 도메인 전환 계획 (DNS 설정, 리다이렉션 등)
단계별 가이드 요청
각 단계에 대한 상세한 가이드와 모범 사례, 주의사항, 그리고 문제 해결 팁을 제공해 주세요. 특히 보안과 확장성에 중점을 두어 설명해 주시기 바랍니다.
추가 정보
개발 환경: Mac 사용
네트워크 환경: 가정용 WiFi 공유기 사용
기술 스택: Python, Flask, Git
보안 요구사항: 홈 서버만 외부 접근 허용, 다른 개인 기기는 보호 필요
이 프로젝트를 통해 안전하고 효율적인 홈 서버 환경을 구축하고, 클라우드 서비스에 의존하지 않고 개인 프로젝트를 자유롭게 운영할 수 있기를 기대합니다.이렇게 어렵지 않은 수준은 생성형 AI와 금방 만들 수 있습니다.
저는 지금까지 ChatGPT와 Flutter 앱을 만들어 출시했고, Claude와 웹페이지를 만들어 배포했습니다.
그리고 이번엔 간단한 수준이지만 홈서버를 구축해 운용하게 됐습니다. 정말로 1인 개발자로 쉽게 서비스 개발해서 내놓을 수 있는 세상입니다.
반응형'프롬프트 엔지니어링' 카테고리의 다른 글
Claude 프롬프트 캐싱 알아보기 (0) 2024.08.21 최고의 프롬프트 엔지니어링 강의를 내 프롬프트에 적용하기 (0) 2024.08.14 - 스친이 추천한 사양: 중고 17만원에 RAM 32GB / i7 / 128 SSD