티스토리 뷰

수업 노트/aws 활용

aws 에 워드프레스 구축하기

오리지날초이 2023. 11. 4. 07:16

 

이번에는 AWS(Amazon Webb Service) 환경에

WordPress 프레임워크를 구축하여

본인만의 웹사이트를 만들어보도록 하겠습니다.

 

본래 웹서버 구축, 그 위에 워드프레스 설치하는 수업은

일반 PC에 vmware 와 리눅스를 설치하고 실습하는게 정석입니다.

 

문제는 웹사이트 환경 구축은 수업만 잘 따라오면 금방하는데

그 이후에 각자가 자기만의 홈페이지를 꾸미고 포트폴리오로 찍어내는데

시간이 좀 걸린다는 겁니다.

 

근데 학교 PC에서는 하드보안관이 좀 번거로워서...

최신 트렌드에 맞춰서 aws 환경도 접할 겸 aws 에 구축하도록 하겠습니다.

 

아마존의 최고 장점은 매뉴얼이 잘 되어 있다는 것입니다.

 

그 얘기는 여러분들이 리눅스 기초 활용을 배웠고

뭔가 만들어야겠다 싶어서 aws 를 기웃거린다면

아마존 문서 정도는 이해하고 스스로 따라할 수 있어야 된다는 겁니다.

 

이번 수업도 아마존 공식 매뉴얼을 기반으로 진행해보도록 하겠습니다.

 


※ aws 가 익숙하지 않고 매우 생소하다면 아래 글들을 먼저 둘러보길 바랍니다.

 

- aws 개요

 

AWS 서비스에 대한 이해(이론 #1)

※ 본 포스팅은 "그림으로 이해하는 AWS 구조와 기술" 의 내용을 일부 발췌한 것입니다. 보다 자세한 내용은 해당 도서를 구매해서 보길 권합니다. 그림으로 이해하는 AWS 구조와 기술 : 네이버 통

originalchoi.tistory.com

- 윈도우 인스턴스 생성 실습

 

AWS EC2 윈도우 인스턴스 생성(실습 #1)

먼저 AWS 의 가장 기본인 EC2 인스턴스 생성에 대해 다뤄보도록 하겠습니다. 최초 접속 화면 입니다. 여기서 EC2 메뉴에 접속해서 새 인스턴스를 생성해줍니다. 새 인스턴스 생성은 "인스턴스 시작"

originalchoi.tistory.com

- 리눅스 인스턴스 생성 실습

 

AWS EC2 리눅스 인스턴스 생성(실습 #2)

이제 리눅스 인스턴스를 생성하고 접속해 보도록 하겠습니다. 리눅스는 보통 ssh 기반으로 접속이 가능하기 때문에 윈도우 서버 보다도 더 간편하게 설정이 가능합니다. 인스턴스 시작을 통해

originalchoi.tistory.com


 

 

 

 

aws 콘솔에 로그인 후 리눅스 인스턴스를 생성해줍니다.

 

 

OS 종류는  aws 환경에서 범용으로 사용되는 Amazon Linux 면 적합할 것 같습니다.

 

 

t2.micro 스펙이면 충분합니다.

 

키페어는 필수로 지정해야 합니다.

본인만의 키페어를 생성해주세요.

 

키페어는 ec2 생성시 한번만 발급되는 비밀키 파일입니다.

분실하면 다음에 해당 인스턴스에 접속할 수 없습니다.

 

생성한 키펭는 브라우저 다운로드 탭을 통해 자동으로 다운됩니다.

 

 

 

이제 네트워크 설정을 해줘야 합니다.

 

 

시큐리티그룹(보안그룹) 을 새로 생성하거나

기존에 생성한 보안그룹을 활용해도 됩니다.

 

http 와 https 는 미리 열어두면 좋겠지만 

그러면 수업 때 할 내용이 없어지니까 

지금은 ssh 만 허용해놓고 추후에 오픈하겠습니다.

 

네트워크 설정의 편집버튼을 누르면 VPC 상세 설정이 나옵니다.

(네트워크 상세 설정을 안하고 인스턴스 생성을 하려고 해면 결국 이 설정영역으로 돌아옵니다.)

 

 

현재 상태에서는 VPC 가 존재하지 않아서 별도로 하나 생성해줘야합니다.

VPC 가 존재한다면 기존 것을 가져다 쓰면 되겠죠?

aws 클라우드 환경의 내부, 외부 접속을 전담해 주는 vpc 가 생성 되었습니다.

 

 

VPC 를 생성후 다시 네트워크 설정으로 돌아와서

생성된 VPC, 서브넷 정보를 반영해줍니다.

퍼블릭 IP 자동 할당도 활성화 해줍니다.

 

 

스토리지는 기본 8GB 면 충분합니다.

고급 세부 정보는 건드리지 말고 "인스턴스 시작" 버튼을 눌러 

amazon linux 인스턴스를 생성합니다.

 

인스턴스가 잘 생성되었습니다.

 

해당 인스턴스의 연결탭으로 들어오면

아마존 웹콘솔을 통한 연결과 키페어를 이용한 ssh 연결 방법을 제공해줍니다.

 

아마존 웹콘솔의 경우 키페어가 필요없긴 하지만

저는 윈도우 터미널을 통한 ssh 연결로 진행하겠습니다.

 

 

id, pw 를 묻지 않고 바로 접속되는건 키페어 방식 덕분에

아마존 리눅스 EC2 에 ssh 로 접속했습니다.

 

물론 추가로 내 계정에 passwd 설정하는 것도 가능합니다.

 

 

 

 

이제 root 의 권한을 부여받은 ec2-user 로 

아마존 wordpress 구축 매뉴얼을 참고해서 진행해보겠습니다.

 

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/hosting-wordpress-aml-2023.html

 

Amazon Linux 2023에서 WordPress 블로그 호스팅 - Amazon Elastic Compute Cloud

아래 명령에서 데이터베이스 이름을 앞 뒤로 묶는 기호(`)를 백틱(backtick)이라고 합니다. 백틱(`) 키는 일반적으로 표준 키보드에서 Tab 키 위에 있습니다. 백틱이 항상 필요하지는 않지만, 이를 통

docs.aws.amazon.com

 

 

매뉴얼에서 제시한 대로 dnf 명령을 활용하여 wget, php-mysqlnd, httpd 등을 인스톨 하려했는데

root 권한이 없어서 에러가 발생합니다.

 

커맨드 앞부분에 sudo 를 붙여서 다시 실행하니 잘 동작합니다.

 

 

매뉴얼이 잘 되어있다고 아무것도 이해못한 채 복붙만하면 안됩니다.

매뉴얼에서 제시한 dnf 가 어떤 명령어인지는 스스로 궁금증을 가지고 찾아봐야 합니다.

https://visit-my.blog/2023/02/12/linux-dnf-%EB%AA%85%EB%A0%B9%EC%96%B4/

 

Linux dnf 명령어 - Techlog

Contents hide 1 DNF란? 1.1 DNF 설치 방법 1.2 repository 추가 방법 1.3 DNF 주요 명령어 소개 1.3.1 도움말 확인 1.3.2 repo 관련 1.3.3 패키지 검색 1.3.4 패키지 조회 1.3.5 패키지 설치 1.3.6 패키지 다운로드 1.3.7 패

visit-my.blog

 

 

이제 wget 을 사용해서 최신 wordpress 설치 패키지를 다운로드 합시다.

 

 

방금 wget 으로 다운 받은 latest.tar.gz 의 압축을 풀어주니

wordpress 폴더가 생성되어 있습니다.

 

 

해당 폴더는 관리자용 웹페이지가 구현되어 있는 워드프레스 설치 파일입니다.

 

이제 database 를 추가로 설치해서 웹서버와 연동하면

웹페이지 구성 및 새로 작성되는 글의 정보들은 db  에 저장되고

db 에 저장된 정보를 불러와서 게시글로 나타낼 수 있게 되는 겁니다.

 

systemctl 커맨드를 사용해서 mariadb 와 httpd 를 start 시켰습니다.

systemctl status 로 확인해보니 잘 동작 중이네요.

 

mysql 에 별도 패스워드를 설정해준 적 없기 때문에

패스워드란에는 그냥 엔터만 입력해도 로그인 됩니다.

 

물론 root 권한을 부여해서 sudo 로 진행해야 합니다.

일단 접속이 되는 걸 확인했으면 quit 로 빠져나옵니다.

 

 

mysql 용 root 암호를 설정해야겠습니다.

linux 의 root 와 mysql 의 root 는 서로 다른 계정입니다. 헤깔리지 마세요.

 

다음 문서를 참고해서 진행합니다.

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2023.html#secure-mariadb-lamp-server-2023

 

Amazon Linux 2023에 LAMP 설치 - Amazon Elastic Compute Cloud

Amazon Linux를 사용하지 않는 경우, 이러한 연결을 허용하도록 인스턴스에서 방화벽을 구성해야 할 수도 있습니다. 방화벽 구성 방법에 대한 자세한 내용은 사용자의 특정 배포에 대한 문서를 참

docs.aws.amazon.com

 

 

 

다시 mysql 에 접속하려면 방금 설정한 db용 password 를 입력해야 합니다.

 

db 에 접속한 상태에서 sql 문법으로 wordpress-user 사용자와

각자의 사용자 패스워드를 입력해줍니다. 

 

db 를 생성하고 확인할 수 있습니다.

 

 

매뉴얼에 제시된 나머지 작업을 수행해줍니다.

 

 

wordpress 폴더로 이동해서

wp-config-sample.php 파일을 wp-config.php 로 복사해줍니다.

그리고 vim 에디터로 config 설정을 편집해줍니다.

 

 

 

DB_NAME, DB_USER, DB_PASSWORD를

본인 설정에 맞는 값으로 변경해줘야 합니다. 

 

 

 

 

 

wordpress 의 키생성 사이트에 방문해서 랜덤 키값을 생성하고 내 설정 파일에 복붙합니다.

그리고 :wq 를 입력하고 vim 에디터를 빠져나옵니다.

 

 

우리는 앞서 dnf 커맨드로 웹서버 httpd  를 설치했고

systemctl status httpd 로 웹서버가 동작중인 것도 확인했습니다.

 

/var/www/html 은 httpd 웹서버의 웹루트 디렉토리인데 게시할 웹문서는 아직 없습니다.

 

 

여기에 wordpress 폴더를 통째로 복사합니다.

(sudo 를 안붙이면 permission denied 에러 발생합니다)

 

 

추가 설정을 반영합니다.

 

 

/var/www/html 디렉토리 하위 속성 AllowOverride 값을 All로 수정합니다.

 

 

amazon linux 2023 에 php 그래픽 그리기 라이브러리를 설치해줍니다.

 

설치가 잘 된것을 확인했습니다.

 

 

이제 apahce 웹루트디렉토리에 wordpress 가 새 파일 등을 생성할 수 있도록 쓰기권한을 부여해주고

하위 파일과 디렉토리의 소유권을 구분해서 변경해줍니다.

 

/var/www/ 밑으로 파일속성이 일괄변경된 것이 확인됩니다.

 

 

서비스를 재시작하고 상태를 확인합니다.


파일퍼미션 2775 에서 특수 퍼미션 2 의 기능이 궁금하면 아래를 참고하세요

https://eunguru.tistory.com/115


 

 

이제 설정이 거의 막바지입니다.

httpd 와 mariadb 가 OS 재시작시 자동 실행되도록 enable 설정을 적용합니다.

 

mariadb 가 잘 동작 중인지도 확인합니다.

 

이제 내 인스턴스의 ip 로 웹접속을 시도하면 wordpress 를 이용할 수 있습니다.

제 인스턴스의 퍼블릭 ip는 13.124.211.139 네요

 

이 ip 는 ec2 재기동시 변경될 수 있는데 고정 ip를 할당하려면

추가 비용이 발생하기 때문에 eip 는 다루지 않겠습니다.

 

※ 사실 추가비용보다도 계정별로 사용가능한 고정ip 는 리전당 5개로 제한되어 있습니다.

 

 

매뉴얼대로 설정을 마치고 웹 접속을 했는데 연결이 안됩니다.

왜 그럴까요?

 

 

처음에 ec2 인스턴스 생성시 http, https 에 대한 연결을 허용하지 않았기 때문입니다.

내 인스턴스에 적용되어 있는 보안그룹에 들어갑니다.

 

 

외부에서 인스턴스로 접속하는 인바운드 규칙에 ssh (tcp 22) 만 허용되어 있는 것이 보입니다.

여기에 http(tcp 80), https(tcp 443) 을 추가해야 합니다.

규칙 편집을 눌러주세요

 

http, https 프로토콜을 추가하고 어디서나 접속할 수 있도록

소스는 anywhere(0.0.0.0) 으로 등록합니다.

 

 

보안그룹을 변경하고 다시 접속을 하니 워드프레스 설정 페이지가 잘 열립니다.

 

 

한국어 설정을 적용하고 본인만의 홈페이지를 만들어보세요

728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함