인프라

AWS Lightsail 을 이용한 워드프레스 구축 및 서브 디렉토리를 루트로 설정하는법

consolelog 2025. 7. 15. 16:03

워드프레스 클라우드를 이용해 도메인을 세팅할 때, 서브 디렉토리 구조로 설정할 수 없는 점이 아쉬움으로 남습니다.

 

서브 디렉토리 구조란, 예를 들어 https://example.com/blog 같은 형태로 워드프레스의 루트 주소를 설정하는 것을 의미합니다.

 

이 경우, 우리는 워드프레스를 직접 서비스하여 이러한 구조를 설정할 수 있습니다. 그러나, 이 작업은 여러 가지 복잡한 설정을 요구할 수 있습니다. 예를 들어, 웹 서버와 도메인 관리, 파일 경로 설정 등 여러 단계를 거쳐야 하므로, 경험이 부족한 사용자에게는 어려운 작업이 될 수 있습니다.

 

하지만 AWS와 같은 클라우드 서비스를 사용하면 이러한 설정을 더 간편하게 할 수 있습니다. AWS에서는 다양한 설정을 자동으로 처리해주는 서비스가 제공되므로, 사용자는 복잡한 구성 없이 서브 디렉토리 구조를 포함한 도메인 설정을 쉽게 할 수 있습니다. 이렇게 하면 시간과 노력을 절약하고, 보다 효율적으로 웹사이트를 운영할 수 있습니다.

 

이번 글에서는 AWS Lightsail 을 통해 워드프레스를 세팅하고, /blog를 루트 디렉토리로 변경하는 과정까지 함께 진행해보겠습니다.

AWS Lightsail 이란?

AWS Lightsail은 AWS 에서 제공하는 간단하고 사용하기 쉬운 클라우드 호스팅 서비스입니다. 주로 소규모 웹사이트, 애플리케이션, 블로그 등을 호스팅하는 데 적합한 서비스로, 설정이 직관적이고 비용이 예측 가능하여 개발자와 기업에 유용합니다.

 

특히, Lightsail은 가격이 저렴하고, 워드프레스의 세팅된 이미지를 제공하여 클릭 한 번으로 세팅이 가능합니다. 이는 서버 세팅에 대한 부담을 줄여주고, 빠르게 워드프레스를 배포할 수 있는 좋은 방법입니다.

 

AWS Lightsail 을 이용해 워드프레스 세팅

Aws 메인 화면에서 Lightsail 서비스를 검색 및 클릭합니다.

 

lightsail 메인 화면

 

메인 화면에서 create Instance 를 눌러 인스턴스 생성 화면으로 넘어갑니다.

 

lightsail 에서 제공해주는 이미지

기본으로 워드프레스가 선택되어있습니다.

 

lightsail ssh key 설정

 

해당 서비스에 원격으로 붙어서 작업해야되는 경우가 아니라면, 기본 설정으로 놓고 다음으로 넘어갑니다.

 

lightsail 가격 설정

 

워드프레스는 월 7달러 짜리면 충분함으로, 기본 설정되어있는 7달러로 놓고 create instance 버튼을 눌러줍니다.

 

lightsail 기본화면에 wordpress 가 생성되었다

 

잠시 기다리면, 우리가 생성한 워드프레스 인스턴스를 확인할 수 있습니다.

 

이때, 여기에 설정된 ip 주소는 인스턴스가 실행중일때는 바뀌지 않겠지만, 인스턴스가 재시작 될 때 바뀔 수 있으므로 고정된 ip 를 설정해줍니다.

 

Wordpress-1 을 클릭해 세팅 페이지로 넘어갑니다.

 

워드프레스 인스턴스 네트워크 설정화면

 

Attach static ip

 

Attach static Ip 를 눌러 고정 ip 를 생성해 줍니다.

 

고정 ip 가 설정된 화면

 

기존의 ip 와는 다른 고정 ip 가 세팅된것을 확인할 수 있습니다.

 

주의사항

 

AWS 에서는 고정 ip 는 인스턴스에 붙어있지 않을때 시간당 소액의 비용이 책정됩니다. 때문에, 인스턴스 종료후에 사용하지 않는 고정 ip 는 꼭 삭제해주도록 합시다.

 

lightsail networking 화면

 

Networking 탭에서 고정 ip 를 확인하고 삭제할 수 있습니다.

 

고정 ip 로 워드프레스로 만들어진 사이트가 보인다

 

이제 해당 아이피로 접속해보면, 워드프레스으로 만들어진 사이트를 확인 할 수 있습니다.

 

워드프레스 관리자 로그인 화면

 

http://[워드프레스 ip]/wp-admin 으로 접속해보면 관리자 페이지를 확인 가능합니다.

 

하지만, 우리는 아이디와 비밀번호를 모르기때문에, 아이디와 비밀번호를 확인하는 방법을 알아보도록 하겠습니다.

 

lightsail 인스턴스에서 ssh 접속버튼

 

위 이미지의 버튼을 눌러서 해당 인스턴스의 터미널로 접속합니다.

 

터미널에서 아이디와 비밀번호를 확인할 수 있다

 

터미널에 다음과 같은 명령어를 쳐서 아이디와 비밀번호를 확인합니다.

cat /home/bitnami/bitnami_credentials

 

아이디는 user 로 고정이고, 비밀번호는 랜덤하게 생성됩니다.

 

워드프레스 관리자 메인 페이지

 

위에서 확인한 아이디와 비밀번호를 치고 접속하면, 관리자 페이지에 접속 가능합니다.

 

워드프레스 서브 디렉토리 구조로 변경

워드프레스의 세팅이 완료되었다면, 이제는 서브디렉토리 구조로 변경하는 과정을 진행해보겠습니다.

 

우선 아파치(웹 서버) 의 설정을 수정하도록 하겠습니다. 해당 과정을 통해, /blog 주소로 들어오는 요청에 대한 행동을 지정해 줄 수 있습니다.

 

아래의 명령어를 입력해, 터미널용 에디터로 파일을 수정합니다.

sudo vi /opt/bitnami/apache/conf/vhosts/wordpress-vhost.conf

 

해당 과정을 수행하기 위해선 vi 에디터에 대한 간략한 사용방법이 필요합니다. (키가 안먹힌다면, 한영키를 눌러봅니다)

 

화면에서 a 를 눌러 수정모드로 들어간후, DocumentRoot 아래에 다음의 내용을 복사 붙여넣기 합니다.

 

Alias /blog/ "/opt/bitnami/wordpress/"
Alias /blog "/opt/bitnami/wordpress/"

 

그리고, AllowOverride none 에서 All 로 수정해줍니다.

 

위 과정이 성공했다면, esc 를 누른후 :wq 를 눌러 저장후 종료를 해줍니다.

 

위 과정중에 틀린 부분이 있다면, esc 를 누른후 :q! 를 눌러 저장없이 종료후 다시 수행해줍니다.

 

apache conf 파일

 

위와 동일한 과정을 아래의 명령어를 입력해, 다시 수행해 줍니다.

 

sudo vi /opt/bitnami/apache/conf/vhosts/wordpress-https-vhost.conf

 

 

다음으로, 워드프레스의 설정을 수정하도록 하겠습니다.

 

아래의 명령어를 입력해 워드프레스 설정 파일을 수정합니다.

 

sudo vi /opt/bitnami/wordpress/wp-config.php

 

워드프레스 설정 파일

 

아래로 내리다보면 위의 이미지와 같은 라인을 볼 수 있습니다. 해당 부분을 아래와 같이 바꿔줍니다.

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/blog');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/blog');

 

변경이 완료되었다면 :wq 를 차례로 눌러 저장후 종료해 줍니다.

 

다음으로, 하위 주소정책을 워드프레스에서 설정 가능하도록 수정하겠습니다.

 

touch /opt/bitnami/wordpress/.htaccess
sudo chmod 664 /opt/bitnami/wordpress/.htaccess
sudo chown -R bitnami:daemon /opt/bitnami/wordpress

 

위의 명령어를 터미널에 한번씩 복사 붙여넣기 해줍니다.

 

마지막으로, 다음 명령어를 통해 아파치(웹 서버)를 재시작 해줍니다.

 

sudo /opt/bitnami/ctlscript.sh restart apache

 

/blog 로 접속되는것을 확인할 수 있다

 

이후, http://[워드프레스 고정 ip]/blog 로 접속해보면, 메인페이지와 관리자 페이지가 /blog 로 접속가능한것을 확인할 수 있습니다.

 

(이때, http://[워드프레스 고정 ip]/wp-admin 으로 접속시, redirect 값이 /blog/wp-admin 으로 생성되지 않아 로그인 되지 않는 이슈가 있습니다. 꼭 /blog/wp-admin 으로 접속해주세요.)

 

Cloudfront 를 통해, 커스텀 도메인 설정 및 https 설정

해당 과정을 진행하기 위해서는 사용가능한 도메인이 필요합니다.

 

마지막으로, 우리가 설정한 도메인을 통해 접속하는 방법과 https 설정하는 과정을 진행해보겠습니다.

 

우선 Cloudfront 의 오리진설정에서는 ip 주소값을 설정할 수 없기때문에, 워드프레스의 오리진으로 사용할 도메인과의 연결이 필요합니다.

 

이러면 해당 주소로도 접근 가능하지 않나요?

네, 맞습니다. 해당 도메인으로도 접근 가능하긴 하지만, 워드프레스 플러그인으로 canonical URL 설정해 원본 주소를 가리키도록 설정함으로써 SEO나 중복 콘텐츠 문제를 방지할 수 있습니다.

 

route53(각자의 네임서버) 에서 워드프레스 고정 ip 주소를 가리키는 레코드를 생성합니다.

 

route53 레코드 생성
설정한 주소로 접속 확인

 

우리가 설정한 주소로 접속되는 것을 확인할 수 있습니다.

 

다음은 설정한 주소의 https 설정을 해주도록 하겠습니다. 이전의 터미널 창으로 돌아옵니다.

 

터미널에 다음 명령어를 입력합니다. 이는 Bitnami에서 SSL 인증서를 쉽게 발급받을 수 있도록 제공하는 툴입니다. 이 툴은 인증서 갱신까지 자동으로 처리해 주기 때문에, 인증서 문제에 대한 걱정을 덜 수 있습니다.

sudo /opt/bitnami/bncert-tool

 

 

 

 

그러면 다음과 같은 질문들이 나올텐데, 아래의 예제를 참고하여 자신의 설정값들을 넣도록 합니다.

 

Domain list []: blog-hide.example.com (route53 에서 설정한 레코드)
The following domains were not included: www.blog-hide.example.com. Do you want to add them?
 [Y/n]: n
Warning: No www domains (e.g. www.example.com) or non-www domains (e.g. 
www.example.com) have been provided, so the following redirections will be 
disabled: non-www to www, www to non-www.
Press [Enter] to continue: 엔터
Enable HTTP to HTTPS redirection [Y/n]: 엔터
Do you agree to these changes? [Y/n]: 엔터
E-mail address []: 내 이메일 주소
Do you agree to the Let's Encrypt Subscriber Agreement? [Y/n]: 엔터

잠시후...
Press [Enter] to continue: 엔터

 

해당 설정이 무사히 끝났다면, 워드프레스 주소로 접근시 https 가 적용된것을 확인 할 수 있습니다.

 

https 설정이 잘 되었다

 

다음으로, Cloudfront 를 통해 우리가 원하는 주소로 접근 가능하도록 세팅해보겠습니다.

 

해당 세팅을 위해선, 전편(하나의 도메인으로 Framer 와 Blog 연결 시키는 방법 2 (with Cloudfront))에서 AWS 에서 인증서 발급 부분을 수행해주세요.

 

위 과정을 수행후, AWS Cloudfront 로 넘어가 배포를 생성해줍니다.

 

cloudfront 배포 세팅

 

domain 에 우리가 접속을 원하는 도메인 설정을 넣어주고, custom origin 에서 워드프레스 고정 ip 에 물려놓은 도메인을 넣어줍니다.

 

배포 생성후, 해당 배포의 동작탭으로 들어가 생성을 눌러줍니다.

 

cloudfront 동작 생성

 

위와같이 경로를 지정해주고, 오리진을 설정해준후, 오리진 정책을 AllViewer로 변경해준후 생성을 눌러줍니다.

 

Cloudfront 로 테스트시에는 캐시 때문에 설정값이 제때 적용되지 않을 수 있는데, 이때는 캐시 정책을 CachingDisabled 로 바꾸고 테스트 해주면 됩니다. (단, 이 정책은 프로덕션 환경에선 비용증가가 되기 때문에, 테스트 후에는 꼭 원래대로 돌려놓도록 합니다.)

 

25.8.19 업데이트
캐시 정책을 CachingDisabled 로 변경해야지 wordpress 에서 플러그인 설치시 문제가 생기지 않습니다.

 

이후, Cloudfront 의 배포 도메인 이름을 route53 에서 cname 으로 매칭시켜주면 됩니다.

 

cloudfront 의 도메인 이름
route53 에서 cloudfront 관련 레코드
워드프레스 메인 페이지
워드프레스 관리자 페이지

 

메인 페이지와 관리자 페이지 전부 원하는 주소로 접속이 가능한것을 확인할 수 있습니다.

 

Cloudfront 의 설정이 반영되기 위해서는 최소 몇분이상이 소요됩니다. 정상적인 동작을 하지 않는다면, 잠시 기다렸다 다시 확인해보세요. 또한, 위에 언급한대로 캐시정책을 CachingDisabled 로 바꿔서 테스트해보세요.

 

마치며

이번 글에서는 AWS Lightsail을 이용해 워드프레스를 구축하고, 서브 디렉토리를 루트로 설정하는 방법에 대해 다뤄보았습니다.

 

또한, 이전 글(하나의 도메인으로 Framer 와 Blog 연결 시키는 방법 2 (with Cloudfront))을 활용한다면, Framer로 메인 페이지를 구축하여 연동하는것도 가능할 것입니다.

 

이 글이 여러분의 사이트 구축에 도움이 되었기를 바랍니다.

 

읽어주셔서 감사합니다!