안녕하세요, 저는 Azure 엔지니어인 Akiyama입니다. 이 글에서는 Azure Web App으로 정적 사이트를 호스팅하는 사례 연구를 소개하고자 합니다.
줄거리
- 사이트 생성기 Jekyll 사용
- 부분적으로 PHP 사용
- 사이트를 업데이트하는 사용자들은 Jekyll을 알지 못하거나 알고 싶어 하지 않는 경우
작곡
설정은 단순히 웹 앱을 웹사이트로 사용하는 것입니다. 정적 파일이라면 웹사이트의 PaaS인 웹 앱을 사용할 필요가 없지만, 일부 구간에서 PHP 사용이 요구되었기 때문에 웹 앱을 채택했습니다.
배치 흐름

단계별로 설명해 드리겠습니다.
이번에는 CloudCannon 이라는 CMS를 사용할 예정입니다. 이 서비스를 사용하면 Jekyll을 모르는 상태에서, 심지어 엔지니어가 아니더라도 페이지를 업데이트하고 세세 조정할 수 있습니다. (1단계)
CloudCannon은 GitHub와 통합할 수 있습니다. CloudCannon에서 'jekyll build' 콘텐츠를 실시간으로 미리 보고 각 페이지를 업데이트할 수 있습니다. (2단계)
업데이트된 콘텐츠를 Azure Web App에 업로드하고 싶고, 빌드 엔진으로 Travis CI 를 사용하고 있습니다. Travis CI의 역할은 GitHub에서 저장소를 'jekyll 빌드'하고 그 결과물을 Azure Web App로 푸시하는 것입니다. (3-6단계) Azure Web App은 Git 배포 기능을 제공해서 사용 중입니다.
영향
우리는 사이트 생성 초기에 이 배포 흐름을 구축했습니다. 이를 통해 초기 단계부터 운영 환경에서 어떻게 동작하는지 확인할 수 있습니다.
CloudCannon에서 디자인을 확인할 수 있지만, 웹 서버와 웹 앱이 다를 수 있으니 가능한 한 빨리 운영 환경에서 확인하는 것이 좋습니다. 그 결과 큰 문제는 없었고, 우리는 사이트 게시에 도달했습니다.
결론
AWS S3를 사용해 정적 사이트를 만드는 사례는 자주 보지만, Azure에서 정적 사이트를 만드는 사례는 많이 못해서 글을 썼습니다. 웹 앱을 사용한 구성 예시로 작성했지만, Azure Function + Azure Blob Storage를 사용하는 패턴도 있습니다. 기회가 되면 예시로 적용할 기회가 있으면 다시 소개하겠습니다. Azure에서 DevOps 환경을 가진 정적 사이트를 원하시면 언제든지 연락해 주세요.