2014-04-22 1 views
1

VPC를 사용하여 EC2로 웹 응용 프로그램을 포팅하려고했습니다. 응용 프로그램에는 외부 액세스 가능한 웹 서버가 필요합니다.이 웹 서버는 VPC의 서브넷에있는 데이터베이스 및 기타 데이터 자원을 관리하는 여러 백엔드 서버와 통신합니다. 이 외에도 NAT를 사용하는 VPC의 두 서브넷 사이에서 라우터 역할을 수행해야하는 헤드 노드를 통해서만 액세스 할 수있는 VPC의 다른 서브넷에 호스팅 된 EC2 작업자 노드 그리드에 연결해야하는 컴퓨팅 헤드 노드가 필요합니다.여러 서브넷이있는 Amazon EC2 VPC에서 컴퓨팅 클러스터 지원 웹 응용 프로그램

- 
- External Connection ----------+ 
-        | 
-       Web Server (Externally Facing + VPC Subnet 1) 
-        | 
-   +---------------------+-----------------+ 
-   |      |     | 
- Data Services Server Database Server Compute Headnode 
- (VPC Subnet 1)  (VPC Subnet 1) (VPC Subnet 1 & 2) 
-             | 
-         +--------------+--------------+ 
-         |    |    | 
-       Worker Node 01 Worker Node 02 Worker Node 03 
-       (VPC Subnet 2) (VPC Subnet 2) (VPC Subnet 2) 

나는 두 개의 서브넷 및 설정에 필요한 EC2 노드를 구성 할 수 있었던 순간 :

기본 구성은 아래의 회로도 비슷한해야합니다.

다음과 같이 나는 두 개의 서브넷 내에서 규칙을 설정하여 직접 서브넷 2 내의 IP를 통신에서 서브넷 1의 EC2 인스턴스를 방지하기 위해 두 개의 서브넷에서 네트워크 ACL을 설정 한

:

서브넷 1 :

  • 99 ALL Traffic ALL ALL 10.81.82.0/24 DENY
  • 100 ALL Traffic ALL ALL 0.0.0.0/0 ALLOW
  • * ALL Traffic ALL ALL 0.0.0.0/0 DENY

서브넷 2 :

  • 80 ALL Traffic ALL ALL 10.81.82.0/24 ALLOW
  • 100 ALL Traffic ALL ALL 0.0.0.0/0 ALLOW
  • * ALL Traffic ALL ALL 0.0.0.0/0 DENY

문제는 내가이 셋업에있을 것 같다 내가 어떤 확실한 방법을 볼 수 없다는 것입니다 서브넷 1과 서브넷 2에 모두 연결된 컴퓨팅 노드가 서브넷 2의 10.81.82.0/24 ALLOW 규칙을 통해 서브넷 1의 10.81.82.0/24 DENY 규칙에 우선 순위를 부여하지 못하게합니다.

나는 대부분이 페이지를 Amazon's VPC networking documentation에서 읽었지만 이러한 종류의 계층 적 설정을 수행하는 방법을 찾기 위해 여전히 고심하고 있습니다. 올바른 방향으로 도움이나 조언을 많이 주시면 감사하겠습니다.

답변

0

감사 NACL

를 사용하여 트래픽을 재생할 수 있습니다

문제가 해결되었습니다.

우선 순위 문제는 네트워크 ACL 구성으로 인한 것이 아니라 네트워크 구성 (서브넷 배열 측면에서)과 NAT를 수행하기 위해 웹 서버 및 헤드 노드를 설정할 필요성이 밝혀졌습니다 서로 다른 서브넷 사이.

  • 서브넷 1 : 웹에 외부 연결의 경우는 AWS 문서의 가까이 검사에서 보일 수있을 것 서브넷 구성에 관해서

    은, 하나는 다음과 같은 네트워크를 설정해야 서버 (필자의 경우 10.0.1.0/24). 이 서브넷은 0.0.0.0/0을 인터넷 게이트웨이로 라우팅하도록 구성되었습니다.

  • 서브넷 2 : 작업자 노드를 제외하고 외부 연결에 직접 연결되지 않은 컴퓨터 (내 경우 10.0.2.0/24). 이 서브넷은 0.0.0.0/0을 서브넷 내의 웹 서버에있는 보조 네트워크 인터페이스로 라우팅하도록 구성되었습니다. 웹 서버는 10.0.2.0/24와 10.0.1.0/24 인터페이스 사이에서 NAT를 수행하도록 구성되었습니다.
  • 서브넷 3 : 작업자 노드의 경우에만 (내 경우 10.0.30/24). 이 서브넷은 0.0.0.0/0을 Compute Headnode의 보조 네트워크 인터페이스로 라우팅하도록 구성되었습니다. Compute Headnode는 10.0.3.0/24와 10.0.2.0/24 인터페이스 사이에서 NAT를 수행하도록 구성되었습니다.

나는 다음오고 나가는 데이터에 대한 네트워크 ACL을 사용하여 다음과 같이 NAT 계층 구조를 강화하기 위해 이러한 서브넷 사이의 트래픽을 제한 할 수 있었다 :

  • 서브넷 1 : 90 ALL Traffic ALL ALL 10.0.2.0/24 DENY, 91 ALL Traffic ALL ALL 10.0.3.0/24 DENY100 ALL Traffic ALL ALL 0.0.0.0/0
  • 서브넷 2 : 90 ALL Traffic ALL ALL 10.0.1.0/24 DENY, 91 ALL Traffic ALL ALL 10.0.3.0/24 DENY100 ALL Traffic ALL ALL 0.0.0.0/0
  • 서브넷 3 : 90 ALL Traffic ALL ALL 10.0.1.0/24 DENY, 91 ALL Traffic ALL ALL 10.0.2.0/24 DENY100 ALL Traffic ALL ALL 0.0.0.0/0

필자는 EC2 용으로 Linux 대신 FreeBSD를 사용하기를 원했기 때문에 필요한 NAT 인스턴스를 설치하는 데 많은 어려움이있었습니다.

2012 년 11 월호 FreeBSD Magazine 호에서이 작업을 수행하는 데 도움이되는 가이드를 찾았습니다. Daemonology.net에 설명 된 최신 FreeBSD AMI에는이 구성 단계 중 일부가 더 이상 필요하지 않지만 게시 이후 기본 구성 단계는 변경되지 않았습니다.

NAT 용 Linux AMI를 사용하여 비슷한 작업을하려는 사람이라면 누구나 쉽게 프로세스를 찾을 수있을 것이라고 상상해보십시오. 그러나 시도하지 않았으므로 확실히 말할 수는 없습니다.

어쨌든이 문제가 비슷한 사람에게 도움이되기를 바랍니다.

0

당신은 는 보안 그룹과 인스턴스를 연결합니다 여기에 보안 그룹을 사용하여 인스턴스 수준 자체 트래픽을 제어하고 컴퓨팅 노드에 대한 당신은 데브

관련 문제