서비스 별 병목 현상의 예와 원인
EC2
- CPU 병목: 인스턴스 유형이나 크기에 따라 CPU 리소스에 제한이 있을 수 있습니다. CPU 사용량이 지속적으로 높으면 애플리케이션의 성능에 영향을 줄 수 있습니다.
- 메모리 병목: 인스턴스의 RAM이 부족하게 되면 스왑이 발생하게 되어 성능이 저하될 수 있습니다.
- 디스크 I/O 병목: EBS (Elastic Block Store) 볼륨의 성능 제한이나 I/O 용량을 초과하는 경우, 디스크 읽기/쓰기 성능에 문제가 발생할 수 있습니다.
- 네트워크 병목: 인스턴스 유형이나 설정에 따라 네트워크 대역폭에 제한이 있을 수 있습니다. 이로 인해 네트워크 전송 속도에 제한이 발생할 수 있습니다.
RDS
- CPU 병목: RDS 인스턴스 유형에 따라 CPU 리소스에 제한이 있을 수 있습니다. 특히 복잡한 쿼리나 대량의 트랜잭션이 발생하면 CPU 사용률이 높아질 수 있습니다.
- 메모리 병목: RDS 인스턴스의 메모리가 충분하지 않으면 데이터베이스 쿼리 성능이 저하될 수 있습니다.
- 디스크 I/O 병목: RDS의 스토리지 타입이나 IOPS 설정에 따라 디스크 I/O 성능에 제한이 있을 수 있습니다. 쿼리의 읽기/쓰기 요청이 많거나 로그의 기록이 빈번할 경우 디스크 I/O에 병목이 발생할 수 있습니다.
- 네트워크 병목: EC2와 마찬가지로 RDS 인스턴스의 네트워크 대역폭에 제한이 있을 수 있습니다.
- 커넥션 제한: RDS는 동시에 연결할 수 있는 최대 클라이언트 수에 제한이 있습니다. 동시 연결 수가 제한을 초과하면 새로운 연결 요청이 실패할 수 있습니다.
- 데이터베이스 엔진의 설정: 데이터베이스 엔진의 특정 설정이나 파라미터 값들이 최적화되지 않았다면 병목 현상이 발생할 수 있습니다.