AWS 서버리스 사이트 구축

AWS 서버리스 사이트 구축

AWS 서버리스 사이트 구축


  • 이번 장에서는 S3를 통해 서버가 없는 정적인 사이트를 구현해보도록 하겠습니다.
  • 이와 같이 서버리스의 가장 큰 특징은 EC2처럼 상시 실행 상태 중이 아니여도, 사용자가 요청시에만 실행이 가능하기 때문에 비용면과 운영면에서 효율적이라 할 수 있습니다.
  • AWS에서는 S3에서 웹 호스팅 기능을 제공하고 있어, 이를 통해 구현해보도록 하겠습니다.

AWS 서버리스 사이트 구축

 

  • 먼저, AWS에 접속하여 S3 서비스를 검색 후, 클릭합니다.

 

  • S3를 시작하기 위해 버킷을 생성합니다.

 

  • 버킷의 이름을 지정하고, 리전을 선택합니다.

 

  • 기본 값으로 설정을 진행합니다.

 

  • 단, 그림과 같이 퍼블릭 엑세스의 대한 차단을 해제합니다.

 

  • 버킷의 생성이 완료되었습니다.

 

  • 다음으로는 생성된 버킷을 호스팅 등록하기 전에, 버킷의 정책을 먼저 생성하겠습니다.
  • 버킷의 생성이 완료되면, 생성된 버킷을 클릭합니다.
  • 생성된 버킷에서 권한 -> 버킷 정책을 클릭 후, 하단의 정책 생성기를 클릭합니다.

 

  • 그림은 정책생성기로, 원하는 정책옵션을 선택하면 그 옵션을 Json파일로 변환시켜주는 역할을 수행합니다.
  • 여기서는 아래의 값으로 설정을 진행합니다.

Select Type : S3 Bucket Policy
Principal : " * “ ( Principal는 리소스로의 접근을 허가 또는 거부할 사용자, 계정, 서비스, 엔티티를 나타냅니다.)
Actions : GetObject ( Actions는 허가할 조작을 나타냅니다.)
ARN : arn:aws:s3::: [ 버킷 이름 ]/[ Key_name ] ( 허용할 파일 혹은 디렉토리를 나타냅니다. 여기서 /Key_name은 /*을 사용합니다. )

 

  • 생성 후, Add Statement를 클릭하면 현재 선택한 옵션들은 Json 형식으로 바꾸어 줍니다.
{
  "Id": "Policy1593408879908",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1593408870453",
      "Action": [
        "s3:GetBucketObjectLockConfiguration"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::s3-serverless-web/*",
      "Principal": "*"
    }
  ]
}

 

  • 다음은 미리 index.html과 error.html 파일을 업로드 하겠습니다.

 


  • 위의 그림과 같이 파일을 업로드 합니다.
  • 모든 설정은 기본 값으로 설정합니다.

 

  • 이제, 호스팅을 위해 S3에서 정적 웹 사이트 호스팅을 설정하겠습니다.
  • S3의 속성 -> 정적 웹 사이트 호스팅을 선택합니다.

 

  • 정적 웹 사이트 호스팅 창이 나오면 인덱스 문서 및 오류 문서의 업로드한 파일을 기입 후 저장합니다.

 


  • 이제 S3 EndPoint로 접속하면 index.html을 확인할 수 있습니다.
  • 또한 에러 발생시에는 error.html이 보여지는 것을 확인할 수 있습니다.

  • 이제 이것으로 기본적인 S3를 사용한 정적사이트 구축이 완료되었습니다.
  • 이어서 서비스와 기능을 추가시켜보도록 하겠습니다.

 

AWS 서버리스 사이트 세부설정


Redirection Rules

  • Redirection Rules란 특정 경로 또는 HTTP 오류 코드 등의 조건에 따라 라우팅을 지정해주는 기능입니다.

 

<RoutingRules>
    <RoutingRule>
        <Condition>
            <KeyPrefixEquals>hello/</KeyPrefixEquals>
        </Condition>
        <Redirect>
            <ReplaceKeyPrefixWith>bye/</ReplaceKeyPrefixWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>
# KeyPrefixEquals로 진입한 트래픽을 ReplaceKeyPrefixWith로 진입시킵니다.
  • Redirection Rules의 설정을 위해 다시 정적 웹 사이트 호스팅 설정을 클릭합니다.
  • 후 위의 값을 리디렉션 규칙에 작성합니다.
  • 위 설정을 마치면 Endpoint에 hello로 진입시 bye로 진입되는 것을 확인 할 수 있습니다.

 

<RoutingRules>
    <RoutingRule>
        <Condition>
            <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
        </Condition>
        <Redirect>
            <ReplaceKeyWith>index.html</ReplaceKeyWith>
        </Redirect>
    </RoutingRule>
</RoutingRules>
# HttpErrorCodeReturnedEquals는 특정 에러가 발생하면 에러를 보여주는 대신 ReplaceKeyWith 값을 보여줍니다.
  • 이와 동일하게 위의 값을 다시 리디렉션 규칙에 작성합니다.
  • 설정을 마치면, Endpoint/의 모든 Null 값이 index.html로 옮겨지는 것을 확인할 수 있습니다.

 

  • 차후 Lmabda, DNS, CDN 서비스를 추가하여 업데이트 하겠습니다.

DNS 설정


 


 


 


 


 


RSS Feed
마지막 수정일자