초보자도 쉽게 따라 하는 AI 웹서비스 만들기 · 서버의 개념부터 인스턴스 생성까지

내 PC에서 프로그램이 잘 돌아가는데 왜 굳이 서버가 필요할까요? 처음 웹서비스를 만들 때 가장 자연스럽게 드는 질문입니다. 내 컴퓨터에서도 브라우저가 열리고 프로그램이 실행되니, 이것을 그대로 다른 사람에게 보여주면 될 것처럼 느껴집니다.

하지만 개인 PC는 내가 꺼버리면 서비스도 함께 멈춥니다. 외부에서 언제든 접속할 수 있는 웹서비스를 운영하려면 인터넷에 연결된 상태로 계속 실행되는 컴퓨터가 필요합니다. 이 역할을 하는 것이 서버입니다.

오늘의 목표

  • 서버가 무엇인지 초보자 관점에서 이해한다.
  • 로컬 PC와 서버의 차이를 이해한다.
  • AWS EC2의 ‘인스턴스’가 무엇인지 이해한다.
  • 서버를 만들 때 꼭 확인해야 할 항목을 안다.

01. 서버도 결국 컴퓨터다

‘서버’라는 말을 들으면 거대한 장비부터 떠올리기 쉽지만, 웹서비스를 처음 만들 때는 ‘인터넷에서 계속 켜져 있으면서 내 프로그램을 실행해주는 컴퓨터’라고 생각하면 이해가 쉽습니다.

AWS의 EC2에서는 이런 가상 서버 하나를 ‘인스턴스(instance)’라고 부릅니다. 운영체제, CPU와 메모리 크기, 저장공간, 네트워크 설정 등을 선택해 필요한 크기의 가상 컴퓨터를 만들어 사용하는 방식입니다.

02. 내 PC와 무엇이 다른가

  • 내 PC: 내가 켜놓은 동안만 동작하고, 집이나 사무실 네트워크 환경의 영향을 받는다.
  • 클라우드 서버: 데이터센터에서 운영되며 인터넷을 통해 외부 사용자가 접속할 수 있도록 구성할 수 있다.
  • 내 PC: 테스트와 개발에 편하다.
  • 클라우드 서버: 실제 서비스 운영과 외부 공개에 적합하다.

따라서 개발 과정은 보통 ‘내 PC에서 먼저 만들고 확인한 뒤, 완성된 프로그램을 서버로 옮겨 외부에 공개하는 흐름’으로 이해하면 됩니다.

03. AWS EC2에서 처음 보는 항목

AWS EC2에서 인스턴스를 생성하려고 하면 이름, AMI, 인스턴스 유형, 키 페어, 네트워크 설정, 스토리지 같은 항목이 나옵니다. 처음에는 모두 어려워 보이지만 역할을 하나씩 떼어보면 단순합니다.

  • 이름(Name): 내가 나중에 서버를 구분하기 위한 표시
  • AMI: 서버에 설치할 운영체제와 기본 환경의 템플릿
  • 인스턴스 유형: CPU와 메모리 등 서버 성능의 크기
  • 키 페어: 서버에 안전하게 접속할 때 사용하는 인증 수단
  • 네트워크/보안 그룹: 어떤 통신을 서버에 허용할지 정하는 방화벽 역할
  • 스토리지: 서버에서 파일과 데이터를 저장할 공간

04. 서버를 만든 뒤 가장 먼저 확인할 것

서버를 생성했다고 웹사이트가 바로 보이는 것은 아닙니다. 우선 인스턴스가 정상 실행 중인지 확인하고, 외부에서 접속할 공인 IP가 무엇인지 확인해야 합니다.

그다음 SSH 같은 방식으로 서버에 접속하고, 웹서버나 애플리케이션 실행 환경을 설치합니다. 어떤 기술 스택을 사용하는지에 따라 Python, Node.js, PHP, Nginx, Apache, 데이터베이스 등의 구성이 달라집니다.

초보자에게 중요한 것은 명령어를 무작정 외우는 것이 아니라 ‘지금 나는 서버 안에 무엇을 설치하고 있는가’를 이해하는 것입니다.

05. 포트와 보안 그룹을 왜 알아야 할까

서버는 모든 통신을 무조건 받아들이지 않습니다. 웹사이트 접속에 흔히 사용되는 HTTP 80번, HTTPS 443번 포트와 서버 관리에 사용되는 SSH 22번 포트 등이 대표적입니다.

AWS EC2에서는 보안 그룹을 통해 어떤 포트의 접속을 허용할지 관리합니다. 특히 SSH 22번 포트를 전 세계에 무제한 개방하는 것은 피하고, 가능한 범위에서 접속 원본을 제한하는 습관이 중요합니다.

06. 초보자가 알아야 할 비용 문제

클라우드 서버는 ‘만들어두기만 하면 공짜’라고 생각하면 위험합니다. AWS 공식 문서도 인스턴스가 실행 중이면 유휴 상태라도 요금이 발생할 수 있다고 안내합니다. 프리 티어 대상 여부와 사용량을 반드시 확인해야 합니다.

테스트용 서버를 만들었다면 더 이상 필요하지 않을 때 ‘중지’와 ‘종료(삭제)’의 차이도 확인해야 합니다. 저장공간이나 고정 IP 등 다른 리소스에 별도 비용이 발생할 수 있기 때문입니다.

07. AI와 함께 서버를 배우는 방법

서버 설정은 초보자에게 화면보다 터미널 명령어가 더 큰 장벽입니다. 이때 AI에게 단순히 ‘서버 만들어줘’라고 하기보다는 현재 환경을 정확히 알려주는 것이 중요합니다.

예: “AWS EC2에 Ubuntu 서버를 만들었습니다. Python 웹서비스를 배포하려고 합니다. 현재 서버에는 아무것도 설치하지 않았습니다. 초보자 기준으로 1단계씩 명령어와 확인 방법을 알려줘. 한 단계를 끝낸 뒤 다음 단계로 넘어가게 해줘.”

이 방식은 한 번에 수십 개의 명령어를 복사하는 것보다 안전합니다. 각 단계에서 실제 결과를 확인하면서 진행할 수 있기 때문입니다.

SUMMARY

  • 서버는 인터넷에서 내 프로그램을 계속 실행해주는 컴퓨터라고 이해하면 쉽다.
  • AWS EC2에서는 가상 서버를 인스턴스라고 부른다.
  • AMI, 인스턴스 유형, 키 페어, 보안 그룹, 스토리지는 각각 다른 역할을 한다.
  • 서버를 만들고 난 뒤에는 공인 IP와 접속 방법, 포트, 비용을 확인해야 한다.

ONE LINE TAKEAWAY

웹서비스를 만든다는 것은 코드를 만드는 것에서 끝나지 않는다. 그 코드를 계속 실행해줄 서버가 필요하다.

다음 글

BUILD #010 — 도메인과 서버 연결하기: A 레코드, 공인 IP, DNS 반영

참고 자료

  • Amazon Web Services — Amazon EC2 시작하기
  • Amazon Web Services — Launch an EC2 instance using the launch instance wizard