본문 바로가기

IT 기술 정보

AWS Lightsail(라이트세일) 로드밸런서로 이중화 검토

반응형

취미로 운영중인 웹사이트의 이중화가 필요해 아마존 라이트세일에서 제공하는 로드밸런서를 살펴보았다.

 

세부 옵션을 보려면 하나를 생성을해봐야 해서 월 18USD의 비용에도 불구하고 신청하고 빠르게 살펴보았다.

 

1. 인스턴스 연결

 

이와 같이 현재 라이트세일에 있는 인스턴스들을 손쉽게 연결할 수 있다.

 

로드 밸런싱 대상

로드 밸런싱 대상 또한 IP로는 설정 불가능하다. 라이트세일로 생성된 동일 리전의 인스턴스만 연결할 수 있다. 심지어 AWS의 EC2와도 연계가 안된다. 다만 국내외 CSP에서 이런식으로만 지원하는 경우는 꽤나 흔하다. 글로벌한 부하 분산이 필요하다면 GSLB를 사용하는 것이 추세인 듯 하다.

 

로드 밸런싱 규칙

로드밸런싱 규칙을 설정할 수 없다! 결론적으로 난 이 때문에 라이트세일 로드밸런서를 사용하지 않기로 했다. 나의 경우엔 사양이 높은 메인 서버 한대에서 웹사이트를 돌리고, 개인적인 도구용으로 활용하는 보조 서버가 한대가 있어, 혹시 메인 서버에서 문제가 있을 때만 보조 서버로 돌리려고 했었다. 그런데 그런 설정은 할 수 가 없다. 무조건 균등 분산이고, Round Robin이나 IP Hashing이나 분산 규칙또한 설정할 수 없다.

 

2. TLS 인증서 연동 등

 

아마존에서 제공하는 TLS(SSL)인증서를 공짜로, 손쉽게 생성하고 연결할 수 있는데 로드밸런서의 큰 장점이자 주된 존재이유 중 하나인 것 같다. Let's Encrypt의 Certbot이 어렵거나, 모든 리소스를 아마존 웹 서비스로 통일하고자 하는 경우엔 HTTPS 통신을 위해 로드밸런서를 사용하기도 한단다. 한달에 180달러라는 인증서는 어찌 보면 비싸보이기도 하지만, 실상은 아직 많은 기업에서 기계적으로 레거시한 COMODO, DigiCert 같은 인증서를 신청하고, 이메일로 인증서 파일을 받아서 서버에다 직접 OpenSSL로 설치하고 있다는 점을 생각하면, 향후 편의성이나 신뢰성, 가격 관점을 모두 고려했을 때 이런 클라우드 로드 밸런서를 통한 TLS를 사용하는 것을 검토하게 될지도 모른다. 아직 모든 CSP들이 이런 기능을 제공하는 것은 아니지만 AWS의 경우 정말 클릭 몇번만으로 쉽게 인증서가 생성되고 적용된다. 서버에 SSH 쉘로 들어가 CLI 작업을 할 필요도 없다.

 

로드 밸런서 종속성과 부족한 기능

하지만 단점은 이렇게 로드 밸런서 TLS를 적용할 경우 이 로드 밸런서에 종속이 되어 버린다는 점인데, 또 이 로드밸런서가 간편하긴 하지만 그런 만큼 기능은 매우 부실하다는 것이다. 무엇보다 도메인은 2개까지 연결 가능한데 TLS 인증서는 하나만 적용할 수 있다는 점이 매우 넌센스다.

2개의 도메인을 등록하고, 인증서도 간편하게 생성할 수 있다.

 

하지만 하나의 인증서만 선택 가능하다.

이렇게 되면 도메인을 2개 등록하더라도 실제로는 하나밖에 사용할 수 없다. 로드 밸런서 자체가 인증서를 가져 버리므로 TLS 프로토콜로 통신을 해야 하는데, 다른 도메인으로 들어오는 경우엔 이 인증서의 정보랑 불일치하므로 브라우저에서 에러를 발생시킨다.

 

그나마 인증서를 활성화시킨 특정 도메인으로는 HTTPS 접속을 하고, 나머지 도메인으로는 HTTP 접속을 하면 두가지 도메인을 사용할 수 있긴 한데, 이런식으로 이용할만한 케이스는 테스트 용도 밖에 없을 것이다. 게다가 HTTPS 리다이렉션까지 활성화시켜 놓게 되면 그마저도 정상적인 사용이 안된다. A도메인을 활성화 시켜놨는데 B도메인으로 접속을 하면 "이 사이트는 B도메인으로 접속하려고 하는데 A도메인 인증서를 사용하고 있습니다." 라는 피싱 경고가 뜨게 된다.

 

즉, 라이트세일의 로드 밸런서를 하나의 도메인만 사용 가능한 로드 밸런서라고 이해하면 된다. 하지만 MS Azure나 NCP 모두 로드 밸런서를 만들면 인증서를 하나만 업로드 할 수 있다는 점을 감안하면 그냥 일반적인 스펙이라고 볼 수 있다. 클라우드의 사상 자체가 하나 더 필요하면 인스턴스를 하나 더 올리면 그만인 것이다. 다만 마치 2개가 지원되는 것 처럼 헷갈리고 애매하게 만들어 놓은건 아마 내가 모르는 어떤 이유, 용도가 있기 때문일 것이다. (아시는 분은 댓글 부탁드립니다.)

 

TLS 보안 프로토콜

TLS 프로토콜을 선택할 수 있다. 요즘 나오는 로드 밸런서들은 기본적으로 TLS 1.2 이상의 최신 프로토콜을 제공하면서 하위 프로토콜도 호환 가능하게 나오는 것으로 아는데 이 로드 밸런서는 호환성과 보안성 둘 중 하나를 선별적으로만 사용 가능하다.

 

세션 지속성

아래 "세션 지속성은" 한번 접속한 이용자는 계속 같은 목적지로 밸런싱 해주는 옵션으로 보이는데 세션 클러스터링은 아닌 것 같으니 착각하지 않으시길.

 

3. 지표, 모니터링

라이트세일의 특징적인 단순한 그래프들을 볼 수 있다. 필수적인 정보들은 대부분 볼 수 있고 간편하게 보면서 알림도 받을 수 있지만 문제는 디테일이다. 숫자만 표시되고 내용이 전혀 없다. 특히 에러 건수 모니터링도 가능한데 에러 내용은 볼 수 없는 답답한 상황이 발생한다. 또한 알림은 (서울 리전에선) 문자로는 못 받고 이메일로만 받을 수 있으니 참고하자.

 

 

라이트세일이이나 이런류의  간소화된 IaaS가 불편한게 개별적으로 서버 모니터링 도구를 연계하긴 어렵고 자체적으로 제공되는 관제 도구를 이용해야 한다는 것이다. 서버처럼 Shell 접속도 지원되지 않아 이슈가 있을 때 마다 매번 로그인해서 콘솔로 들어와야하 하는데 로그인 과정도 무척 번거롭다. 그런데 또 들어와 봐야 파악 가능한 정보는 많지 않은 것이다. 

 

 

네트워크 탭엔 별다른 기능이 없다. IPv6를 사용하고 싶은 경우 활성화할 수 있다.

 

 

삭제도 손쉽게 된다. 다행히 비용은 시간 단위로 부과가 되므로(정확히는 분단위 이하로 쪼개진다.) 필요하면 만들어서 구경을 하거나 테스트를 해보고 삭제해도 무방할 것 같다.

 

반응형