Nginx + ELB (Elastic Load Balancing)로 서비스를 솔리 페이지 (유지 보수 모드)로 전환

3140 단어 elbnginxAWS

소개



Nginx, ELB에 관해서 설명은 단단합니다만, 개요를 알고 싶은 분은 이하가 참고가 될까 생각합니다.

  • Nginx
  • 고속・경량・고기능… … Nginx의 기초지식
  • Nginx 설치 및 기본 설정


  • ELB
  • [AWS 마이스터 시리즈] Amazon Elastic Load Balancing (ELB)


  • 이 기사의 전제 조건


  • ELB + EC2 (WEB/AP) 구성
  • Nginx가 설치된 EC2 인스턴스 (솔리 서버 용) 준비

  • Nginx 구성 설정



    다양한 시행 착오로 아래에 진정되었습니다.
    server {
      listen 80;
      root /var/www;
    
      location = /healthcheck {
        empty_gif;
        access_log off;
        break;
      }
    
      # ELBからのhealthcheckは通す
      set $sorry true;
      if ($request_uri = "/healthcheck") {
        set $sorry false;
      }
    
      error_page 503 @sorry;
      location @sorry {
        rewrite ^(.*)$ /sorry.html break;
      }
    
      if ($sorry = true) {
        return 503;
      }
    }
    

    ※ 문서 루트, URI 부분은 적절히 읽어 주세요

    구현



    Nginx 시작 (또는 다시로드)


    $ sudo service nginx start
    OR
    $ sudo service nginx reload
    

    ELB 교체하기



    이것을 ...


    이렇게


    이 때의 주의점입니다만, ELB는 전환 후 서비스 인까지 몇 분 걸리므로, 이하의 순서로 실시하면 좋을 것입니다.
  • Sorry 서버를 ELB에 매달기
  • Sorry 서버의 상태가 Out of Service -> In Sercice인지 확인
  • WEB/AP 서버를 ELB에서 분리

  • 이제 URL을 두드려도 솔리 페이지가 열리고 HTTP 상태 코드도 503에서 반환됩니다.

    교체 방법은 관리 콘솔 또는 CLI 또는 SDK 중 하나가 될 것이라고 생각합니다. 매니지먼트 콘솔에서의 조작은 이하의 동영상이 참고가 될까 생각합니다.

    Introduction to Elastic Load Balancing

    매니지먼트 콘솔은 편리합니다만, 수속이 조금 많기 때문에, 휴먼 에러를 줄이기 위해서도 가능한 한 CLI나 SDK를 이용해 커멘드 일발로 바꿀 수 있도록 해 두고 싶네요. (ChatOps를 도입하는 회사라면 BOT에 부탁하는 것이 지금 바람일지도 모르겠네요 )

    사이고에게



    S3 웹 호스팅을 사용하여 Route53으로 전환하면 안됩니까?



    개인적으로는 스테이터스 코드를 503 로 돌려주고 싶기 때문에 배입니다만, 스테이터스 코드가 200 로 돌려주어도 문제 없으면 개미라고 생각합니다. 그 경우는 이하의 클래스 메소드씨의 기사가 참고가 될까 생각합니다.

    Amazon Route 53의 DNS 페일오버 기능을 이용한 리전을 가로지르는 백업 사이트 구축(EC2 to S3편)

    좋은 웹페이지 즐겨찾기