https://chatgpt.com/s/m_6a79e499184c81918e03bf0e18b5aa03
클라우드 서버를 직접 만들어보고 싶지만 서버 운영이 어렵게 느껴지는 분들이 많습니다. 예전에는 서버를 구축하려면 별도의 장비를 구입하고 운영체제를 설치해야 했지만, 클라우드 서비스를 이용하면 인터넷을 통해 필요한 서버를 비교적 간단하게 만들 수 있습니다.
대표적인 클라우드 서비스로는 AWS, Google Cloud, 네이버클라우드 등이 있으며, 그중 AWS의 EC2는 초보자가 리눅스 서버를 공부하거나 웹사이트를 테스트할 때 많이 활용되는 서비스입니다.
이번 글에서는 AWS EC2를 이용해 리눅스 서버를 생성하고 SSH로 접속하는 기본 과정을 단계별로 알아보겠습니다.
단, 여기서 말하는 '무료 구축'은 AWS의 프리 티어 또는 무료 혜택 범위 안에서 사용하는 경우를 의미합니다. AWS 무료 혜택은 계정 생성 시점과 서비스별 사용 조건에 따라 달라질 수 있으므로 서버를 만들기 전에 현재 요금과 무료 사용량을 반드시 확인해야 합니다. AWS 공식 문서에서도 계정 생성 시점에 따라 EC2 프리 티어 혜택이 달라진다고 안내하고 있습니다.
1. AWS EC2란 무엇인가?
EC2는 Amazon Elastic Compute Cloud의 약자로, AWS에서 제공하는 가상 서버 서비스입니다.
쉽게 설명하면 인터넷을 통해 사용할 수 있는 나만의 컴퓨터를 클라우드에서 빌리는 것과 비슷합니다.
EC2에서는 리눅스나 윈도우 등의 운영체제를 선택하고 CPU, 메모리, 저장공간 등의 서버 환경을 구성할 수 있습니다.
웹사이트를 운영하거나 프로그램을 테스트하고, 데이터베이스 서버를 구축하는 등 다양한 용도로 사용할 수 있습니다.
특히 리눅스 서버를 처음 공부하는 사람이라면 EC2를 이용해 실제 서버 환경을 경험해볼 수 있다는 장점이 있습니다.
2. AWS 계정 준비하기
EC2를 사용하려면 먼저 AWS 계정이 필요합니다.
AWS 공식 홈페이지에서 계정을 생성한 뒤 로그인하면 AWS Management Console을 이용할 수 있습니다.
계정 생성 과정에서는 결제 수단 등록이나 본인 확인 등의 절차가 진행될 수 있습니다.
중요한 점은 무료 혜택이 있다고 해서 모든 AWS 서비스가 무조건 무료인 것은 아니라는 것입니다.
무료 혜택의 대상, 기간, 사용량을 벗어나면 비용이 발생할 수 있으므로 사용 전에 현재 무료 사용 조건을 확인하는 것이 좋습니다.
3. EC2 서비스로 이동하기
AWS 콘솔에 로그인한 후 검색창에서 EC2를 검색합니다.
EC2 대시보드로 이동하면 현재 운영 중인 인스턴스와 관련된 정보를 확인할 수 있습니다.
여기서 인스턴스란 쉽게 말해 클라우드에서 생성한 가상 서버를 의미합니다.
AWS 공식 문서에서도 EC2 인스턴스를 AWS 클라우드에서 실행하는 가상 서버라고 설명합니다.
4. 새로운 인스턴스 생성하기
EC2 화면에서 인스턴스 시작(Launch instance) 메뉴를 선택합니다.
먼저 서버 이름을 입력합니다.
예를 들어 다음과 같이 지정할 수 있습니다.
my-linux-server
이름은 서버를 구분하기 위한 용도이므로 자신이 알아보기 쉬운 이름을 사용하면 됩니다.
5. 리눅스 운영체제 선택하기
다음으로 AMI를 선택합니다.
AMI는 EC2 인스턴스를 만들 때 사용하는 운영체제와 기본 소프트웨어가 포함된 이미지라고 생각하면 이해하기 쉽습니다.
처음 서버를 구축한다면 Amazon Linux 또는 Ubuntu와 같은 익숙한 리눅스 배포판을 선택할 수 있습니다.
이번 글에서는 Ubuntu를 예로 들어 설명하겠습니다.
Ubuntu를 선택할 경우 SSH 접속에 사용하는 기본 사용자 이름은 일반적으로 ubuntu입니다. AWS 공식 문서에서도 Ubuntu AMI의 기본 사용자 이름을 ubuntu로 안내하고 있습니다.
6. 인스턴스 유형 선택하기
다음은 인스턴스 유형을 선택하는 단계입니다.
인스턴스 유형은 서버의 CPU와 메모리 등 컴퓨팅 자원을 결정합니다.
테스트나 학습 목적으로 서버를 만드는 경우에는 현재 AWS 콘솔에서 Free Tier eligible로 표시되는 유형이 있는지 확인하는 것이 좋습니다.
다만 무료 사용 가능 여부는 AWS 계정 생성 시점과 현재 제공되는 무료 혜택에 따라 달라질 수 있습니다.
따라서 특정 인스턴스 유형이 항상 무료라고 생각해서는 안 됩니다.
AWS 공식 문서에서도 프리 티어 대상 인스턴스와 무료 사용 조건을 확인하도록 안내하고 있습니다.
7. SSH 키 페어 만들기
리눅스 서버에 원격으로 접속하려면 인증 방법이 필요합니다.
EC2에서는 키 페어를 이용해 SSH 접속을 할 수 있습니다.
처음 사용하는 경우 Create new key pair를 선택합니다.
키 이름을 입력하고 키 유형과 파일 형식을 선택한 뒤 키를 생성합니다.
그러면 개인키 파일이 컴퓨터로 다운로드됩니다.
이 파일은 매우 중요합니다.
AWS는 개인키의 복사본을 보관하지 않기 때문에 생성할 때 다운로드한 개인키를 안전하게 보관해야 합니다. 개인키를 잃어버리면 해당 키를 사용하는 인스턴스에 일반적인 SSH 방식으로 접속하기 어려울 수 있습니다.
따라서 개인키 파일을 다른 사람에게 보내거나 공개 저장소에 업로드해서는 안 됩니다.
8. 네트워크와 보안 그룹 설정하기
EC2를 만들 때 보안 그룹을 설정해야 합니다.
보안 그룹은 서버로 들어오는 네트워크 연결을 제어하는 일종의 가상 방화벽입니다.
리눅스 서버에 SSH로 접속하려면 일반적으로 SSH 포트인 22번에 대한 인바운드 규칙이 필요합니다.
학습용 서버라 하더라도 가능하면 SSH 접속을 내 IP 주소에서만 허용하는 것이 좋습니다.
예를 들어 AWS 콘솔에서 SSH의 소스를 My IP로 지정하면 현재 사용 중인 IP를 기준으로 접근 범위를 제한할 수 있습니다.
AWS 공식 문서에서도 SSH 접근을 전체 인터넷인 0.0.0.0/0으로 열어두는 것은 운영 환경에서 안전하지 않으며, 필요한 IP 주소 또는 IP 범위만 허용하는 것을 권장합니다.
9. 스토리지 설정하기
다음은 서버의 저장공간을 설정하는 단계입니다.
테스트용 리눅스 서버라면 기본으로 제공되는 루트 볼륨으로 시작할 수 있습니다.
처음부터 큰 저장공간을 추가하기보다는 실제로 필요한 만큼만 설정하는 것이 좋습니다.
저장공간 역시 AWS 요금에 영향을 줄 수 있기 때문에 무료 사용 조건을 확인하면서 설정해야 합니다.
10. EC2 인스턴스 시작하기
설정을 모두 확인했다면 Launch instance 버튼을 눌러 서버를 생성합니다.
잠시 기다리면 인스턴스 상태가 pending에서 running으로 변경됩니다.
또한 상태 검사가 정상적으로 완료되어야 원격 접속을 진행하기 좋습니다.
AWS 공식 튜토리얼에서도 인스턴스를 생성한 후 상태가 running으로 변경되고 상태 검사를 통과하면 연결을 진행하도록 설명합니다.
11. 리눅스 서버에 SSH 접속하기
인스턴스가 실행되었다면 EC2 콘솔에서 해당 인스턴스를 선택하고 Connect 메뉴로 이동합니다.
SSH 클라이언트 연결 정보를 확인할 수 있습니다.
Ubuntu 서버라면 다음과 비슷한 형태의 명령어를 사용할 수 있습니다.
ssh -i "my-key.pem" ubuntu@서버의공인IP
여기서 my-key.pem은 다운로드한 개인키 파일 이름으로 변경해야 합니다.
서버의공인IP 역시 실제 EC2 인스턴스에 할당된 공인 IP 주소로 바꿔야 합니다.
Linux나 macOS에서 개인키 권한 문제로 접속이 되지 않는다면 다음 명령을 사용할 수 있습니다.
chmod 400 my-key.pem
AWS 공식 튜토리얼에서도 Linux와 macOS 환경에서 SSH 개인키 파일의 권한을 제한하는 방법으로 chmod 400을 안내합니다.
12. 서버에 접속한 뒤 가장 먼저 할 일
SSH 접속에 성공하면 이제 클라우드에서 만든 나만의 리눅스 서버를 사용할 수 있습니다.
Ubuntu 서버라면 다음 명령으로 패키지 목록을 업데이트할 수 있습니다.
sudo apt update
설치된 패키지를 업데이트하려면 다음과 같이 사용할 수 있습니다.
sudo apt upgrade
처음 서버를 만들었다면 운영체제 업데이트를 확인하고, 이후 필요한 웹서버나 데이터베이스 등을 설치하는 방식으로 서버를 구성할 수 있습니다.
예를 들어 다음 단계에서는 Nginx를 설치하여 간단한 웹서버를 만들 수도 있습니다.
13. EC2 서버를 사용하지 않을 때 주의하기
초보자가 AWS를 사용할 때 가장 주의해야 할 부분은 바로 비용입니다.
'무료 서버'라고 생각하고 인스턴스를 계속 실행해 놓으면 무료 혜택의 범위를 초과하거나 다른 유료 리소스가 발생할 수 있습니다.
특히 서버를 테스트하기 위해 잠시 만든 것이라면 사용이 끝난 뒤 인스턴스를 중지하거나 필요하지 않은 경우 종료하는 습관을 들이는 것이 좋습니다.
다만 중지한다고 모든 관련 비용이 반드시 없어지는 것은 아닙니다. 연결된 스토리지나 기타 리소스에 비용이 발생할 수 있으므로 사용하지 않는 리소스를 함께 확인해야 합니다.
AWS 공식 문서에서도 EC2 인스턴스가 running 상태이면 사용량에 따른 비용이 발생할 수 있으며, 프리 티어 적용 여부에 따라 실제 비용이 달라질 수 있다고 안내합니다.
14. EC2 서버 구축 과정 정리
이번 과정을 간단하게 정리하면 다음과 같습니다.
AWS 계정 생성
↓
EC2 서비스 선택
↓
인스턴스 시작
↓
Ubuntu 등 리눅스 AMI 선택
↓
Free Tier 대상 여부 확인
↓
키 페어 생성
↓
보안 그룹 설정
↓
스토리지 설정
↓
인스턴스 시작
↓
공인 IP 확인
↓
SSH 접속
↓
리눅스 서버 업데이트
이 과정을 익혀두면 이후에는 Nginx 웹서버, Apache, MySQL, Docker 등 다양한 서버 프로그램을 EC2에 설치하면서 실습할 수 있습니다.
마무리
AWS EC2는 처음 접하는 사람에게는 조금 복잡해 보일 수 있지만, 기본적인 구조를 이해하면 생각보다 쉽게 리눅스 서버를 만들 수 있습니다.
특히 클라우드 서버를 공부할 때 중요한 것은 단순히 인스턴스를 생성하는 것에 그치지 않는 것입니다.
운영체제 선택, SSH 키 관리, 보안 그룹 설정, 공인 IP 관리, 서버 업데이트, 비용 관리까지 함께 이해해야 실제 서버 운영에 가까운 경험을 할 수 있습니다.
처음에는 작은 테스트 서버로 시작하고, 사용하지 않는 리소스는 정리하면서 하나씩 기능을 추가하는 것이 좋습니다.
무엇보다 '무료'라는 이유만으로 안심하지 말고 현재 AWS 프리 티어 조건과 사용량을 확인하는 습관을 갖는 것이 중요합니다.
EC2를 처음 구축했다면 다음 단계로 Nginx를 설치해 웹페이지를 띄워보고, 이후 HTTPS 인증서를 적용하거나 Docker 컨테이너를 실행해보면 클라우드 서버에 대한 이해를 더욱 넓힐 수 있습니다.