VPC를 구성하기에 앞서 피어링을 하기 위해 각각의 다른 리전에서 1개씩 VPC를 생성할 예정이며 서울에 하나, 도쿄에 하나 생성
각 VPC내 서브넷의 경우 퍼블릭2개, 프라이빗2개 총 4개씩 생성 할 것이다.
IPv4의 경우 서울은 10.0.0.0/16 , 도쿄는 20.0.0.0/16 이다.
1) 마법사를 통해 VPC를 구성한다.
퍼블릭과 프라이빗 서브넷은 2개씩 생성
[서울 VPC]
[도쿄 VPC]
2) 서로 합의한 서브넷에 피어링 연결을 생성한다.
서울과 도쿄의 각 퍼블릭 서브넷A 구역을 피어링 하기로 함
연결 요청할 때 VPC ID 확인 잘 할 것! (상대ID)
요청받은 리전에서 [요청 수락] 하면 피어링 성공!
3) 각 퍼블릭 서브넷에 액세스하기위한 라우팅 테이블을 편집
서울을 도쿄 IP를 통한 피어링, 도쿄는 서울 IP를 통한 피어링을 위해 편집
4) 피어링이 잘 되었는지 인스턴스를 생성하여 확인하기 (서울, 도쿄)
마찬가지로 네트워크, 서크벳, 퍼블릭IP 자동 할당에 유의
5) 보안그룹 규칙을 추가한다 (서울, 도쿄)
SSH - 나의 IP
HTTP(웹 테스트용) - 서로의 IP
모든 ICMP-IPv4(핑테스트용) - 서로의 IP
6) Xshell을 통한 피어링 확인
각 자의 ip로 접속 후 서로 해볼 것
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
echo "test page" > index.html
sudo cp index.html /var/www/html
curl http://20.0.5.190 ← (피어링 리전 퍼블릭 ip)
test page ← (피어링 확인 완료!)
[서울에서 도쿄로 테스트]
[도쿄에서 서울로 테스트]
1)EC2로 직접 DB를 구성하자
먼저 사용할 인스턴스2개를 만들기(퍼블릭 서브넷에 연결, 프라이빗 서브넷에 연결)
(퍼블릭 서브넷에 연결할 인스턴스는 앞선 인스턴스 재사용, 프라이빗 서브넷에 연결할 인스턴스만 만들 것이다.)
네트워크,서브넷,IP자동할당 유의하고 보안그룹을 설정해준다.
보안그룹 규칙 추가시 [MYSQL/Aurora] ip를 부여한다.
2) 키 페어는 기존 퍼블릭서브넷 때 다운로드 하였던 키를 사용
3) Xshell을 통한 DB 설치 및 확인
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
echo "test" > index.html
sudo cp index.html > /var/www/html
curl http://20.0.5.190 ← (퍼블릭 ip)
test ← (연결 확인)
vim .ssh/key ← (다운받은 키를 메모장으로 열고 붙여넣기 후 저장)
chmod 400 .ssh/key ← (읽기 권한만 부여)
ssh -i .ssh/key ec2-user@10.0.134.126 (db 프라이빗 ip)
4) DB용 프라이빗 인스턴스 접속 확인 후 MariaDB설치
mariadb server와 client 동시에 설치
mariadb 시작 및 활성화 후 보안설정
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
mysql_secure_installation
5) MariaDB 접속 후 DB확인
mysql -u root -p
show databases;
grant all privileges on *.* to root@'10.0.%' identified by '암호.';
FLUSH PRIVILEGES;
SELECT host FROM mysql.user WHERE user = "root";
(root 관리자의 원격접속 여부 확인하기)
6) 웹쪽 인스턴스에서 db 액세스하기
mysql -u root -p -h 10.0.134.126
[접속 완료!]
1) RDS 네트워크 및 보안설정
AmazonRDS를 통해 데이터베이스 생성
엔진 선택 → 템플릿 선택 → 설정 → 연결 → 추가구성[옵션]을 사용하여 데이터베이스 간편하게 생성 (생성 후 몇 분정도 소요)
2) Xshell을 통해 접속
보안그룹 통해 ip변경을 하지 않으면 기존 내 네트워크 자체 ip로 설정이 되기에 ip변경을 통해 액세스가 가능하도록 한다.
[액세스 거부]
[보안그룹 - IP변경]
[접속 성공!]
3) RDS 삭제할 시
1) 기존에 있던 서브넷을 사용
보안그룹을 생성한다.
첫번째는 Web용 두번째는 DB용, 대신 DB용에서 규칙을 만들때 앞서 만들었던 Web용의 보안그룹id를 소스로 사용한다.
2) RDS에서 DB 서브넷 그룹을 생성
가용영역에서는 사용가능한 가용영역을 모두 선택하고 서브넷도 확인할 것.
3) RDS DB인스턴스 생성하기
버전 정보에서 [MySQL 5.7.30]을 선택 (교재에 있는 리소스를 사용해야 하기 때문)
4) PHP가 포함된 Apache 웹 서버 설치
AMI 선택 시 Linux AMI2018.02.0(HVM) SSD Volume Type을 선택해야함
(교재 리소스 사용을 위해 - 최신버전은 구하지 못함)
세부정보 구성 시 네트워크 확인, 보안그룹 구성 시 기존 보안그룹을 사용한다.
5) Xshell을 동해 접속 php설치
sudo yum update -y
sudo yum install -y httpd24 php56 php56-mysqlnd
sudo service httpd start
웹 브라우저를 통해 테스트
교재에 나온 소스 다운받는 곳 (5.70.30 버전)
https://github.com/saga111/AWSDiscoveryBook
다운받고 알집을 풀면 아래에서 사용할 소스가 나옴
dbinfo.inc , SamplePage.php
sudo chkconfig httpd on → chkconfig,서버 부팅 시 웹서버가 자동으로 시작될 수있도록 하는 명령어
sudo groupadd www
sudo usermod -aG www ec2-user → /var/www에 대한 소유권과 권한을 부여
exit
(재접속)
groups → group에 추가되었는지 확인
[ ec2-user wheel www ]
cd /var/www
mkdir inc
cd inc
sudo yum install -y vim → 옛날 버전이라 vim탐색기 설치
sudo vim dbinfo.inc → RDS접속정보 : DB server name, username, 암호, database이름 변경해야함.
cd /var/www/html
sudo vim index.php → samplepage.php 소스를 복사 붙여넣기
sudo chown -R root:www /var/www
sudo chmod 2775 /var/www
find /var/www -type d
sudo find /var/www -type d -exec sudo chmod 2775 {} \; (교재는 오타임)
find /var/www -type f
sudo find /var/www -type f -exec sudo chmod 0664 {} \; (교재는 오타임)
[웹브라우저로 웹서버 public ip 접속하기 성공!]
[Sample Page가 안뜨고 에러가 나는 경우]
permission 에러시 확인사항
ls -l /etc/httpd/conf/httpd.conf
sudo vim /etc/httpd/conf/httpd.conf
67 group apache -> /var/www 하위 소유권을 www로 아닌 apache로 변경 해야 함.
164 DirectoryIndex index.html → index.php로 수정 , 도메인 입력시 자동실행 파일 설정
SamlpePage.php를 index.php로 저장하면 도메인이나 IP입력시 바로 출력됨.
sudo service httpd restart -> httpd.conf를 수정하였으므로 데몬 재시작
웹브라우저로 public IP주소로 재접속 하여 사이트 뜨는지 확인