AWS 네트워크 설정

남영민·2021년 10월 4일
0

AWS 사용의 시작이자 기본이되는 네트워크 설정 관련하여 작성합니다.

첫 번째로, aws의 가상 네트워크인 vpc를 생성합니다.
vpc는 하나의 region에 속해야 합니다.

  • 테넌시 설정은 default로 하여 aws위에서 서비스를 사용할 수 있도록 합니다.
    (전용을 선택할 경우 하드웨어 위에서 서비스를 사용하여 더욱 많은 요금이 발생할 수 있다고 합니다.)

다음으로, vpc아래에 subnet을 생성합니다. subnet의 ip설정을 통하여 vpc를 ip 구역대 별로 나눌 수 있습니다.
subnet은 하나의 availability zone에 속해야 하며, internet gateway를 통해 외부 인터넷에 접근이 가능한 public subnet과 접근이 불가능한 private subnet으로 나눌 수 있습니다.

  • public subnet IP : 10.0.0.0/24
  • private subnet IP : 10.0.1.0/24

public subnet의 경우 작업 > 자동 할당 IP 설정 수정에서 퍼블릭 IP 주소 자동 할당 활성화를 할 수 있습니다.

다음으로, 외부 인터넷과의 연결 통로인 인터넷 게이트웨이를 생성 후 생성한 vpc에 연결합니다.

다음으로, 라우팅 테이블을 통하여 인터넷 게이트웨이와 연결할 것인지의 여부를 결정합니다. 즉, 라우팅 테이블이 public subnet은 인터넷 게이트웨이와 연결해주고, private subnet은 인터넷 게이트웨이와 연결하지 않는 역할을 합니다.
라우팅 테이블의 아래와 같은 설정을 통하여 public subnet을 인터넷 게이트웨이와 연결해줍니다.

보안 설정은 네트워크 ACL 방식과 Security Group방식이 있습니다.
vpc를 생성하면 기본 네트워크 ACL이 생성됩니다. 네트워크 ACL 방식은 stateless 방식으로 트랜잭션 정보를 저장하지 않아, inbound와 outbound rule 모두 설정하여 줍니다.

outbound rule의 경우, 아래와 같은 설정을 통하여 모든 임시포트(response의 경우 request와 다르게 임시포트(1024~65535)를 사용)를 사용하겠다는 설정을 할 수 있습니다.

stateless 방식과 stateful 방식의 차이점으로 stateful의 경우 inbound에 80번 포트만 열어놔도 destination client에서 source client의 아웃바운드 임시포트를 저장하여 source client에서 80포트로 들어온 요청에 대해, 임시포트로 response를 보낼 수 있지만, stateless 방식의 경우 inbound와 outbound 규칙을 각각 설정해줘야 한다.

public subnet 상의 ec2를 bastion 서버로 사용하여 private subnet 상의 ec2에 접근할 수 있습니다. 중요한 점은 private subnet 상의 ec2의 보안 그룹의 source에 public subnet상의 ec2의 보안 그룹을 소스로 넣어 주어야 public subnet상의 ec2에서 오는 접근만 열어 줄 수 있다는 것입니다.(Nacl 설정으로 인해 오류가 났었습니다... public subnet의 Nacl의 inbound와 outbound 규칙을 모든 ip와 포트에 대해서 열어준 후에야 public ec2에서 private ec2로 접근이 가능했습니다.)

private subnet의 경우 인터넷에 접근할 수 없어 mysql과 같은 설치가 불가능합니다.
public subnet에 nat gateway를 연결하고 private subnet의 route table에 local로 가는 ip를 제외하고 nat gateway로 갈 수 있도록 하여 public subnet 상에 있는 ec2를 bastion 서버로 사용하여 mysql과 같은 외부 프로그램을 다운 받을 수 있습니다.

nat gateway의 경우 인터넷에 트래픽 정보가 남기 때문에, private subnet에서 s3,rds와 같은 aws의 서비스에 접근하는 방법으로 end point를 사용하는 것이 보안상 더욱 안전한 방법이라고 합니다. end point는 nat gateway와 다르게 private subnet에 연결하여 주면 되고, end point를 생성하면 자동으로 private subnet과 연결되어 있는 라우팅 테이블에 s3와 private subnet을 연결 시켜주는 라우팅이 추가됩니다.
(참고로, private subnet 상의 ec2를 생성할 시 특정 서비스에 접근할 수 있는 IAM role 역시 연결해주어야 합니다.)

profile
성장하는 개발자

0개의 댓글