호스팅 영역 : zone
보안그룹 삭제가 안되는 이유 : 아웃바운드 규칙에 보안그룹이 세팅되어 있었다.
도메인을 판매해주기도 함. dns 기능 외에도 다른 기능이 몇가지 더 있다. 라우팅. 로드밸런싱..?
SLB : 서버 로드 밸런싱;
GSLB(=Route53 ) : 글로벌 서버 로드밸런서; 다른 리전들과 로드밸런싱하는 것. 한 지역의 서버가 죽어도 다른 지역의 서버를 사용할 수 있도록 해준다.
cross region : ...... 설명추가
본인이 보유한 도메인을 입력하면 된다.
가비아 접속 - my 가비아 - 도메인 통합관리 툴 - 본인 도메인 클릭 - 도메인 복사 - route53 도메인 이름에 붙여넣기
호스팅 영역 생성 버튼 클릭
DNS 정방향 db에 ns 정보 파일내용이 표현 되어 있음.
NS 네임서버
AWS가 제공하는 도메인주소 4가지를 우리가 등록했던 기관에 네임서버의 정보를 AWS의 네임서버로 바꿔주면 알아서 도메인이 AWS 네임서버 쪽으로 이동을 함.
네개의 주소 복사해서 메모장에 붙여넣기. 주소 끝에 있는 점을 지워준다.
가비아 네임서버 정보를 지우고 1차 - 4차를 메모장의 주소로 붙여넣어준다. AWS 네임서버로 변경.
도메인을 아무나 변경하면 악의적인 의도를 가지고 범죄가 발생할 수 있다. 따라서 사용자 인증을 해야함(무결성)
10-15분 뒤에 등록 완료된다. A 레코드를 세팅할 수 있게 된다~~!
워드프레스 설치 예정
EC2 - 인스턴스 - 인스턴스 시작
이름 및 태그 : WEBSERVER
OS - Amazon Linux2
<네트워크 - 편집>
VPC : MY-VPC
서브넷 : MY-PUBLIC-SUBNET-2A
퍼블릭 IP 자동할당 : 활성화 (비활성화 시키면 공인IP를 사서 써야함)
보안그룹 : 보안그룹 생성
<보안그룹>
이름: SG-WEB
인바운드 규칙
SSH - 소스: 위치무관
HTTP - 소스 : 위치무관
모든 ICMP - IPv4 - 소스 : 위치무관
사용자 데이터
#!/bin/bash
yum install -y httpd
systemctl enable --now httpd
VPC 콘솔 - 서브넷 - 필터(MY-) - 하나씩 체크해서 - 작업(서브넷 설정편집) - 자동할당IP설정 (퍼블릭 IPv4 주소 할당 활성화 클릭)
저장 클릭
퍼블릭 서브넷은 퍼블릭 ip가 필요하므로 이 세팅을 해두면 편하다. 프라이빗 서브넷은 프라이빗이므로 할 필요가 없다.
route53 - 호스팅 영역
http://blog.wonyyy.shop/ 도메인으로 접속해보기
홈페이지 뜨면 성공
mobaxterm으로 인스턴스 도메인(blog.wonyyy.shop) 입력해서 들어간당
퍼블릭 서브넷을 생성하고 남은 네트워크를 프라이빗 서브넷으로 생성한다.
vpc - 서브넷 생성 클릭 - MY-VPC - 서브넷 이름(MY-PRIVATE-SUBNET-2A~D) - 엑셀 파일에 따라 ip 범위 추가
* 프라이빗 서브넷은 보안성의 이유로 불편하지만 안전하다.
직접 만들어 볼 것이다.
4개의 프라이빗 서브넷과 연결해주어야한다.
EC2 - 인스턴스 시작 - 이름:DBSERVER - 이미지:Ubuntu18.04 프리티어
<네트워크 - 편집>
이름 : MY-VPC
서브넷 : MY-PRIVATE-SUBNET-2C(프리티어라 a,c만 선택가능 2a에 웹서버가 있음. db서버는 2c로 보내겠따)
보안그룹
db서버 퍼블릭ip로 핑을 쳤을 때 라우팅 정보가 전혀 없기 때문에 날라가지 않는다.
(단순히 무료라서 받은 것 보단 쓸모가 있어서 받은 것.)
웹서버는 라우팅되어있기 때문에 핑이 날라간다.
db서버 프라이빗 ip로 핑치면 나간다.
웹서버를 경유해서 key를 올려준 뒤 접속한다.
웹서버 세션에서 오른쪽 클릭 후 duplicate tab 후 db서버로 접속한다.
mobaxterm에서 인스턴스에 키 업로드
[ec2-user@ip-10-19-9-138 ~]$ ls
aws2-key.pem
[ec2-user@ip-10-19-9-138 ~]$ ll
total 4
-rw-r--r-- 1 ec2-user ec2-user 1674 May 31 02:43 aws2-key.pem
// 키에 권한이 너무 많아서 줄여줘야함.
[ec2-user@ip-10-19-9-138 ~]$ sudo chmod 400 aws2-key.pem
// 접속
[ec2-user@ip-10-19-9-138 ~]$ ssh -i aws2-key.pem ubuntu@10.19.106.151
인터넷으로 연결이 안되어있기때문에 설치명령어를 쳐도 진행이 안된다.
바깥으로 나가는 라우팅도 안되어있기 때문
DB 서버의 핑이 바깥으로 나가게 해주는 역할
VPC 콘솔 - NAT 게이트웨이 클릭 - NAT 게이트웨이 생성
냬부 외부 랜카드 두개가 붙었다고 보면된다.
1시간 이상이면 과금되므로 삭제, 탄력적 ip도 릴리스 해준다.
라우팅을 세팅하지않으면 핑이 나가지않는다.
vpc 콘솔 - 라우팅 테이블 - MY-PRIVATE-SUBNET-RTB 클릭 -라우팅 편집 클릭
nat게이트웨이로 가는 라우팅 테이블을 추가해야줘야한다.
db 서버에서 인터넷으로 ping 이 나간다.
// MariaDB 설치
$ sudo apt update -y
$ sudo apt install -y mariadb-server unzip nfs-common
$ sudo mysql_secure_installation
$ 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
$ sudo apt-get install -y nfs-common
# sestatus
disabled
// 웹서버 설치
# 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
# sudo systemctl enable --now httpd
웹브라우저 http://blog.wonyyy.shop/
웹브라우저 접속 후 워드프레스 설치 시작 데이터베이스ip는 db서버 ip 넣기
지워준다.
인스턴스 중지 후 다시 실행하면 퍼블릭 ip가 바뀐다. 그러면 웹사이트를 도메인으로 접속하면 접속이 안됨. route53에 들어가서 레코드의 ip를 변경해주어야함.
보안그룹 - SG-DB 인바운드 규칙 - 인바운드규칙 편집 클릭 - MYSQL 규칙 삭제 후 다시 생성, 소스는 SG-WEB으로 변경
특정 네트워크를 차단하는 기능을 사용할 수 있다.
ACL로 모바일(5G, LTE)만 접속하고 pc 접속은 차단해볼 것임
VPC 콘쏠 - 녜트워크 ACL 클릭, MY-VPC 예 연결된 acl 확인 - 인바운드 규칙 편집(위에 있는 것이 우선임)
모든 트래픽을 허용 규칙. 절대 제거하면 안됨
100번보다 작은 번호를 부여하면 이 규칙보다 앞서게됨. 우선 순위가 앞서게된다.
내 ip 차단 규칙 추가
RDS 대시보드 - 데이터베이스 생성 클릭(DBMS를 만든다고 보면됨) - 표준 생성 클릭 - 엔진유형 : mariaDB 클릭(10.2.39) - 템플릿 : 프리티어
SG-DB 의 MYSQL 소스가 sg-web으로 되어있어서 mobaxterm에서 접속이 안된다.
그래서 anywhere로 소스를 바꿔주어야함
// 접속명령어
mysql -h database-1.ckxsxn5j2vga.ap-northeast-2.rds.amazonaws.com -u admin -p
CREATE USER 'wpuser'@'%' IDENTIFIED BY 'wppass';
CREATE DATABASE IF NOT EXISTS wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'%';
quit
// 백업
mysqldump -u[사용자아이디] -p[패스워드] 데이터베이스명 테이블명 > 경로 및 저장될 파일명.sql
sudo mysqldump -uwpuser -pwppass wordpress > wordpress.sql
// 복원
mysql -u[사용자아이디] -p[패스워드] 데이터베이스명 < 경로 및 덤프 파일명.sql
sudo mysql -h database-1.ckxsxn5j2vga.ap-northeast-2.rds.amazonaws.com -uwpuser -pwppass wordpress < wordpress.sql
[ec2-user@ip-10-19-9-138 html]$ sudo mv wp-config.php wp-config.php.bak
RDS 엔드포인트를 넣어준다.
db 서버를 rds로 이관하는 작업 완료