[AWS] Lightsail route53 + 로드밸런서 + ssl 인증서 작업 + wp 설정

일전 포스트에도 포스팅을 하였지만 Lightsail 을 저렴하게 사용하는 유저에게는 AWS 로드밸런서 + SSL 인증서 보다는 Let’s Encrypt 를 이용하는것이 더 좋습니다. 기본 3.5$ + 로드밸런서를 사용할경우 월18$ 의 사용요금이 발생 합니다.

작업순서는 route 53 dns 등록 -> lightsail 인스턴스 생성 -> 고정아이피 생성 + dns 생성 ->  로드밸런서 생성 -> route 53 설정 추가 -> ssl 인증서 인증 -> wp 설정 변경 순서로 진행이 됩니다.

AWS Lightsail 설정 https://lightsail.aws.amazon.com/ls/docs/ko_kr/articles/create-lightsail-load-balancer-and-attach-lightsail-instances
bitnami 설정 :https://docs.bitnami.com/aws/apps/wordpress/administration/
WP SSL 설정 :https://www.wpbeginner.com/wp-tutorials/how-to-fix-common-ssl-issues-in-wordpress-beginners-guide/

 

  • Lightsail 에서 인스턴스를 생성 합니다.

  • 기본으로 선택되어 있는 상품으로 진행 합니다.

 

  • 프리티어 사용과 별도로 사용요금이 3.5달러 지불됩니다.

 

  • 인스턴스 이름을 변경후 생성을 클릭 합니다.

 

 

  • 네트워킹을 클릭합니다.

 

  • 고정 IP 생성을 클릭합니다.
  • DNS 도메인 과 맵핑 하기 위해서는 반드시 고정 IP를 사용해야 합니다.

 

  • 고정 IP 위치를 확인후 인스턴스에 연결 에서 인스턴스를 지정합니다.

 

  • 고정 IP 확인란 에서  생성을 클릭합니다.

 

 

  • 고정IP 생성이 완료되었습니다.

 

 

  • Lightsail  에서 사용할 dns 영역을 생성 합니다.
  • DNS 영역 생성을 클릭합니다.

  • 도메인 이름을 입력합니다.

 

  • DNS 영역 생성을 클릭합니다.

  • 도메인 등록기관 에서 name server 를 지정합니다.
  • 보통은 도메인을 구입한 곳에서 name server 를 변경할수 있습니다.
  • ex) 가비아 , cafe24등

 

  • name server 를 변경합니다.

  • route 53 설정
  • DNS 관리를 클릭합니다.

 

 

  • 호스트 영역생성을 클릭합니다.

 

  • 호스팅 영역생성을 클릭합니다.

 

  • 도메인 입력후 생성을 클릭합니다.

 

  • 생성후 화면

 

  • Lightsail 에서 네트워킹 -> DNS 영역에서 관리를 클릭합니다.

 

  • 레코드 추가를 클릭합니다.

 

  • @ 도메인에 를 추가후 ip 부분에서는 고정아이피를 추가 합니다.
  • 마우스 클릭으로 고정아이피를 지정 할수 있습니다.

 

  • www 레코드를 추가 합니다.

 

  • 네트워킹 -> 로드 밸런서 생성을 클릭합니다.

 

 

  • 리전의 경우 인스턴스가 서울리전 사용시 해당 리전으로 지정합니다.
  • https 사용시 인증서를 생성 해야 하며 로드 밸런서 생성후 인증서를 생성 합니다.

 

  • 로드밸런서 이름을 지정하고 로드 밸런서 생성을 클릭합니다.
  • 로드밸런서 비용이 한달에 18$ 입니다.

 

 

  • 로드밸런서 사용할 인스턴스를 지정합니다.

 

  • 로드 밸런서 -> 인바운드 트래픽 에서 인증서 생성을 클릭합니다.

 

  • domain 및 2차 domain 을 지정 한후 생성을 클릭합니다.

 

  • 인증서 생성후 domain 인증 txt code 가 나옵니다. 메모장에 드래그 하여 메모장에 붙여 넣기 합니다.
  • 또한 인바운드 트래픽에 최상단에 있는 로드밸런서 부분도 드래그하여 메모장에 붙여 넣기 합니다.

 

  • Lightsail 에서 도메인 설정 및 route 53 에서 도메인설정을 해야 합니다.
  • Lightsail 네트워크 -> DNS 영역 에서 관리를 클릭합니다.

 

  • 기존 DNS A 레코드를 고정 IP 에서 로드밸런서로 지정 합니다.
  • CNAME 레코드를 추가 합니다.

 

  • 레코드 추가를 클릭하여 CNAME 레코드를 추가 합니다.
  • 메모장에 붙여넣기 했던 항목중 이름 부분은 하위도메인에 값 부분은 맵핑부분에 붙여 넣기 합니다.
  • _8c9b8fde94178cd4ea044d3e1dab3ee0.www.example.com. 라고 하면 www 까지 즉,
  • _8c9b8fde94178cd4ea044d3e1dab3ee0.www 까지만 붙여넣기 합니다.

 

  • Route 53 설정
  • Lightsail 로드밸런서를 Route 53 에 등록 합니다.
  • Lightsail 로드밸런서의 경우 이름을 www / 유형 A – IPv4 주소 / 별칭 예 를 선택후 별칭대상에 붙여 넣기 합니다.
  • 로드밸런서는 도메인 ex) example.com / 2차도메인 www.example.com 으로 등록 합니다.

 

  • ssl 인증서를 사용하기위하여 메모장에 복사한 내용을 CNAME 로 추가 합니다.

 

 

 

  • Route 53 domain 작업완료 예

 

  • Lightsail -> 로드 밸런서 -> 인바운드 트래픽으로 이동 합니다.
  • 별도로 잘못 설정 하지 않았다면 인증서 상태가 유효로 변경될 것입니다.
  • 생성된 인증서를 선택 합니다.

 

 

  • site 접속 테스트
  • http / https 로 접속을 해봅니다.

 

  • https 접속 테스트
  • https 의 경우 정상적으로 접속이 되지 않습니다.
  • 별도의 WP 플러그인을 사용 해야 합니다.

 

 

  • ssh 로 Lightsail 로 접속 합니다.
$ ssh -i LightsailDefaultKey-ap-northeast-2.pem bitnami@192.168.0.22
The authenticity of host '192.168.0.22 (192.168.0.22)' can't be established.
ECDSA key fingerprint is SHA256:AHwlOFx9ql8AZjjqz6Sfb8PYsQJ/FgRakbaUQVfQ69Y.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '15.164.65.11' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-1081-aws x86_64)
*** System restart required ***
       ___ _ _                   _
      | _ |_) |_ _ _  __ _ _ __ (_)
      | _ \ |  _| ' \/ _` | '  \| |
      |___/_|\__|_|_|\__,_|_|_|_|_|

  *** Welcome to the Bitnami WordPress 5.1.1-2 ***
  *** Documentation:  https://docs.bitnami.com/aws/apps/wordpress/ ***
  ***                 https://docs.bitnami.com/aws/ ***
  *** Bitnami Forums: https://community.bitnami.com/ ***
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.


bitnami@ip-172-26-9-64:~$ sudo vi /opt/bitnami/apps/wordpress/htdocs/wp-config.php
define( 'DB_COLLATE', '' );

// 여기부터 추가 합니다.
define('FORCE_SSL_ADMIN', true);
// in some setups HTTP_X_FORWARDED_PROTO might contain
// a comma-separated list e.g. http,https
// so check for https existence
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
       $_SERVER['HTTPS']='on';


설정 완료후 서비스 재시작
bitnami@ip-172-26-9-64:~$ sudo /opt/bitnami/ctlscript.sh restart

 

  • https 접속 확인

  • simple ssl WP plugin 설치합니다.

 

  • 에서 운영한 데이터 이관후 wp 작업을 하였다면 simple ssl WP plugin 설치후 wp-config.php 에 아래와 같이 추가합니다.
// 최하단에 추가
$server_opts = array("HTTP_CLOUDFRONT_FORWARDED_PROTO" => "https", "HTTP_CF_VISITOR"=>"https", "HTTP_X_FORWARDED_PROTO"=>"https", "HTTP_X_FORWARDED_SSL"=>"on", "HTTP_X_PROTO"=>"SSL", "HTTP_X_FORWARDED_SSL"=>"1");
foreach( $server_opts as $option => $value ) {
 if ((isset($_ENV["HTTPS"]) && ( "on" == $_ENV["HTTPS"] )) || (isset( $_SERVER[ $option ] ) && ( strpos( $_SERVER[ $option ], $value ) !== false )) ) {
  $_SERVER[ "HTTPS" ] = "on";
  break;
 }
}
//END Really Simple SSL

// wp-config.php  권한을 640 에서 666 으로 변경 합니다.
bitnami@ip-172-26-9-64:~$ cd /opt/bitnami/apps/wordpress/htdocs/
bitnami@ip-172-26-9-64:/opt/bitnami/apps/wordpress/htdocs$ ll
total 216
drwxrwxr-x  5 bitnami daemon  4096 Jun 25 08:04 ./
drwxr-xr-x  7 root    root    4096 Apr 30 10:50 ../
-rw-rw-r--  1 bitnami daemon   420 Nov 30  2017 index.php
-rw-rw-r--  1 bitnami daemon 19935 Jun 25 07:51 license.txt
-rw-rw-r--  1 bitnami daemon  7447 Jun 25 07:51 readme.html
-rw-rw-r--  1 bitnami daemon  6919 Jan 12 06:41 wp-activate.php
drwxrwxr-x  9 bitnami daemon  4096 Jun 25 07:51 wp-admin/
-rw-rw-r--  1 bitnami daemon   369 Nov 30  2017 wp-blog-header.php
-rw-rw-r--  1 bitnami daemon  2283 Jan 21 01:34 wp-comments-post.php
-rw-r-----  1 bitnami daemon  4997 Jun 25 08:04 wp-config.php
-rw-rw-r--  1 daemon  daemon  2898 Jun 25 07:51 wp-config-sample.php
drwxrwxr-x  7 bitnami daemon  4096 Jun 25 07:49 wp-content/
-rw-rw-r--  1 bitnami daemon  3847 Jan  9 08:37 wp-cron.php
drwxrwxr-x 20 bitnami daemon 12288 Jun 25 07:51 wp-includes/
-rw-rw-r--  1 bitnami daemon  2502 Jan 16 05:29 wp-links-opml.php
-rw-rw-r--  1 bitnami daemon  3306 Nov 30  2017 wp-load.php
-rw-rw-r--  1 bitnami daemon 39551 Jun 25 07:51 wp-login.php
-rw-rw-r--  1 bitnami daemon  8403 Nov 30  2017 wp-mail.php
-rw-rw-r--  1 bitnami daemon 18962 Jun 25 07:51 wp-settings.php
-rw-rw-r--  1 bitnami daemon 31085 Jan 16 16:51 wp-signup.php
-rw-rw-r--  1 bitnami daemon  4764 Nov 30  2017 wp-trackback.php
-rw-rw-r--  1 bitnami daemon  3068 Aug 17  2018 xmlrpc.php
bitnami@ip-172-26-9-64:/opt/bitnami/apps/wordpress/htdocs$ chmod 666 wp-config.php

 

 

  • simple ssl 플러그인을 실행 합니다.

 

  • http -> https 리다이렉트는 별도로 설정해줄 필요가 없습니다.

 

1 comment

댓글 남기기