AWS

22.06.21

가로선 2022. 6. 21. 20:40

 

   목차   

 

1. CentOS6를 사용한 IPtables 설정

2. 구성도

3. AWS를 사용한 DB 연동

4. PHP 7.2 설치

5. WORDPRESS-DB 연동


 

   CentOS6를 사용한 IPtables 설정   

 - Host-Only 카드만 가진 CentOS6-1이 외부와 통신이 되도록 설정

 - CentOS6외에는 NAT, Host-Only 카드 2개를 가진다

 - 이 테스트를 통해 AWS 설정시 NGW를 WEB-A 둬야하는지 생각!

 

Host-Only 카드 설정

    - NAT 카드는 10.0.0.0/24로 설정되어있다

 

CentOS6-0에 Host-only, NAT 카드 부착

 

CentOS6-1에 Host-only 카드 부착

 

패킷 포워딩 활성화

    - 패킷 포워딩 : 라우터에 패킷이 들어온 포트에서 패킷이 나가는 포트로 이동시키는 것

        - 즉, 선택된 경로를 저장하기 위해 사용

    - /etc/sysctl.conf에서 수정 가능

 

CentOS6의 Host-Only 카드 IP

    - eth0를 게이트웨이 역할로 사용

    - eth0가 Host-only의 게이트웨이 역할을 함으로 10.10.10.0/24 대로 잡아준다

    - 설정 후에 Host PC의 Host-Only 카드에도 설정이 된 것을 확인

    - CentOS6에서는 systemctl 명령어가 먹히지 않으므로

      /etc/init.d/network restart를 통해 재부팅 해줘야 한다

 

CentOS6의 NAT 카드 IP

    - eth1 NAT 설정(외부와의 통신)

 

외부(8.8.8.8)과 통신이 되는 것을 확인

 

CentOS6-1의 Host-only카드 IP

    - CentOS6의 eth0(GW 역할)의 IP을 GW로 설정

    - CentOS6-0의 GW를 통해 CentOS6-0의 NAT카드를 사용하여 외부와 통신

 

IPtables 설정

    - iptables에 filter 테이블에 미리 정의된 FORWARD 정책 변경 및 삭제

    - iptables에 FORWARD에 새로운 규칙 추가

        - 입출력 인터페이스를 eth0로 변경하고 패킷을 받아들인다

        - 여기서 eth0는 게이트웨이 역할을 하는 CentOS6의 Host-Only카드!

    - NAT 테이블 선택하여 라우팅 후 출발지 주소변경(NAT카드로 출력을 위해)

        - MASQUERADE : 조건에 일치하는 패킷의 출발지 주소를 변환

            - 지정한 eth1 인터페이스 방향을 제외한 네트워크는 출발지 주소변환의 대상

    - 설정 완료 후, service iptables save로 라우팅 설정 저장

 

설정 전, 외부와 통신이 되지 않는 것을 확인

 

설정 후, CentOS6-1에서도 외부로 핑 통신이 되는 것을 확인

 

 

   구성도   

 

구성도

    - WEB_A를 제외한 서브넷은 전부 Private

        - DB같은 경우는 업데이트를 위해 NAT GW 연결

    - Bastion을 사용하여 다른 인스턴스에 접속하기

    - DB-A : 10.0.2.174 / WEB-A : 10.0.0.40 / WEB-C : 10.0.1.204 / DB-C : 10.0.3.125

 

 

   AWS를 사용한 DB 연동   

 - Bastion을 통해 내부접속하여 각각의 인스턴스 설정 진행

 

Bastion과 WEB-A에 Public IP 할당

    - Bastion은 외부에서 접속하여 설정을 위해 Public IP가 필요

    - WEB-A는 php파일 연동 테스트를 위해 Public IP 할당(설정 다 마친 후 할당)

 

HOST PC에서 Bastion으로 scp를 통해 php 파일 복사

 

bastion에서 WEB-A로 php 파일 복사

 

WEB-A에 복사된 것을 확인

    - php파일 설정 진행

        - DB 서버는 DB-A의 Private IP 대입

        - Person1.php에서는 WEB-A의 Public IP 대입

 

Bastion에서 DB-A 접속 후, test와 member DB 생성

 

member DB에서 member table 설정 및 권한 부여

 

Bastion에서 WEB-C 접속

    - 인스턴스 생성시 userdata 사용하여 설치 진행

        - 내용이 제대로 들어가져 있는지 확인

 

WEB-A에 부여한 Public IP로 php파일 접속 후 테스트

 

table 확인

 

 

   PHP 7.2 설치   

 

설치되어 있는 php 7.4 버전 삭제

 

php7.4 버전 disable

 

php7.2 버전 enable

 

해당 파일 설치

 

자신의 커널버전 확인 명령어

 

 

   WORDPRESS-DB 연동   

 - Docker로 Wordpress 설치

 - wget으로 파일 wordpress tar파일 받기

 

Docker로 설치 및 설정 변경

 

wget으로 파일 받아오기

 

파일 받아온 후, wp-config.php 샘플파일을 복사시켜 wp-config 설정파일 생성

 

vi 편집기를 통해 내용 수정

 

WordPress 접속 확인

    - WEB-C에서 Wordpress 설치 및 설정을 진행하였으므로 테스트를 위해 Public IP를 부여

    - 구성도에서 수정하게 되면, NGW의 연결을 떼어 Router에 붙여 공인 IP를

       받아 외부에서 접속할 수 있도록 설정한 상태로 바뀐다

 

WordPress 접속 확인

    - WordPress 생성 때 포트포워딩을 해줬으므로 해당 포트 보안 그룹에서 Open

'AWS' 카테고리의 다른 글

22.06.23  (0) 2022.06.23
22.06.22  (0) 2022.06.22
22.06.20  (0) 2022.06.20
22.06.17  (0) 2022.06.17
22.06.16  (0) 2022.06.16