= 수직 스케일 업(Vertical Scaling)
하드웨어
: 서버에 디스크를 추가, CPU나 메모리를 업그레이드소프트웨어
: EC2 인스턴스 사양을 micro > small > medium 등으로 높임= 수평 스케일 업(Horizontal Scaling)
로드 밸런싱 없이 사용할 경우 100명의 사용자가 2대의 서버에 접속한다고 가정했을 때 99명의 사용자가 서버 1에 접속, 1명의 사용자가 서버 2에 접속하는 이슈가 발생할 수도 있다.
쿼리 최적화는 데이터베이스 엔진이 쿼리를 빠르고 효율적으로 실행하도록 하는 프로세스입니다. 이는 쿼리 실행 계획을 개선하여 최소한의 리소스로 원하는 결과를 얻도록 하는 것을 의미합니다.
최적화 기술에는 쿼리 실행 계획의 분석, 인덱스 사용, 조인 최적화, 부하 분산, 메모리 사용 최적화 등이 포함됩니다.
개발자는 쿼리를 작성할 때 효율적이고 최적의 방법으로 데이터를 요청할 수 있도록 노력해야 합니다.
색인은 특정 열(속성)의 값을 빠르게 검색하기 위해 사용되는 데이터베이스 객체입니다. 색인을 사용하면 데이터베이스 엔진은 검색 조건을 빠르게 만족시키는 데 도움이 됩니다.
주로 WHERE 절에서 사용되는 열에 색인을 생성하면 검색 속도가 향상됩니다. 그러나 색인은 쓰기 작업(INSERT, UPDATE, DELETE)에 대한 성능 저하를 가져올 수 있으므로 적절한 균형을 유지해야 합니다.
데이터베이스 엔진은 데이터베이스 시스템의 핵심이며, 선택된 엔진은 성능, 안정성, 확장성 등에 영향을 미칩니다.
관계형 데이터베이스(예: MySQL, PostgreSQL)는 정형화된 데이터에 적합하며, 복잡한 JOIN 작업이나 트랜잭션 처리에 유리합니다.
NoSQL 데이터베이스(예: MongoDB, Cassandra)는 비정형 또는 반정형 데이터에 적합하며, 대용량 데이터의 저장 및 검색에 효율적입니다.
In-Memory 데이터베이스(예: Redis, Memcached)는 데이터를 메모리에 저장하여 빠른 읽기 및 쓰기 작업을 지원합니다.
데이터를 여러 위치에 분산하여 처리할 수 있는 분산 데이터 스토리지 시스템을 사용합니다. 이는 데이터베이스 및 파일 시스템에서 효율성을 높일 수 있습니다.
서비스에 변경을 가할 때, 무정지 업데이트와 롤백 기능을 고려하여 사용자에게 지속적인 서비스를 제공할 수 있도록 합니다.
대규모 트래픽은 보안 공격으로 이어질 수 있습니다. DDoS 공격에 대비하여 방어 메커니즘을 구현하고, 웹 방화벽 등의 보안 기술을 사용합니다.
서버 및 네트워크 성능을 모니터링하고 로깅하는 도구를 사용하여 문제를 조기에 감지하고 해결합니다.