My Boundary As Much As I Experienced

AWS EC2에다 Apache서버 만들고 도메인 연결하기 본문

BackEnd/Node.js

AWS EC2에다 Apache서버 만들고 도메인 연결하기

Bumang 2024. 4. 25. 12:15

이 일련의 과정을 진행해본 이유

사수님께서 네트워크 기반 지식의 중요성을 매우 강조하시는 분이었다. 나도 네트워크와 배포 과정에 대해서 궁금한게 꽤 있어서 물어봤다가 한바탕 네트워크 강의가 펼쳐졌고, 그 강의의 과제로 AWS EC2 배포를 한 번 진행해볼 것을 권장하셨다. 

 

Apache서버를 설치한 이유

사수님이 원래는 Nginx를 세팅해볼 것을 권장하셨다. 그런데 Nginx는 설정하면서 config 파일들도 설정할게 많더라. 특정 블로그 보면서 Nginx 설치를 시도했었는데 모든 과정을 다 적으시지 않은건지, 혹은 내 컴퓨터 환경이 필자와 뭔가 다른건지, 원하는 결과를 내기 힘들었다.

 

그래서 다른 유튜브나 문서들을 보며 설치를 시도하다가, 어떤 영상에서 상대적으로 설치가 쉬운 Apache서버를 세팅하길래 나도 일단 Apache로 연결해보기로 했다... 그리고 아래는 어떤 과정을 겪었는지 정리해보았다. 다른 사람들에게 도움이 될지는 모르겠다.

 

1. 도메인 구입

내가 원하는 도메인을 구입했다. bumang.blog와 bumang.xyz를 구입했다.

둘 다 1년에 10,000원 이하의 가격이었고 특히 bumang.xyz는 이벤트 특가로 2,500원에 구입하였다.

(계속 목표로 하던 3D portfolio 웹사이트를 구축할 때 최상위 도메인을 xyz로 하면 좋지 않을까 싶었다.

구입은 hosting.kr에서 진행하였다.

 

 

 

2. AWS 회원가입 후 ec2 인스턴스 생성

그리고 AWS에서 EC2 instance를 클릭하고 인스턴스 시작을 누르면 된다. 아키텍처는 안 바꿔도 된다.

 

3. 키 페어 설정

설정을 진행하다 보면 키페어를 설정하라는게 나온다. 하면 된다. 원하는 이름으로 키페어를 설정하자.

 

 

키페어를 설정하면 내가 원하는 위치에다가 pem파일을 다운받을 수 있다.

 

 

 

4. 프라이빗 키의 권한 설정

1. 프라이빗 키(.pem)를 보안된 위치인 .ssh 하위 디렉터리에 저장

mv ~/Downloads/MyKeyPair.pem ~/.ssh/MyKeyPair.pem

 

2. 프라이빗 키(.pem)의 권한 설정

chmod 400 ~/.ssh/MyKeyPair.pem

연결 누르고 여기서 위에 있는 SSH 클라이언트 들어가기

 

 

 

*5. 로컬에서 SSH 접속

연결 누르고 여기서 위에 있는 SSH 클라이언트 들어가기

ssh -i [프라이빗 키(.pem)경로] [AMI의 사용자 이름]@[인스턴스의 퍼블릭 DNS]

root 권한 전환

먼저, root 권한을 가지고 설치하여야 하기 때문에 root 권한으로 전환한다.

sudo -s

6. 로컬에서 NGINX 설정.... 을 하려 했는데 config 설정에 문제 발생

7. EC2 Instance 서버 내에서 Apache 서버 설정

아래처럼 관리자 권한 얻기 -> 아파치 서버 설치를 진행한다.

// 관리자 권한 얻기
sudo -s
// apache 서버 설치

// chatGPT가 설명해준 단어 별 의미
// yum: Yellowdog Updater, Modified의 약자로, RPM 기반 배포판에서 패키지 관리를 위해 사용.
// httpd: 설치하려는 패키지의 이름. httpd는 Apache HTTP 서버의 리눅스 패키지 명칭이다.
// -y: 설치 과정에서 사용자에게 확인을 요구하는 여러 질문에 자동으로 'yes'라고 대답하게 하는 옵션.

yum install httpd -y

 

// apache 서버 실행

service httpd start

 

그러면 이제 인스턴스가 제공하는 IPv4를 브라우저에 입력하고 이동해보자.

이전에 접속했으면 loading bar만 무한정 돌아가던가 404 not found가 떴을텐데

이젠 테스트 페이지 혹은 빈 페이지가 잘 나올 것이다.

 

'축하한다. 여러분은 전세계에서 접속할 수 있는 웹페이지를 직접 배포해보셨다'라고 유튜브 강사님이 말씀하시는데

요새 속된 말로 뽕이 차오르는걸 느낄 수 있었다.

 

 

8. 인스턴스 내에 임시 index.html 코드 생성

사실 이제부터 내가 배포하고픈 프론트 혹은 백엔드 코드를 자유롭게 업로드하면 되는데,

EC2 체험용으로만 하고있는거고 막상 배포할 것도 없었다.

그래서 강의에 나온대로 일단 간단한 index.html을 올려보기로 했다.

// index.html 파일에 편집모드로 들어가기

nano/var/www/html/index.html

 

 

나는 Hello, world - Bumang (1995 ~) 라고 적었다.

cmd + x를 눌러 편집모드를 나온 후, y를 눌러 저장하자.

그리고 인스턴스의 IPv4에 들어가보자. 우리가 편집한 텍스트가 잘 보일것이다!!

 

9. 내가 구매한 도메인에 EC2 Instance IPv4를 연결

그리고 IPv4가 아니라 내가 구입한 도메인으로 연결시키려면 어떻게 해야될까? 바로 당신이 도메인을 구입한 그 사이트를 가서 네임서버를 맵핑해주면 된다. 나는 hosting.kr에서 도메인을 구입했기 때문에 거기서 네임서버를 연동시켰다.

 

그 결과 bumang.xyz에 접속하면 위처럼 내가 설정한 index.html 파일의 스크립트가 잘 출력되는걸 볼 수 있다.

주의할 점:
AWS EC2는 '유료 서비스'이다. 배포 후 하루 이틀 켜놓는 것은 프리 티어로 가능할테지만, 실습이 끝난 다음에 별 일 없으면
인스턴스 작동을 중단시키자!!

 

회고 & 앞으로 해볼 것

생각보다 도메인 연결해서 내 사이트를 배포해보는게 재밌었다. 백엔드를 배우고 싶은 욕구가 매우 상승하기도 하였다.

 

그리고 실제 배포한 사이트에 들어가보면 '주의 요함'이라고 주소창 옆에 표출되는 것을 볼 수 있다.

이는 https 프로토콜이 아니라 http로 연결되어서 브라우저가 경고를 요하는 것이다. (안전한 사이트가 아니라는 얘기)

 

이제 

1. 세팅 실패한 Nginx를 다시 세팅해보기

2. let's encrypt같은 무료 인증서 사이트에서 인증서를 받아 https 연결로 바꾸기

3. 의미있는 서버 코드를 배포해보기

 

를 해보려 한다. 주말에나 해봐야겠다.