반응형

안녕하세요. 이번 포스트는 AWS Educate 계정에서 사용가능한 리전 "버지니아 리전" 에서 운영중이던 블로그를

AWS 일반 계정의 한국 리전으로 옮기고, 도메인을 elbpdpdp.tk 에서 hakmoon.com으로 변경했던 작업 내용을 공유하려고 합니다.  <7-2 편>

 

이전 포스트의 2-1,2) 작업을 공유합니다.

- EC2 인스턴스 WEB-master 에 접속하여, RDS DB 를 백업한다

- EC2 인스턴스 내부의 CONFIG 를 수동(사실상 노가다) 백업한다.

- 1,2번 바탕으로 새로운 인프라에 복원

 

 

AWS 워드프레스 이전방법 - (5. RDS 수동 복구 1편 (RDS 생성))

안녕하세요. 이번 포스트는 AWS Educate 계정에서 사용가능한 리전 "버지니아 리전" 에서 운영중이던 블로그를 AWS 일반 계정의 한국 리전으로 옮기고, 도메인을 elbpdpdp.tk 에서 hakmoon.com으로 변경했

jun2mun.tistory.com

 

위의 바탕으로 새로 넣을 리전( AWS 계정)의 인프라에 복원(구축) 해봅시다.

이번에는 RDS EC2 연동 + 테이블 복구를 해봅시다.


구성목표


반응형

 

1. EC2에서 RDS 연결해보자.

 

 퍼블릭 엑세스 허용을 하였다면, 공인 아이피(도메인)을 통해 접속이 가능하지만 , 허용을 하지 않았다면 RDS와 같은 서브넷 대역에서 RDS 엔드포인트를 통해 접속을 해야한다. 

 

RDS 메인페이지

위의 그림에서 빨간색 부분의 엔드포인트로 접속을 시도하면 된다.

즉 아래와 같이 명령어를 작성하여 접속을 시도해보자.

 

######### EC2 내에서 RDS ########
-h 옵션으로 접속할 host 설정

[root@ip-xxx.xx.x.xxx ~]# mysql -h rds.xxxxxxxxxxx.ap-northeast-2.rds.amazonaws.com \
-uadmin -p

 

2. RDS에 MySQL 덤프본 넣고 연결해보자.

 

우선은 RDS에 접속하여 데이터베이스를 생성한다. 그다음 사용자 계정을 만들어 권한을 나누고 싶다면 추가로 사용자 생성하여 권한을 분리하면 된다. 다만, 이번 케이스에서는 관리자 계정으로 해당 DB를 관리할 예정이여서, 생략한다.

(보안적으로 사용자 계정을 두어야 좋다. (db.config)파일이 탈취되었을때 그래도 관리자 계정을 유지할 수 있다.)

 

MariaDB [(none)]> create Database hakmoon;
[root@ip-xxx.xx.x.xxx ~]# mysql \
-h rds.csbkhag60ldr.ap-northeast-2.rds.amazonaws.com -uadmin -p hakmoon < ${backup파일명}.sql

위와 같이 적용하면 접속은 되나 아래와 같이 이미지 깨짐과 404 호출 에러를 확인 할 수 있다.

-> 원인은 당연히 도메인이 변경(폐쇄)되었기 때문에 이미지 GET 요청이 실패하는 것이다.

 

따라서! DB 내에 url 설정이 '%elbpdpdp.tk%' 로 되어 있는 부분을 '%hakmoon.com%' 으로 변경을 하는 것이 최종 목표라고 볼 수 있다.

 

우리는 MySQL Replace 함수를 사용하여 변경을 할 예정이며, 순서는 아래와 같다.

 

1) elbpdpdp.tk 가 들어간 곳을 조회를 한다. (table 하나 하나 조회 필요 !! 노가다임)

 

MariaDB [hakmoon]> select * from wp_options where option_value like '%elbpdpdp.tk%';
+-----------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+
| option_id | option_name           | option_value                                                                                                                                                                                                                                                                                                                                                                                                               | autoload |
+-----------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+
|         2 | home                  | https://elbpdpdp.tk                                                                                                                                                                                                                                                                                                                                                                                                        | yes      |
|       157 | ftp_credentials       | a:3:{s:8:"hostname";s:8:"elbpdpdp.tk";s:8:"username";s:5:"elbpdpdp";s:15:"connection_type";s:3:"ftp";}                                                                                                                                                                                                                                                                                                                     | yes      |
|       274 | theme_mods_rockaholic | a:4:{s:18:"custom_css_post_id";i:-1;s:16:"header_textcolor";s:4:"#fff";s:12:"header_image";s:52:"https://elbpdpdp.tk/wp-content/uploads/2020/09/1.jpg";s:17:"header_image_data";O:8:"stdClass":5:{s:13:"attachment_id";i:36;s:3:"url";s:52:"https://elbpdpdp.tk/wp-content/uploads/2020/09/1.jpg";s:13:"thumbnail_url";s:52:"https://elbpdpdp.tk/wp-content/uploads/2020/09/1.jpg";s:6:"height";i:618;s:5:"width";i:960;}} | yes      |
+-----------+-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+

 

2) 위와 같이 하나씩 모두 조회를 한다. 

예를 들어 지금 wp_options 테이블의 칼럼 option_value 에 https://elbpdpdp.tk 가 보인다. 이를 https://hakmoon.com으로 로 변경을 하면 된다.

 

 

MariaDB [hakmoon]> SELECT REPLACE(option_value, 'https://elbpdpdp.tk', 'https://hakmoon.com') AS content FROM wp_options WHERE option_value LIKE '%https://elbpdpdp.tk%';
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| content                                                                                                                                                                                                                                                                                                                                                                                                                    |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| https://hakmoon.com                                                                                                                                                                                                                                                                                                                                                                                                        |
| a:4:{s:18:"custom_css_post_id";i:-1;s:16:"header_textcolor";s:4:"#fff";s:12:"header_image";s:52:"https://hakmoon.com/wp-content/uploads/2020/09/1.jpg";s:17:"header_image_data";O:8:"stdClass":5:{s:13:"attachment_id";i:36;s:3:"url";s:52:"https://hakmoon.com/wp-content/uploads/2020/09/1.jpg";s:13:"thumbnail_url";s:52:"https://hakmoon.com/wp-content/uploads/2020/09/1.jpg";s:6:"height";i:618;s:5:"width";i:960;}} |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

 

SELECT REPLACE 를 사용하면 직접 UPDATE를 하는 것은 아니고 변경했을때 결과를 출력해준다.

확인이 되었으면, update를 해주자.

 

MariaDB [hakmoon]> UPDATE wp_options SET option_value = REPLACE(option_value, 'https://elbpdpdp.tk', 'https://hakmoon.com')
WHERE option_value LIKE '%https://elbpdpdp.tk%';

Query OK, 2 rows affected (0.01 sec)
Rows matched: 2  Changed: 2  Warnings: 0

#### 아래 명령어 입력했을때 결과값이 안나와야 다  바뀌었다고 볼 수 있다. ####
MariaDB [hakmoon]> select * from wp_options where option_value like '%elbpdpdp.tk%';

 

위와 같이 모든 테이블에 작업을 진행하면 완료된다.

반응형

+ Recent posts