[AWS]VPC 생성 및 Amazon EC2 인스턴스에서 웹 애플리케이션 시작

상훈·2023년 12월 31일
0

목표

  • 퍼블릭 서브넷 2개가 포함된 새 Amazon VPC 생성
  • 인터넷 게이트웨이 생성
  • 인터넷으로의 퍼블릭 경로가 포함된 라우팅 테이블 생성
  • 보안 그룹 생성
  • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 시작
  • 사용자 데이터 스크립트를 사용하여 웹 애플리케이션을 호스팅하도록 EC2 인스턴스 구성

최종 결과물

Virtual private cloud (VPC) 생성하기

  1. CIDR 설정
    • prefix를 16을 주어 16비트를 네트워크 ID로 고정하고 뒤에 16비트를 호스트 id로 사용
    • 십진수로 보았을 때 10.0까지는 고정되며(네트워크 ID), 뒤에 0.0(호스트ID)는 자유롭게 값이 들어옴 (0~255)
    • prefix가 16일 때 실제 10.0.0.0은 네트워크 주소이고, 10.0.255.255 브로드캐스트 주소로 호스트 범위는 10.0.0.1~10.0.255.254

  1. subnet 설정

    서브넷이란 네트워크를 작은 네트워크로 분할한 것

    • 두 개의 가용 영역에 각각 public subnet, private subnet을 한 개씩 설정(고가용성)

    • CIDR : 24

      • 10.0.1(네트워크 ID) 고정, 마지막 옥텟은 1~254의 값을 자유롭게 가짐
    • 기존 VPC에서 설정된 네트워크를 분할해서 사용하는 것

      • 기존 VPC의 IP 범위는 10.0.0.1~10.0.255.254
      • pub-sub1의 IP 범위는 10.0.1.1~10.0.1.254
    • 하기와 같이 subnet 설정

      • pub-sub1
        • 가용 영역 : us-west-1a
        • IPv4 : 10.0.1.0/24
      • pri-sub1
        • 가용 영역 : us-west-1a
        • IPv4 : 10.0.2.0/24
      • pub-sub2
        • 가용 영역 : us-west-1c
        • IPv4 : 10.0.3.0/24
      • pri-sub2
        • 가용 영역 : us-west-1c
        • IPv4 : 10.0.4.0/24

  • public subnet은 설정에서 외부 접근이 가능하도록 Enable auto-assign public IPv4 address을 체크
  • EC2인스터스를 생성할 때 인스턴스트에 대해 공용 IPv4 주소를 자동으로 할당해줌

  1. Internet Gateway 설정

    • VPC에 외부에서 접근이 가능하도록 Internet Gateway 열어주기

    • gateway를 vpc에 붙이기

  1. Route table 설정

    • 패킷이 전달되는 경로를 결정
    • 라우팅 정보를 저장하고 관리하여 네트워크 트래픽이 올바른 경로로 전달되도록 도움
      • 외부 접근이 public subnet에 올바르게 접근할 수 있도록 하는 설정(private subnet에는 접근 불가)

  • Edit subnet associations 설정

    • public subnet 끼리 묶어줌

  • 이후 public-subnet 에서 네트워크가 밖으로 나갈 수 있도록 (Internet gateway를 향해) 설정

  1. Security groups 설정

    ec2 인스턴스에 접근할 수 있는 네트워크 트래픽을 제어하는 가상 방화벽

    • stateful

      • inbound만 설정해주면 나가는 길(outbound)는 알아서 inbound를 찾아서 나감

  1. pub-sub1위에 EC2 instance 생성

    Elastic Compute Cloud : 가상의 컴퓨팅 리소스

    • key pair : proceed without a key pair 선택

      • key pair는 ssh 인증에 사용되는 공개 및 개인 키의 쌍
    • network settings

      • click edit
      • vpc : my-vpc 선택
      • subnet : pub-sub1 선택
      • firewall : Select existing security group 선택
      • common security groups : my-security-group 선택
    • advance detail

      • user data에 하기와 같은 코드 입력

        • #!/bin/bash -ex
          
          # Update yum
          yum -y update
          
          #Install nodejs
          yum -y install nodejs
          
          # Create a dedicated directory for the application
          mkdir -p /var/app
          
          # Get the app from S3
          wget https://aws-tc-largeobjects.s3-us-west-2.amazonaws.com/ILT-TF-100-TECESS-5/app/app.zip
          
          # Extract it to the desired folder
          unzip app.zip -d /var/app/
          cd /var/app/
          
          # Install dependencies
          npm install
          
          # Start the app
          npm start

profile
문송 개발자

0개의 댓글