NGINX 를 사용한 웹 성능 개선 및 확장에 대한 소개

아마도 Hacker News 상단에 처음으로 올라왔을 수도 있고, 인기 있는 뉴스 매체에 소개된 적이 있을 수도 있습니다. 확장성 및 웹 성능 에 대해 한 번도 고민해 본 적이 없다면 기본 사항을 살펴보고 시작할 수 있는 방법을 알려드리겠습니다. 걱정하지 마세요. NGINX와 NGINX Plus가 도와드릴 수 있습니다.

웹 성능 및 확장성에 대해 언제 걱정해야 하는지에 대한 상반된 정보를 알려주는 글들이 많이 있습니다. 바로 들어가기 전에 프로세스의 0단계에 대해 알아두는 것이 중요합니다:

확장성에 대한 우려 때문에 프로젝트 진행을 방해하지 마세요.

이제 기본 사항을 살펴봅시다.

목차

1. 웹 성능 향상
1-1. 웹 성능 향상을 위해 코드를 멋지게 꾸며보세요.
1-2. 데이터베이스 튜닝
1-3. CDN 사용을 고려해보세요.
1-4. 캐싱
2. 수평적 확장을 위한 준비
2-1. 불변의 인프라
2-2. 로드 밸런싱
3. NGINX를 사용하여 웹 성능 향상 결론

1. 웹 성능 향상

1-1. 웹 성능 향상을 위해 코드를 멋지게 꾸며보세요.

웹 성능 개선 방법을 찾을 때 가장 먼저 시작하기 쉬운 방법은 앱을 살펴보고 코드를 최적화하는 것입니다. 선제적으로 속도를 높이려면 선택한 언어와 프레임워크에 대한 모범 사례를 따라 완벽 마비를 피하세요. 나중에 누군가가 코드를 이해해야 한다는 점을 염두에 두고 애플리케이션 코드를 간결하게 작성하고 작업에 대한 도구를 사용하는 데 집중하세요. 데이터베이스를 열광의 대상으로 삼고 꼭 필요한 경우에만 데이터베이스와 상호 작용하세요. Recursion에 대한 지식을 과시하지 말고 루프를 더 적게 사용하세요. (Recursion을 이해하려면 먼저 recursion을 이해한 다음 recursion을 적게 사용해야 합니다.)

그런 다음 Datadog, Graphite 또는 New Relic과 같은 도구를 사용하여 병목 현상이 어디에 있는지 더 잘 파악하세요. 문제를 파악한 다음 더 나은 웹 성능을 위해 리팩터링하세요.

1-2. 데이터베이스 튜닝

애플리케이션 코드를 개선한 후에는 데이터베이스를 확인하세요. 데이터베이스를 적절히 튜닝하면 웹 성능이 크게 향상될 수 있습니다. SQL 데이터베이스를 사용하는 경우 인덱싱이 제대로 되었는지 확인하는 것이 좋습니다. 인덱싱 및 데이터베이스 튜닝에 대한 자세한 튜토리얼을 확인하세요. 사용 중인 조인 수를 특별히 주시하면서 데이터베이스에 대한 총 트립을 제한하는 방법을 찾아보세요. 데이터베이스 버퍼링플러싱을 고려해 보셨나요?

1-3. CDN 사용을 고려해보세요.

콘텐츠 전송 네트워크(CDN)는 네트워크에서 가장 가까운 서버에서 사용자에게 CPU 비용이 많이 드는 정적 콘텐츠를 제공하여 웹 성능 을 향상시킬 수 있습니다. MaxCDN은 NGINX를 사용하여 콘텐츠를 전송하고 고객을 위한 웹 성능 을 개선합니다. Netflix도 마찬가지입니다.

NGINX 커뮤니티 회원인 Ibrahim Diallo와 같은 NGINX를 사용하여 자신만의 CDN을 설정할 수 있습니다.

1-4. 캐싱

객체 단위, 전체 페이지 단위 또는 그 중간 수준에서 캐싱하면 웹 성능 이 크게 향상되고 사이트가 더 많은 트래픽을 처리할 수 있습니다. 예를 들어 NGINX 커뮤니티 회원인 Martin Fjordbald는 NGINX memcached 모듈을 활용하여 초당 12,000건의 요청을 처리했습니다.

2. 수평적 확장을 위한 준비

2-1. 불변의 인프라

불변의 인프라를 만드는 것을 수평적 확장에 대비할 수 있는 좋은 방법이며, 클라우드 기반 인프라에서 흔히 발생하는 장애에 팀이 적응하도록 함으로써 원자적 배포, 빠른 복구, 복원력 향상 등의 추가적인 이점을 제공합니다.

NGINX를 가장 빠르게 시작하고 실행할 수 있는 방법 중 하나는 공식 Docker 이미지를 사용하는 것입니다. Docker와 NGINX를 처음 사용하는 경우 다음 배포 팁을 확인하세요.

2-2. 로드 밸런싱

애플리케이션의 여러 인스턴스를 스핀업할 때 Rails 애플리케이션 개발자를 위한 이 튜토리얼에 설명된 대로 NGINX를 로드 밸런서로 사용할 수 있습니다.

애플리케이션에 세션 지속성이 필요한지 여부는 웹 성능 과 확장성 모두에 영향을 미칠 수 있습니다. 세션 지속성에 대한 지원은 NGINX Plus에서 제공되는 많은 기능 중 하나입니다. 세션 지속성을 통한 로드 밸런싱에 대한 포스터를 확인하거나 30일 동안 무료로 NGINX Plus를 체험하고 바로 해킹을 시작하세요!

3. NGINX 를 사용하여 웹 성능 향상 결론

사이트 트래픽이 급증할 수 있다는 두려운 전망에 직면했을 때, 그 도전을 피하지 마세요. 웹 성능 과 확장성의 기본을 염두에 두세요. 로드 밸런싱, 캐싱, 고성능 웹 서비스를 통해 이러한 과제를 해결할 수 있도록 NGINX Plus가 도와드립니다.

이 글을 개선해 주신 Florian MotlikKelly King에게 특별히 감사드립니다.

NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.

NGINX에 대한 최신 정보들을 빠르게 전달받고 싶으시다면, 아래의 뉴스레터를 구독하세요.