S3+CloudFront에 깃든 정적 사이트를 유지보수 상태로 설정

개시하다


AWS S3 호스트를 사용하는 웹 사이트에서 원하는 기간에만 유지 관리 화면을 표시할 필요가 있습니다.
구성으로 이전 세그먼트에만 CloudFront를 더한 간단한 구성입니다.
상세한 설정으로 S3 origin은 정적 사이트인hosting을 사용하고 클라우드 Front의 방문만 받도록 설정했습니다.

이 보도에서 주로 상술한 구성을 통해 어떻게 화면 유지를 실현할 것인가를 고려한다.
기본적으로 S3, 클라우드 프론트는 구축이 완료된 것을 전제로 대화를 나눈다.
특히 이 방면에 대한 상세한 설명은 생략할 것이다.

하고 싶은 일


실현될 때 유지 보수에 필요한 조건을 정리해 보세요.
  • 일반 사용자가 웹 사이트를 방문할 때 유지보수 화면을 표시하려고 합니다.
  • 관리자, 개발자 등 특정 IP 주소에 대한 접근을 허용하고 통상적으로 그렇게 조작하기를 희망한다.
  • 어떻게 실현합니까


    결론적으로 클라우드 프론트에서 WAF의 웹 ACL을 설정하여 접근을 제한하는 방법을 취했다.

    살짝 깨물어 절차를 따라 설명하세요.

    Step1. 웹 ACL 만들기


    WAF를 미리 설정합니다.WAF는 콘텐츠에 대한 액세스 제어와 클라우드 프론트에 보내는 요청을 제어하는 등의 방화벽이다.이번에는 이 WAF를 사용하여 웹 ACL을 만들고 클라우드 Front에 첨부합니다.

    IP Sets


    허가할 IP 주소 목록을 미리 작성합니다.
    관리 콘솔에 로그인하여 여기.부터 제작합니다.CloudFront에서 사용하기 때문에 영역을 글로벌(CloudFront)로 설정해야 합니다.
    또한 여러 IP 주소를 등록하려면 행을 바꾸고 각 행의 입력에 따라 설정할 수 있습니다.

    Web ACLs


    그런 다음 웹 ACL을 만듭니다.여기.에서 생성됩니다.여기도 역시 영역을 글로벌(Cloud Front)으로 설정하고 추가 규칙을 지정할 때 방금 만든 IP 셋이다.
    Rule Type을 IP Set으로 설정하면 방금 만든 IP Set이 나타나므로 다음과 같은 선택Add my own rules and rule groups을 선택합니다.

    WAF의 요금 형식은 웹 ACL의 수량, 규칙의 수량, 그리고 ACL의 요구 수량이 요금 대상이라는 것을 주의해야 한다.자세한 내용은 아래의 내용을 참조하시오.
    https://aws.amazon.com/jp/waf/pricing/

    Step2. S3구역에서 콘텐츠를 준비합니다.


    맡긴 S3 통에 추가 점검 시 표시하고 싶은 내용입니다.
    이번에는 유지보수 시간을 화면에 보여주고 싶어 로컬에서 HTML을 편집해 S3 통에 그대로 복사했다.AWS CLI를 통해 복사되었습니다.
    aws s3 cp ./src/maintenance.html s3://<bucket name>/dist/maintenance.html --acl public-read
    
    모든 사용자에게 읽기 권한을 허용하기 위해 --acl 옵션을 공개적으로 설정했습니다.

    Step3. CloudFront에 WAF 적용


    여기까지 오면 클라우드 프론트 측의 설정을 진행하겠습니다.
    먼저 Distribution에 위에서 설명한 웹 ACL을 첨부합니다.

    마지막으로 사용자 정의 오류 응답을 설정합니다.
    상태 코드가 403이면 유지보수 화면으로 표시할 내용의 경로와 되돌아갈 상태 코드를 503으로 설정합니다.

    높은 운영성 목표


    길어졌지만 여기까지 와서 처음 말한 조건을 충족시킨 토대에서 유지보수 상태를 만들 수 있다.이렇게 말하지만 매번 유지보수를 할 때 이 절차를 실행하려면 상당한 시간이 걸릴 것 같고 가장 중요한 것은 수공 작업의 오류가 발생할 수 있다는 것이다.
    앞으로의 과제로 이번 프로그램을 인코딩하여 운용 효율을 높이고 싶습니다.
    AWS의 웰어치텍트 프레임에도'운용상의 우수성'이라는 버팀목이 있다.업무 프로세스의 지속적인 개선과 자동화는 이미 상당히 중요한 화제가 되었다.상세한 상황에서 아래의 반 방법의 문장은 매우 참고 가치가 있으니 관심 있는 사람은 반드시 읽어 주십시오.
    https://dev.classmethod.jp/articles/w-a-operational-excellence-slide/

    총결산


    이번에는 S3+CloudFront 환경에서 화면 유지 보수로 전환하는 방법을 고려했습니다.마지막으로 요점을 총결하였다.
  • WAF의 웹 ACL을 통해 액세스가 제한됩니다.
  • 웹 ACL에 대해 IP Set 규칙을 사용하는 경우 IP를 통해 제한할 수 있습니다.
  • 운영 비용은 적극적인 개선과 자동화가 필요할 수 있습니다.
  • 여기까지 읽어주셔서 감사합니다.
    "이런 방법이 있어요", "편하게 할 수 있어요"등 다른 방법이 있다면 GiitHub도 괜찮아요. 교수님이라면 좋겠어요.

    사이트 축소판 그림


    https://dev.classmethod.jp/articles/cloudfront_aws-waf_mainte/
    https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html

    좋은 웹페이지 즐겨찾기