[AWS] AWS 클라우드 네트워크 기반 인프라 구성 (S3 정적 웹사이트 호스팅)

오진선·2025년 1월 21일
0

Cloud

목록 보기
17/17
post-thumbnail

AWS 프로젝트: VPC 구성, EC2 생성 및 S3 정적 웹사이트 호스팅

설정값은 전부 임의의 값으로, 변형하여 구성 가능합니다.

1. VPC 구성 및 네트워크 설계

1.1. VPC 생성


1. AWS Management Console에서 VPC 서비스로 이동합니다.
2. "Create VPC"를 클릭하고 다음을 설정합니다:

  • Name tag: MyVPC
  • IPv4 CIDR block: 10.0.0.0/16
  1. Create VPC를 클릭합니다.

1.2. 서브넷 생성

퍼블릭 서브넷 생성

  1. Subnets 탭에서 "Create subnet"을 클릭합니다.
  2. 설정:
    • Name tag: PublicSubnet1
    • Availability Zone: us-east-1a
    • IPv4 CIDR block: 10.0.1.0/24
  3. Create subnet을 클릭합니다.

프라이빗 서브넷 생성

  1. Subnets 탭에서 다시 "Create subnet"을 클릭합니다.
  2. 설정:
    • Name tag: PrivateSubnet1
    • Availability Zone: us-east-1a
    • IPv4 CIDR block: 10.0.2.0/24
  3. Create subnet을 클릭합니다.

1.3. 인터넷 게이트웨이 연결

(위에 분리되었다는 창은 신경쓰지 마세요..^^)

  1. Internet Gateways 탭에서 "Create internet gateway"를 클릭합니다.
    • Name tag: MyIGW
  2. 생성 후, Actions > Attach to VPC를 선택하여 VPC에 연결합니다.

1.4. 라우팅 테이블 설정

퍼블릭 라우팅 테이블 생성

  1. Route Tables 탭에서 "Create route table"을 클릭합니다.
  2. 설정:
    • Name tag: PublicRT
    • VPC: MyVPC
  3. 생성 후, Routes 섹션에서 라우트를 추가합니다:
    • Destination: 0.0.0.0/0
    • Target: MyIGW
  4. Subnet associations 탭에서 PublicSubnet1을 연결합니다.

프라이빗 라우팅 테이블 생성

  1. Route Tables 탭에서 "Create route table"을 클릭합니다.
  2. 설정:
    • Name tag: PrivateRT
    • VPC: MyVPC
  3. 생성 후, 프라이빗 서브넷을 연결합니다.

1.5. NAT 게이트웨이 구성

  1. NAT Gateways 탭에서 "Create NAT gateway"를 클릭합니다.
    • Subnet: PublicSubnet1
    • Elastic IP allocation: 새 Elastic IP 생성 및 연결 (탄력적 IP 할당)
  2. PrivateRT에서 라우트를 추가합니다:
    • Destination: 0.0.0.0/0
    • Target: NAT 게이트웨이.

2. EC2 인스턴스 생성

2.1. EC2 인스턴스 생성

  1. EC2 대시보드에서 Launch instances를 클릭합니다.
  2. 설정:
    • Name: MyEC2Instance
    • AMI: Amazon Linux 2 선택
    • Instance type: t2.micro
    • Key pair: 새 키 페어 생성 또는 기존 키 선택
    • Network:
      • VPC: MyVPC
      • Subnet: PublicSubnet1
      • Auto-assign public IP: 활성화

2.2. 보안 그룹 생성

  1. 새 보안 그룹 추가:
    • Name: MySecurityGroup
    • Inbound rules:
      • SSH (22): 특정 IP만 허용 (예: 192.168.x.x/32)
      • HTTP (80): 0.0.0.0/0, ::/0
      • HTTPS (443): 0.0.0.0/0, ::/0
    • Outbound rules: 기본값 유지 (모든 트래픽 허용)
  2. 보안 그룹을 인스턴스에 연결합니다.

2.3. SSH 접속

  1. 생성된 인스턴스의 퍼블릭 IP를 복사합니다.
  2. SSH로 접속:
    ssh -i "key-file.pem" ec2-user@<Public-IP>

3. S3 정적 웹사이트 호스팅


(업로드를 안하면 이런 화면이 뜹니다. 당황하지 마세요.)

3.1. S3 버킷 생성

  1. S3 대시보드에서 Create bucket을 클릭합니다.
    • Name: my-static-website
    • Region: 동일한 리전 (예: us-east-1)
    • Block Public Access: 해제

3.2. 버킷 정책 설정

  1. Permissions > Bucket Policy 섹션에서 다음 정책을 추가합니다:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::my-static-website/*"
            }
        ]
    }

3.3. 정적 웹사이트 호스팅 활성화

  1. Properties > Static website hosting에서 Enable을 설정합니다:
    • Index document: index.html
    • Error document: error.html

3.4. 파일 업로드

  1. Objects > Upload:
    • index.htmlerror.html 파일 업로드

3.5. 웹사이트 확인

  1. Properties > Static website hostingEndpoint URL을 복사합니다.
  2. 브라우저에서 URL로 웹사이트에 접근합니다:
    • 예: http://my-static-website.s3-website-us-east-1.amazonaws.com

프로젝트 결과

  1. VPC: 퍼블릭 및 프라이빗 서브넷으로 구성된 안전한 네트워크 환경
  2. EC2: 퍼블릭 서브넷에 배포된 인스턴스에서 SSH 및 HTTP 접근 가능
  3. S3: 정적 웹사이트가 S3를 통해 호스팅되어 URL로 접근 가능
profile
₍ ᐢ. ̫ .ᐢ ₎

0개의 댓글