백업 파이프

해결하고 싶은 문제

마이그레이션이 시작되면 제발 장애없이 종료되길 기도하는 것 외엔 할 수 있는 것이 없다. 물론 종료되기 전까지 서비스는 불가능하다.

솔루션/패턴 설명

구성은 콘텐츠 체인 과 유사하지만 M2확장모듈 을 이용해 구현한다.

../../_images/dgm009.png

외부로부터의 다운로드 스트림은 3가지 파이프로 확장된다.

  • 대기 중인 클라이언트에게 응답

  • 스토리지 백업

  • 캐싱엔진 저장

구현

  • aws_s3 함수를 활성화한다.

  • fallbacks 될 떄 S3로 백업될 수 있도록 명령어를 추가한다.

    "pattern": "foo.com/(.*)",
    "replace": "bar.com/#1/aws_s3/put/newbucket",
    

장점/효과

  • 마이그레이션/백업 과정없이 즉시 서비스가 가능하다.

  • 사용자가 요청하는 순서대로 콘텐츠가 백업된다.

주의점

사용자가 요청하지 않는 콘텐츠는 백업되지 않을 수 있으므로 스토리지에 없는 콘텐츠를 bar.com 으로 요청하는 보조 프로세스가 필요할 수 있다.

기타

  • 우선적으로 스토리지로 업로드하고 싶은 콘텐츠가 있다면 bar.com 을 호출하는 프로세스를 추가한다.

  • 규칙만 정해져 있다면 동적으로 외부 서비스를 연결할 수 있다.