2백만 개의 I/O를 갖춘 AWS 머신 Linux 인스턴스 t2.micro가 있습니다.
제가 올바르게 이해했다면(모르는 경우 알려주세요) 200만 I/O는 무료 서비스로 200만 개를 서비스할 수 있다는 의미입니다 index.php
.
제 질문은 대규모 액세스와 요청을 피하기 위해 어떻게 서버를 보호할 수 있느냐는 것입니다.
답변1
먼저 여기서 참조하는 내용에 대한 AWS의 설명을 살펴보겠습니다.
https://aws.amazon.com/ec2/pricing/
범용(SSD) 또는 마그네틱을 조합한 Amazon Elastic Block Storage 30GB, 200만 개의 I/O(마그네틱 포함) 및 1GB의 스냅샷 스토리지
이러한 I/O는 디스크에 직접 액세스하기 위한 것이며 index.php 파일이 캐시되어 메모리에 로드되므로 index.php 파일이 수행하는 작업에 따라 I/O에 영향을 미칠 가능성이 없습니다.
갑작스러운 액세스 및 요청 급증에 대한 우려를 테스트하고 모니터링하는 한 가지 방법은 인기 있는 Bees with Machine Guns 유틸리티(https://github.com/newsapps/beeswithmachineguns) 웹 애플리케이션에서 CloudWatch에 미치는 영향을 모니터링합니다. CloudWatch는 기본적으로 5분 단위로 모니터링하므로 인내심을 가지십시오. CloudWatch를 1분 간격으로 모니터링하도록 변경하면 추가 요금이 부과되므로 주의하세요. 기본적으로 인스턴스에 대한 서비스 거부 공격을 실행하게 되므로 미리 테스트를 실행하려면 AWS로부터 허가를 받아야 합니다. 그렇지 않으면 AWS 계정이 정지될 위험이 있습니다. (https://aws.amazon.com/security/penetration-testing)
원치 않는 트래픽 급증이나 전면적인 DDoS(분산 서비스 거부) 공격으로부터 서버를 보호하는 가장 쉽고 저렴한 방법은 CloudFlare.com과 같은 관리형 서비스를 사용하는 것이라고 생각합니다. 물론 Sophos UTM 9 또는 Imperva와 같은 보안 어플라이언스를 사용할 수 있지만 추가 시간당 비용 및 라이센스 비용 외에도 구성 및 유지 관리 방법을 알아야 합니다.
AWS는 최근 AWS WAF(웹 애플리케이션 방화벽)를 발표했지만 이를 CloudFront에 연결해야 할 것 같습니다. (https://aws.amazon.com/blogs/aws/new-aws-waf)
다른 도구를 사용하지 않으려면 웹 애플리케이션을 지속적으로 모니터링하고 VPC 서브넷에서 가상 사설망(VPC) 및 네트워크 액세스 제어(NACL)를 사용하여 원치 않는 요청을 차단해야 합니다. 이것이 효과가 있지만 사이트가 자주 공격을 받으면 두더지 잡기 게임을 할 수도 있습니다.
마지막으로 웹사이트를 보호하는 가장 좋은 방법은 여러 계층의 보안(심층 방어라고도 함)을 사용하는 것입니다. 따라서 어떻게 해야 할지 잘 모르겠다면 커피 한두 잔을 마시고 OWASP(The 웹 애플리케이션 보안 프로젝트를 엽니다.) (www.owasp.org)