티스토리 뷰
- AWS로 워드프레스 구축하기(1) VPC,서브넷 등 네트워크 환경 구축하기
예전에 AWS로 웹서버 배포환경을 구축하였지만, 실제 서비스를 배포하지 않아 아쉬웠던(?) 경험이 있었습니다. 그래서 이번 기회에 한번 나만의 서비스를 배포하고 싶어서, AWS로 워드프레스를 구축하기로 했습니다!! 저는 lightsail을 활용하지 않을 겁니다.
구축한 블로그 주소 : https://blog.jwitstudy.life (현재 비용문제로 운영 X)
※ Lightsail : 보다 간단한 AWS 버전.
※ 부족한 부분은 지속적으로 추가할 예정.
참조 블로그 AWS | AWS 클라우드를 이용한 고가용성 WordPress 서비스 배포 (tistory.com)
- VPC 환경 구성
(1) VPC: 논리적으로 격리된 네트워크 공간으로 자신이 원하는 서버 리소스들을 격리된 네트워크 환경 내에서 구성 가능
- VPC는 제가 서버를 배포할 환경을 마련해줍니다. 해당 VPC는 다른 VPC와 영향을 주지 않습니다. 그래서 논리적으로 격리되고 독립적인 네트워크 환경인 것이죠. 마치 한 가상화서버에서 여러 개의 논리 서버가 존재하지만, 서로 영향을 주지 않는다고 생각하면 편한 거 같아요.
- VPC 생성(아래와 같이 생성)
- 저는 우선 VPC만 생성했어요. VPC 등으로 하면 서브넷이나 NAT GATEWAY 등을 알아서 잘 생성해주는데, 저는 우선 하나 하나 짚어가면서 만들고 싶어서 따로 했습니다.
- IP CIDR : 해당 VPC 내에서 생성되는 서버 리소스들의 IP 대역을 설정하는 것입니다. 10.0.0.0/16으로 설정하면 해당 VPC 서버내에 모든 존재들은 10.0.X.X IP대역 내로 존재하는 거죠 .
- 그리고 만들기 앞서 꼭 자신의 리전 확인하세요! (서울 ap-northeast-2)
(2) 서브넷 : VPC 내에 네트워크 구간을 나누어 자신이 원하는 서버들을 할당하게 해준다.
- 10.0.0.0/16 구간을 총 네 구간으로 할당하여 2개의 public subnet, 2개의 private subnet으로 사용할 겁니다.
- 그리고 VPC 서비스에서 Subnet 탭을 들어가 서브넷 생성을 하면 되는데, 아래와 같이 설정한다.
- 각 subnet들을 ip, 이름을 맞추어서 설정하면 됩니다.
- public A,B : 10.0.0.0/24, 10.0.1.0/24
- private A,B : 10.0.2.0/24, 10.0.3.0/24
- 그리고 각 A 서브넷의 가용지역을 A , B서브넷을 C 가용지역으로 설정하였다. 이는 물리적인 서버를 따로 떨어뜨려 놓아, 한 물리서버에서 고장나면 다른 AZ 서버에서 Active되도록 하여 고가용성을 확보하기 위함이다.
- Public에는 bastion host(Nat instance), 웹서버 등 인터넷과 접근하는 서버를 구축할 거이며, Private에는 DB를 구축할 것이다.
(3) 라우팅 테이블
- public, private 서브넷이 정상적으로 패킷을 보내기 위해 라우팅 테이블을 설정한다.
- 총 두 개의 라우팅 테이블 Public, Private 라우팅 테이블을 설정할 것이다. 각 라우팅 테이블은 Public 서브넷, Private 서브넷의 패킷들의 도착지를 설정해줄 것이다.
- 해당 테이블생성은 VPC 서비스 -> 라우팅테이블 -> 라우팅테이블 생성을 통해 할 수 있다.
- 우선 Public 의 경우
- 10.0.0.0/16 -> local
- 0.0.0.0/0 -> IGW (public이므로, 외부 인터넷으로 향해야 한다. 따라서 모든 패킷이 인터넷 게이트웨이로 가도록 한다.)
- 해당 인터넷 게이트 또한 VPC 탭에서 바로 생성가능하다.
- 해당 라우팅 테이블을 생성하면 서브넷 연결 편집을 통해 public subnet A,B가 연결되도록 한다.
- 그 다음 Private Subnet이다
- 10.0.0.0/16 –> local
- 0.0.0.0/0 -> Bastion host(=Nat Instance) (private 영역이 외부와 통신하기 위해서는 사설 ip를 공인 ip 로 전환하는 NAT 서버를 통해서 간다.)
- 보통 NAT -GW를 NAT IP 전환을 한다. 하지만, NAT-GW는 돈이 (많이) 든다. 그래서 비용이 저렴한 NAT-Instance를 생성할 겁니다.
- NAT Instance : 일반 서버이지만, NAT 기능도 수행한다.
- 해당 인스턴스는 EC2 서비스를 통해 생성할 수 있다.
- 우선 EC2 -> 인스턴스 -> 인스턴스 생성을 들어간다. 그리고 아마존 이미지 검색에 nat라고 지면 위와 같이 amzn-ami-vpc-nat 이미지를 선택한다.
- 키페어는 putty 원격제어할 때 기본적으로 요구된다. 키페어 생성을 눌러 키페어를 생성하고, 거기서 키를 다운 받을 수 있는데, 그 키를 간직하도록 한다. 나중에 필요하다.
- 그리고 네트워크 설정을 하는데, 해당 nat-instance는 퍼블릭 서브넷에 배치하여 기본적으로 외부 트래픽을 여기서 거쳐가도록 할 것이다. 그리고 보안그룹설정을 해야하는데
- 위와 같이 보안그룹을 설정해주어야 합니다. 우선 NAT-instance를 통해서 원격제어를 수행할 겁니다. 따라서 원격제어 관련 포트(22)를 내 IP에서 허용하도록 설정합니다. 그리고 이후에 FTP를 통해 파일을 이동하기 위해 FTP 포트 21번도 허용해둡니다.
- 이후, 인스턴스 생성을 완료하고 추가적인 수정이 더 필요합니다.
- 소스/대상 확인 변경입니다. 소스/대상 확인변경을 허용해두면, 패킷의 출처를 확인하여, 본인과 관련없는 패킷의 경우 드랍합니다. 따라서, 해당 패킷이 유실되지 않도록 하기 위해서 소스/대상 확인 변경을 중지합니다. 이를 통해 내/외부로 패킷을 오갈 수 있도록 설정하는 겁니다.
- 그리고 탄력적 IP를 설정해야 합니다. 탄력적 IP는 공인 IP를 할당하는 것으로, 외부에서 접근하기 위한 IP를 NAT-instance에 할당합니다. 이를 통해 외부에서도 저희 서비스에 접근할 수 있게 합니다.
- 이렇게 NAT-Instance를 설정하면 라우팅테이블을 설정할 수 있게 됩니다
- 그리고 해당 라우팅 테이블이 Private 서브넷과 연결까지 하면 기본 네트워크 설정은 마무리가 됩니다.
'AWS' 카테고리의 다른 글
AWS로 워드프레스 구축하기(3) 배포 및 도메인, 모니터링 설정 (6) | 2024.09.04 |
---|---|
AWS로 워드프레스 구축하기(2) 웹서버, DB 구축하기 (3) | 2024.09.04 |