53 ; dns ํฌํธ๋ฒํธ
default ๋ณด์๊ทธ๋ฃน 2๊ฐ ์ ์ธ ๋ชจ๋ ์ญ์ ํ๊ณ ์งํ
ํธ์คํ
์์ญ ํ๋๋น ํ๋ฌ์ 0.5๋ฌ๋ฌ . 12์๊ฐ ์์ ์ญ์ ํ๋ฉด ๋น์ฉ X.
โ๏ธ 0. route53 - ํธ์คํ
์์ญ ์์ฑ
โ๏ธ 1. ๋๋ฉ์ธ ์ด๋ฆ์ ๋๋ฉ์ธ ์ฝ์
- ์ฐ์ธก ๋งจ ํ๋จ ํธ์ฝ์ด ์์ญ ์์ฑ ํด๋ฆญ
โ๏ธ 2. NS์ ํ ๊ฐ/ํธ๋ํฝ ๋ผ์ฐํ
๋์ ํ์ธ
โ๏ธ 2-1. ๋๋ฉ์ธ ๋ง๋ค์ด๋ ๊ฐ๋น์ ์ ์, ๋๋ฉ์ธ ์์ธ ํ์ด์ง - ๋ค์์๋ฒ ์ค์ ์์ 1์ฐจ~4์ฐจ ํธ์คํธ๋ช
์ง์ฐ๊ณ AWS๋ค์์๋ฒ ์ ๋ณด ๋์ ์ ์ญ์ ํ ์ฝ์
โ๏ธ 2-2. ์์ ์ ์ธ์ฆ ํ ์ ์ฉ
vpc- ์๋ธ๋ท - 'MY-PUBLIC-SUBNET-'ํ๋์ฉ ์ ํ - ์์ -์๋ธ๋ท ์ค์ ํธ์ง - ์๋ ํ ๋น IP ์ค์ ์ฒดํฌ - ์ ์ฅ
โ๏ธ๋ช
์ ์ ๋ ๋ถ๋ถ์ default
โ๏ธ ์ด๋ฆ : WEBSERVER
โ๏ธ ํคํ์ด : aws-key
โ๏ธ ๋คํธ์ํฌ ์ค์
โ๏ธ ๊ณ ๊ธ ์ธ๋ถ ์ ๋ณด
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
โ๏ธ ์ธ์คํด์ค ์์ ํด๋ฆญ
โ๏ธ 0. Route 53 - ํธ์คํ
์์ญ - ๋๋ฉ์ธ์ฃผ์ ํด๋ฆญ - ๋ ์ฝ๋ ์์ฑ
โ๏ธ 1. ๋ ์ฝ๋ ์ด๋ฆ : blog - ๊ฐ์ WEBSERVER ํผ๋ธ๋ฆญ IP ์ฝ์
โ๏ธ 0. VPC - ์๋ธ๋ท - ์๋ธ๋ท ์์ฑ
โ๏ธ 1. VPC : MY-VPC
โ๏ธ 1-1. ์ด๋ฆ : MY-PRIVATE-SUBNET-2(A,B,C,D)
โ๏ธ 1-2. ๊ฐ์ฉ์์ญ : 2(A,B,C,D)
โ๏ธ 1-3. ip CIDR ๋ธ๋ก : 64.0/20, 80.0/20, 96.0/20, 112.0/20
โ๏ธ์ด 4๊ฐ์ ํ๋ผ์ด๋น ์๋ธ๋ท ์์ฑ.
โ๏ธ 0. VPC - ๋ผ์ฐํ
ํ
์ด๋ธ - ๋ผ์ฐํ
ํ
์ด๋ธ ์์ฑ
โ๏ธ 1. ์ด๋ฆ : MY-PRIVATE-SUBNET-RTB
โ๏ธ 1-1. VPC : MY-VPC - ๋ผ์ฐํ
ํ
์ด๋ธ ์์ฑ ํด๋ฆญ
โ๏ธ 2. ์๋ธ๋ท ์ฐ๊ฒฐ - ๋ช
์์ ์๋ธ๋ท ์ฐ๊ฒฐ - ์๋ธ๋ท ์ฐ๊ฒฐ ํธ์ง - PRIVATE ์๋ธ๋ท๋ค (4๊ฐ) ์ฒดํฌ - ์ฐ๊ฒฐ ์ ์ฅ ํด๋ฆญ
โ๏ธ๋ช
์ ์ ๋ ๋ถ๋ถ์ default
โ๏ธ ์ด๋ฆ : DBSERVER
โ๏ธ ์ด๋ฏธ์ง : Canonical, Ubuntu, 18.04 LTS, amd64 bionic image build on 2022-04-11
โ๏ธ ํคํ์ด : aws-key
โ๏ธ ๋คํธ์ํฌ ์ค์
โ๏ธ ์ธ์คํด์ค ์์ ํด๋ฆญ
๐ข ์ฃผ์์ฌํญ : public IP๋ก ping ์๋๊ฐ์ผ ์ ์! ํ์์์๋ DB์๋ฒ์ public IP ์ค ํ์๋ ์์ต๋๋น. ํ์ง๋ง, WEB์๋ฒ CLIํ๊ฒฝ์์ DB์๋ฒ PRIVATE IP๋ก ping ์ณค์ ๋ ๋๊ฐ์ผ ํฉ๋๋น.
mobaxterm SSH๋ธ๋ผ์ฐ์ ํตํด์ aws-key.pem WEBSERVER home๊ฒฝ๋ก์ ํค ๋ฃ๊ธฐ.(ํ์ผ ๋๋๊ทธ)
key ๊ถํ ๋ฐ๊ฟ์ฃผ๊ณ , ubuntu(DB์๋ฒ)๋ก ์ ์
[ec2-user@ip-10-14-11-201 ~]$ sudo chmod 400 aws-key.pem
[ec2-user@ip-10-14-11-201 ~]$ ssh -i aws-key.pem ubuntu@10.14.97.126
The authenticity of host '10.14.97.126 (10.14.97.126)' can't be established.
ECDSA key fingerprint is SHA256:jLKIKqzUzWcwHriO4zLC64s4jXYi2QBCHG+jwio3q/8.
ECDSA key fingerprint is MD5:fd:59:26:be:d7:a9:7a:79:4e:1c:f2:94:0f:a8:09:a7.
Are you sure you want to continue connecting (yes/no)? yes
โ๏ธ 0. vpc - nat๊ฒ์ดํธ์์ด -๊ฒ์ดํธ์จ์ด ์์ฑ ํด๋ฆญ
โ๏ธ 1. ์ด๋ฆ : MY-NGW
โ๏ธ 2. ์๋ธ๋ท : MY-PUBLIC-SUBNET-2A
โ๏ธ 3. ํ๋ ฅ์ IPํ ๋น ํด๋ฆญ
โ๏ธ 4. NAT๊ฒ์ดํธ์จ์ด ์์ฑ๋ฒํผ ํด๋ฆญ
โ๏ธํ๋ ฅ์ IP๋ 1๊ฐ์ ํํ์ฌ ์ฌ์ฉ์ํ๊ณ ๋ณด๊ดํ๋ฉด ๊ณผ๊ธ๋์ง๋ง, ๋ฐ๋ก ์ฐ๊ฒฐํด์ ์ฌ์ฉํ๋ฉด ๊ณผ๊ธ๋์ง ์์.
$ sudo apt-get update -y
$ sudo apt-get install -y mariadb-server unzip nfs-common
$ sudo mysql_secure_installation
์ํฐ, y, ๋น๋ฐ๋ฒํธ, ๋ค y
$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
#bind-address = 127.0.0.1
$ sudo systemctl restart mysql
$ sudo mysql -u root -p
CREATE USER 'wpuser'@'%' IDENTIFIED BY 'wppass';
CREATE DATABASE IF NOT EXISTS wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%';
quit
# wget https://ko.wordpress.org/wordpress-4.8.2-ko_KR.zip
# sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
# cd /var/www/html
# sudo unzip /home/ec2-user/wordpress-4.8.2-ko_KR.zip
# sudo mv ./wordpress/* .
# sudo chown -R apache:apache /var/www/*
# sudo systemctl restart httpd
โ๏ธ ๋๋ฉ์ธ์ผ๋ก ๋ธ๋ผ์ฐ์ ์น์๋ฒ ์ ์, ์ฌ์ดํธ์์ ์ค์น ์งํ
โ๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์คํธ์คํธ์ DB์๋ฒ ๋ด๋ถ IP๊ธฐ์
.
โ๏ธ NAT๊ฒ์ดํธ์จ์ด ์ญ์ , ํ๋ ฅ์ IP ๋ฆด๋ฆฌ์ค
๋ผ์ฐํ
ํ
์ด๋ธ - MY-PRIVATE-SUBNET-RTB - ๋ผ์ฐํ
- ๋ผ์ฐํ
ํธ์ง - ๋์ 0.0.0.0/0 NATGATEWAT ์ญ์ - ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด - ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ ์ DB์๋ฒ ping ๋๊ฐ.
(DB์๋ฒ ๋ง๋ค ๋ ํผ๋ธ๋ฆญ IP ์๋ํ ๋น ๋ฐ์๊ธฐ ๋๋ฌธ์)
โ๏ธ ์ต์ข ์ ์ผ๋ก๋, ๋ผ์ฐํ ํ ์ด๋ธ์์ 0.0.0.0/0 ๋ผ์ฐํ ์ญ์ .
SG-WEB์์ ์ถ๋ฐํ๋ ํธ๋ํฝ๋ค๋ง DB์๋ฒ์ ์ ๊ทผ ๊ฐ๋ฅ.
โ๏ธec2 -๋ณด์๊ทธ๋ฃน -sg-db - ์ธ๋ฐ์ด๋ ๊ท์น - ์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง - ์๋ ์๋ MYSQL ๊ท์น ์ญ์ - ๊ท์น ์ถ๊ฐ -์ ํ : MYSQL/Aurora - ์์ค์ ํ : ์ฌ์ฉ์ ์ง์ - ์์ค : SG-WEB -๊ท์น ์ ์ฅ
โ๏ธsecurity group ๋ค ์คํํด๋ acl์์ ๋งํ์์ผ๋ฉด ์ฐจ๋จ๋จ.
โ๏ธACL ์ ์๋ธ๋ท ์ ์ฒด๋ฅผ ์ปจํธ๋กค ๊ฐ๋ฅ.
โ๏ธ๋ณด์๊ธฐ๋ฅ์ ์ฐจ๋จ ๊ธฐ๋ฅ ์์ผ๋ (ํ์ฉ ๊ธฐ๋ฅ๋ง ์์.)
ACL ์ฐจ๋จ๊ธฐ๋ฅ ์ด์ฉํ์. (ํน์ IP์ฐจ๋จ ๊ฐ๋ฅ)
โ๏ธ vpc- ๋ณด์ - ๋คํธ์ํฌ ACL
โ๏ธ 8๊ฐ ์๋ธ๋ท ๊ฐ๊ณ ์๋ ACL์ ์ด๋ฆ MY-NACL, 4๊ฐ(default)์ ์ด๋ฆ DEF-NACL.
โ๏ธ MY-NACL - ์ธ๋ฐ์ด๋ ๊ท์น - ์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง(all-allow์ํ)
โ๏ธ์ ๊ท์น ์ถ๊ฐ - ๊ท์น๋ฒํธ : 100๋ณด๋ค ์์์ - ์ ํ : HTTP - ์์ค : ์ฐจ๋จํ IP - ํ์ฉ/๊ฑฐ๋ถ : ๊ฑฐ๋ถ
โ๏ธ ๋ฐฉ๊ธ ์์ฑํ ๊ท์น ์ญ์ ํ๊ณ ๋ง๋ฌด๋ฆฌ.
๐ข ์ฃผ์์ฌํญ : 100๋ฒ ๊ท์น๋ฒํธ ์ ๋ ์ญ์ ํ๋ฉด ์๋จ!! ๊ฑฐ๋ถ ๊ท์น์ ์ญ์ ํ ์ ์์ด์ ๋ชจ๋ ์ญ์ ๋จ.
๐ข ์ฃผ์์ฌํญ : ์ค์ต ํ ๋ง์๋์๋๊ฑฐ ์ญ์
์์ ๊ด๋ฆฌํ ์๋น์ค ์๋ ๋ฐฑ์ , ์๋ ๊ณ ๊ฐ์ฉ์ฑ, ์๋ ์กฐ์
โ๏ธwordpress๊ฒ์๊ธ์ ๋๊ธ ์์ฑ
โ๏ธDB์๋ฒ MariaDB ๋ฒ์ ํ์ธ
ubuntu@ip-10-14-97-126:~$ mariadb --version
mariadb Ver 15.1 Distrib 10.1.48-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
โ๏ธ RDS - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ - ํ์ค์์ฑ - MariaDB - ๋ฒ์ : 10.2.39 (DB์๋ฒ์ ์ค์นํ MariaDB๋ฒ์ ๊ณผ ๊ฐ์ฅ ์ ์ฌํ ๋ฒ์ ์ ํ)
โ๏ธ ํ๋ฆฌํฐ์ด - ์๋ณ์ ๊ทธ๋๋ก, ๋ง์คํฐ ์ฌ์ฉ์ ์ด๋ฆ ๊ทธ๋๋ก(๋ฐ๊ฟ๋ ๋จ) - ์ํธ ์
๋ ฅ
โ๏ธ ์ธ์คํด์ค ๊ตฌ์ฑ - db.t2.micro
โ๏ธ ์คํ ๋ฆฌ์ง - ๊ทธ๋๋ก
โ๏ธ ๊ฐ์ฉ์ฑ ๋ฐ ๋ด๊ตฌ์ฑ -๊ทธ๋๋ก
โ๏ธ ์ฐ๊ฒฐ -IPv4 - VPC : MY-VPC -
โ๏ธ ์๋ธ๋ท ๊ทธ๋ฃน ์์ฑ - ํผ๋ธ๋ฆญ ์ก์ธ์ค : ์๋์ (์ธ๋ถ์์ ์ง์ ์ง์ ๋ถ๊ฐ bastion host ๊ฑฐ์ณ์ ๊ฐ์ผํจ.) - ๋ณด์๊ทธ๋ฃน : SG-DB (default ์ญ์ ) ๊ฐ์ฉ์์ญ : 2b
โ๏ธ ์ถ๊ฐ ๊ตฌ์ฑ ๊ทธ๋๋ก - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
โ๏ธ ๋ชฉ๋ก์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ ํด๋ฆญ - ์๋ํฌ์ธํธ ์ฃผ์ ํ์ธ
โ๏ธ ๋ณด์๊ทธ๋ฃธ - SG-DB -์ธ๋ฐ์ด๋ ๊ท์น ํธ์ง -MYSQL ์ญ์ ์์น๋ฌด๊ด (Anywhere-IPv4)๋ก ๋ค์ ์ถ๊ฐ
โ๏ธ ์๋ํฌ์ธํธ ์ฃผ์ ํ์ธํ์ฌ ๋ช ๋ น์ด ์ ๋ ฅํด์ DB์๋ฒ์์ MYSQL ์ง์
ubuntu@ip-10-14-97-126:~$ mysql -h database-1.crfklihww3gw.ap-northeast-2.rds.amazonaws.com -u admin -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 33
Server version: 10.2.39-MariaDB-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
CREATE USER 'wpuser'@'%' IDENTIFIED BY 'wppass';
CREATE DATABASE IF NOT EXISTS wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%';
ubuntu@ip-10-14-97-126:~$ sudo mysqldump -uwpuser -pwppass wordpress > wordpress.sql
ubuntu@ip-10-14-97-126:~$ sudo mysql -h database-1.crfklihww3gw.ap-northeast-2.rds.amazonaws.com -uwpuser -pwppass wordpress < wordpress.sql
mysqldump -u[์ฌ์ฉ์์์ด๋] -p[ํจ์ค์๋] ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
ํ
์ด๋ธ๋ช
> ๊ฒฝ๋ก ๋ฐ ์ ์ฅ๋ ํ์ผ๋ช
.sql //๋ฐฑ์
sudo mysqldump -uwpuser -pwppass wordpress > wordpress.sql
mysql -h [์๋ํฌ์ธํธ ์ฃผ์] -u[์ฌ์ฉ์์์ด๋] -p[ํจ์ค์๋] ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
< ๊ฒฝ๋ก ๋ฐ ๋คํ ํ์ผ๋ช
.sql //์๊น ๋ฐฑ์
ํ ํ์ผ ๋ค์ ๋ฃ๊ธฐ
sudo mysql -h database-1.crfklihww3gw.ap-northeast-2.rds.amazonaws.com -uwpuser -pwppass wordpress < wordpress.sql
โ๏ธ ์น์๋ฒ ์๋ํ๋ ์ค ๋๊ธฐ
[ec2-user@ip-10-14-11-201 ~]$ cd /var/www/html
[ec2-user@ip-10-14-11-201 html]$ ls
index.php wp-blog-header.php wp-includes wp-signup.php
license.txt wp-comments-post.php wp-links-opml.php wp-trackback.php
readme.html wp-config.php wp-load.php xmlrpc.php
wordpress wp-config-sample.php wp-login.php
wp-activate.php wp-content wp-mail.php
wp-admin wp-cron.php wp-settings.php
[ec2-user@ip-10-14-11-201 html]$ sudo mv wp-config.php wp-config.php.bak
[ec2-user@ip-10-14-11-201 html]$ ls
index.php wp-blog-header.php wp-includes wp-signup.php
license.txt wp-comments-post.php wp-links-opml.php wp-trackback.php
readme.html wp-config.php.bak wp-load.php xmlrpc.php
wordpress wp-config-sample.php wp-login.php
wp-activate.php wp-content wp-mail.php
wp-admin wp-cron.php wp-settings.php
[ec2-user@ip-10-14-11-201 html]$
โ๏ธ RDS์ ์ด๊ดํด๋์๋ ๊ฑธ๋ก ๋ค์ ์ฐ๊ฒฐํ๊ธฐ
โ๏ธ ๋ค์ ์น๋ธ๋ผ์ฐ์ ์์ ๋๋ฉ์ธ ์
๋ ฅํด์ ์น์ฌ์ดํธ ์ ์.
โ๏ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ์คํธ ์๋ํฌ์ธํธ ์ฃผ์๋ก ์ค์นํ๊ธฐ.
โ๏ธ ๋ฐ์ดํฐ ํ์ธ
๐โ๏ธโ๏ธ๐ขโญ๏ธ๐
โ๏ธ Multi AZ : ๋ค๋ฅธ ๊ฐ์ฉ์์ญ์ ์๋ฒ ๋๊ณ ๋ก๋๋ฐธ๋ฐ์ค
โ๏ธ Cross region : ๋ค๋ฅธ๋ฆฌ์ ์ ์๋ฒ ๋๊ณ ๋ก๋ ๋ฐธ๋ฐ์ค (route53์ด์ฉ )GSLB
โ๏ธ ์๋์ผ๋ก ํ ๋น๋ฐ์ ํผ๋ธ๋ฆญ IP๋ ์ธ์คํด์ค๋ฅผ ์ค์งํ๋ค๊ฐ ๋ค์ ์์ํ๋ฉด ์๋ก ํ ๋น๋จ (IP๊ฐ ๋ฐ๋.) -> DNS ์ฐ๊ฒฐ๋ฌธ์ ์๊น.
โ๏ธ ๋๋ฌธ์ ์น์๋ฒ ๊ฐ์ ๊ฒฝ์ฐ์๋ ํ๋ ฅ์ IP๋ฅผ ์ฌ์ฉํด์ผํจ.
๋ง์ฝ ๋ชจ๋ฅด๊ณ ์ค๋ ์ท ์์ฑํ๋๋ผ๋ RDS ์ค๋ ์ท ํญ- ์๋์์ ์ค๋ ์ท ์ง์์ฃผ๋ฉด ๋จ (์์คํ , ํผ๋ธ๋ฆญ ๋ฑ์ ์ ๊ฒฝ X)
๊ฐ์ฌํฉ๋๋ค. ํญ์ ์๋ณด๊ณ ์์ต๋๋ค!