EC2 인스턴스의 AWS 수직 확장이 하루에 100,000명의 사용자를 지원할 수 있습니까?

EC2 인스턴스의 AWS 수직 확장이 하루에 100,000명의 사용자를 지원할 수 있습니까?

링크 공유 사이트가 있습니다(reddit을 생각해 보세요). 현재 godaddy 디럭스 공유 호스팅에서 호스팅됩니다. aws로 마이그레이션할 예정입니다.

사용자를 천만 명까지 확장하는 방법에 대한 AWS 웹 세미나를 보았습니다. 하지만 기본적으로 수직 방식으로 확장할 수 없을 정도로 확장할 수 있으므로 처음부터 수평 방식으로 확장하도록 선택하세요.

천만 명의 사용자를 지원할 필요는 없습니다. 매일 100,000명의 사용자를 지원해야 한다고 가정합니다. 최대 사이트의 동시 사용자 수는 1000명입니다.

사용 사례

  • 사용자는 사이트에 대한 링크를 게시합니다. 1000명의 사용자 중 단 한 명만이 링크를 게시합니다.
  • 대부분의 사용자는 사이트에서 링크를 검색하고 설명 등을 읽습니다.
  • 매일 약 5000개의 댓글이 사이트에 게시됩니다.
  • 주로 텍스트 기반 사이트입니다.
  • 사이트에는 사용자 아바타와 배너를 제외하고 이미지가 거의 없으며 둘 다 2MB로 제한됩니다. 이미지는 DB에 저장됩니다.
  • 가입, 로그인, 계정 등과 같은 포럼의 일반적인 기능이 있습니다.

계획된 아키텍처

  • EC2 인스턴스 1개
  • RDS 인스턴스 1개
  • 1 루트 53 구역
  • 탄력적 IP 1개
  • 1 s3(백업 전용)

저는 이 간단한 방법을 사용하여 확장할 계획입니다. t2.micro로 시작하고 사용자 기반이 성장하면 ec2 인스턴스를 업그레이드하기만 하면 됩니다. RDS 인스턴스도 마찬가지입니다.

1개의 EC2 또는 RDS가 단일 실패 지점이 된다는 것을 알고 있습니다. 이들 중 하나라도 중단되면 해당 인스턴스를 종료하고 이미지/백업에서 동일한 인스턴스를 시작할 계획입니다. 사이트가 30일마다 1시간 동안 오프라인 상태라면 괜찮습니다.

저에게는 도움을 줄 사람이 없고 이는 혼자만의 노력이라는 점을 명심하세요. 사용자에게 문제가 발생하면 AWS 측에서 도움을 줄 사람을 찾을 수 있습니다.

  1. 이런 방식으로 100,000명의 사용자를 지원할 수 있습니까?
  2. 사용자 100,000명/동시 사용자 1,000명이 될 때까지 어떤 중단점에서 다음 Ec2 인스턴스로 업그레이드해야 합니까? (예: 동시 사용자 5명까지 - t2.micro/db.t2.micro, 동시 사용자 40명까지 - EC2 인스턴스 유형 2/Rds 인스턴스 유형 2 등)
  3. 이 계획을 진행하기 전에 제가 고려하지 않은/고려해야 할 다른 사항이 있습니까?

답변1

웹 애플리케이션이 특정 시스템에서 X개의 클라이언트를 처리할지 여부를 말하기는 매우 어렵습니다. 애플리케이션 작성 방법, 사용된 프레임워크 등을 포함한 여러 요소에 따라 크게 달라집니다.

가장 좋은 방법은 애플리케이션의 사용을 벤치마킹/시뮬레이트하는 데 사용할 수 있는 것을 찾는 것입니다. 이미 웹 애플리케이션이 실행 중인 것 같으므로 짧은 시간 동안 어떤 크기의 ec2 인스턴스도 쉽게 설정하고 몇 가지 테스트를 실행한 다음 종료할 수 있습니다.

수평적으로 확장할 수 있으면 향후 성장을 처리하기 위한 훨씬 더 나은 경로가 제공될 것입니다. 사이트가 더 큰 인스턴스에서 어려움을 겪거나 100,000개 이상으로 확장해야 하는 경우 어떻게 됩니까? 더 큰 인스턴스로 이동하는 것만으로는 성능이 선형적으로 향상되지 않을 수도 있습니다.

한가지 눈에 띄는 것은 -

이미지는 DB에 저장됩니다.

이미지와 특별히 애플리케이션 서버가 필요하지 않은 모든 것을 다른 곳에서 처리하도록 저장합니다. 이미 AWS 스택을 사용하고 있으므로 S3는 이미지 및 기타 정적 데이터를 위한 확실한 장소입니다. 정적 리소스에 애플리케이션 서버 시간을 낭비하지 마세요.

관련 정보