본문 바로가기

AWS

AMI(Amazon Machine Image)를 이용하여 WordPress 서비스 설치

EC2 생성 시 맨 첫 화면에 AMI를 고르는 화면이 있었다.

AMI는 인스턴스를 생성 시 필요한 정보를 담고 있는 이미지이다.

 

AWS에서는 빈 EC2 인스턴스(Bare Metal)에 직접 OS를 설치할 수 없다.

그렇기 때문에 미리 OS가 설치된 AMI를 이용하여 EC2 인스턴스를 생성하게된다.

 

AMI는 단순히 OS만 설치되는 것이 아니라필요한 애플리케이션이나 데이터베이스, 네트워크 솔루션 등도 함께 설치할 수 있다. 이러한 AMI를 이용하여 몇 개의 동일한 인스턴스도 쉽게 만들어 낼 수 있다.

 

 

이전 포스팅에서는 AWS에서 기본적으로 제공하는 AMI를 이용하여 인스턴스를 생성하였지만

EBS 스냅샷 기능을 이용하여 나만의 AMI를 만드는 것도 가능하다. (마치 Vmware에서 스냅샷기능을 뜨는 것과 같다)

EBS 스냅샷 기능에 대한 설명은 후에 포스팅하겠다.

 

그리고 Docker의 Dockerhub와 같이 이렇게 기 구축되어있는 AMI를 유료/무료로 별도의 Marketplace에서 제공하기도한다. (정말 편한 세상이다)

 

 

이번 포스팅에서는 Marketplace에서 대표적인 블로깅 툴이자 CMS(Contents Management System) 툴인 WordPress AMI를 이용하여 간편하게 WordPress 인스턴스를 구축해볼려고 한다. 

 

먼저 구글을 통해 aws marketplace를 검색한 후 제일 상단의 링크로 접속한다.

 

 

마치 Dockerhub나 App Store 처럼 다양한 AMI들이 올라와 있는 것을 확인할 수 있다.

우리가 필요로 하는 소프트웨어인 WordPress를 검색해보자.

 

 

가장 상단의 WordPress packaged by Bitnami를 이용할 것이다. 해당 링크를 클릭하자.

 

 

영어의 압박(?)이 심하지만 중간에서 Version이나 제작자 Base가 되는 O/S는 무엇인지 등이 확인이 가능하다.

가장 중요한 Pricing을 클릭해보자.

 

 

먼저 이용할 Region을 선택한다. 나는 Asia Pacific (Seoul)을 선택하였다. Fullfillment Option의 경우 64-bit (x86) Amazon Machine Image (AMI)로 고정되어 있다. 모든 선택을 마치면 오른쪽에 각각의 EC2 유형에 맞는 요금이 출력되게 된다.

 

 

Software/hr의 경우 AMI 제작자가 과금하게 되는 요금정보이다. 고맙게도 $0이다. 그리고 EC2/hr는 해당 AMI를 deploy할 EC2에 대한 과금정책이다. 우리는 Free tier를 통해 750시간까지 무료로 사용 가능하므로 사실상 무료로 사용이 가능하다. Total/hr의 경우 Software/hr + EC2/hr이라 보면 되겠다.

 

요금 확인이 끝났으면 상단 우측에 Continue to Subscribe를 눌러 진행한다.

 

 

이후 다시 AWS Console로 돌아와 AWS Marketplace Subscription 메뉴를 클릭하자. 

 

 

아래와 같이 WordPress Packaged by Bitnami가 추가되어 있음을 볼 수 있다.

 

 

이젠 이 AMI를 이용하여 인스턴스를 실행시켜 보자. 새 인스턴스 실행을 클릭해 보면 아래와 같이 소프트웨어 구성을 설정할 수 있는 창이 나온다. 제공 방법과 소프트웨어 버전은 기본값을 사용하고 리전은 서울 리전인 ap-northeast-2를 선택한다. 이후 EC2를 통해 계속 실행을 클릭한다.

 

 

그 다음으로 과거 EC2 인스턴스를 생성했을 때와 같이 인스턴스 유형, 구성, 스토리지, 태그 등에 관한 설정을 할 수 있는 페이지가 나온다. 이전 포스팅에서 설명하였으므로 별도로 이 포스팅에서는 생략하겠다. 해당 AMI에서 기본적으로 설정값을 제공해주기에 기본 설정값으로 시작하도록 하겠다.

 

 

SSH 접속을 위한 키 페어 역시 이전 포스팅의 키 페어를 그대로 사용하도록 하겠다.

 

 

성공적으로 인스턴스가 실행된다면 AWS Console에서 인스턴스 상태를 보도록 하자. 이전 포스팅에서 만든 EC2와 현재 만들어진 EC2 2개의 인스턴스가 보인다.

 

 

먼저 기존의 키 페어를 이용하여 해당 인스턴스의 Public IP로 SSH를 접속해보자.

 

 

정상적으로 접속이 됨을 확인할 수있다. netstat 명령어를 통해 open하고 있는 포트를 확인해 보았다.

이번엔 Public IPv4 DNS를 통해 해당 인스턴스의 웹 페이지를 접속해보자.

 

 

위와 같이 정상적으로 웹 페이지가 보이면 성공이다. 정말 간단하게 몇번의 클릭만으로도 WordPress 웹 페이지를 띄운 것이다. 다만 여기서 끝이 아니다. 이 블로그를 관리하기 위해 관리자 계정에 대한 정보를 알아야 한다. 어떻게 해야 할지 조금 당황스러운데 침착하게 다시 AWS Marketplace에서 해당 AMI의 문서를 참고하자. Support 부분에서 WordPress Pakaged by Bitnami에 대한 문서 링크를 발견할 수 있다.

 

 

해당 페이지의 Frequently Asked Question에서 바로 관리자 권한을 어떻게 찾는지에 대한 질문을 찾을 수 있었다.

 

 

자격증명을 알아내기 위한 환경 중 우리가 구축했던 방법인 AWS AMIs를 선택한다.

 

 

매우 친절하게 AWS Console 링크와 그림으로 설명되어 있다. 결론적으로 해당 인스턴스의 시스템 로그를 봐야한다. WordPress의 경우 최초 설치 시 시스템 로그에 랜덤한 문자열의 비밀번호를 적어놓는 것 같다. 인스턴스의 시스템 로그는 인스턴스 메뉴에서 해당 인스턴스를 우클릭 후 모니터링 및 문제 해결 - 시스템 로그 가져오기 를 클릭하면 된다.

 

 

시스템 로그 중간 쯤에 관리자 패스워드를 찾을 수 있다.

해당 패스워드를 메모장이나 다른 창에 잘 복사/붙여넣기 해 두자. 기본 계정명은 'user'라고 한다.

 

 

다른 방법으로 SSH에 직접 접속 후 아래의 파일을 보면 패스워드가 있다고 한다.

sudo cat /home/bitnami/bitnami_credentials

참고로 WordPress Database도 해당 인스턴스에 동일하게 설치되어 있는데 계정은 해당 DB의 기본 계정(root)이고 패스워드는 위 설정에서 본 패스워드와 동일하다고 하니 참고하자

 

 

이제 WordPress의 관리자 페이지를 접속하면 된다.

WordPress의 관리자 페이지는 도메인 뒤에 /wp-admin 을 붙이면 된다.

관리 페이지에서 ID/PW 로그인 하면 아래와 같이 관리 대시보드가 뜬다.