소개
Laravel은 확장 가능한 고성능 웹 애플리케이션을 구축하기 위해 널리 사용되는 PHP 프레임워크입니다.
이 기사에서는 서버리스 Redis 인스턴스에 Laravel 세션과 캐시 데이터를 저장하여 Laravel 애플리케이션을 확장하기 위해 서버리스 Redis를 사용하는 방법을 배웁니다.
전제조건
시작하기 전에 다음이 필요합니다.
- Upstash 계정:계정이 없는 경우 신용카드 없이 무료로 가입할 수 있습니다.
- Laravel이 설치되어 있지 않은 경우 설치 방법에 대한 단계를 따르세요. 원클릭으로 Laravel 설치
아키텍처 개요
단일 서버에서 Laravel을 실행하는 대신 다음 시나리오를 고려해 보겠습니다.
- 두 개의 웹 서버에서 실행되는 Laravel 애플리케이션
- 단일 로드 밸런서는 두 웹 서버로 요청을 라우팅합니다.
- 애플리케이션의 데이터를 저장하는 데 사용되는 MySQL 데이터베이스 서버입니다.
- Upstash Serverless Redis 클러스터는 데이터 캐싱 및 사용자 세션 저장을 담당합니다.
도표:
서버리스 Redis란 무엇입니까?
Serverless Redis는 가격이 명령당 기반으로 하는 완전 관리형 서비스형 데이터베이스이므로 실제로 사용한 만큼만 요금이 부과됩니다.
그렇게 하면 서버를 과도하게 프로비저닝할 필요가 없으며 필요에 따라 애플리케이션을 확장할 수 있습니다.
서버리스 Redis가 필요한 이유
기본적으로 Laravel은 웹 서버 디스크의 파일에 사용자 세션을 저장합니다. 그렇게 하면 로드 밸런서가 사용자 요청을 다른 서버로 전달하면 사용자 세션이 손실됩니다.
이것이 바로 사용자 세션과 애플리케이션 캐시를 저장할 중앙 위치를 갖는 것이 중요한 이유입니다. 그래야 요청 간에 그리고 여러 서버에서 공유할 수 있고 로드 밸런서가 요청을 다른 서버로 전달할 때마다 손실되지 않습니다.
물론 데이터베이스를 사용하여 사용자 세션을 저장하고 데이터를 캐시할 수도 있지만 더 나은 성능을 위해서는 더 나은 성능을 위해 Redis를 사용하는 것이 좋습니다. 다양한 옵션의 성능 이점에 대해 자세히 알아보려면 여기에서 이 훌륭한 기사를 확인하십시오. 성능을 위한 최고의 Laravel 캐시 드라이버는 무엇입니까?
수평 크기 조정 대 수직 크기 조정
수평 및 수직 크기 조정의 차이점에 대한 몇 마디:
- 단일 서버가 있는 경우 더 많은 리소스를 추가하여 수직으로 확장할 수 있습니다. 예를 들어 더 많은 CPU 코어, RAM 또는 디스크 공간을 추가하여 확장할 수 있습니다. .
- 반대의 수평적 확장은 수평 확장 요청을 처리하는 서버를 더 추가하는 경우입니다. .
다음은 수평 크기 조정과 수직 크기 조정의 간단한 예입니다.
애플리케이션을 수평으로 확장할 때 확장 가능한 방식으로 사용자 세션과 캐시 데이터를 처리하는 것이 중요합니다.
서버리스 Redis 클러스터 만들기
Upstash를 사용하면 다음 단계에 따라 30초 안에 서버리스 Redis 클러스터를 생성할 수 있습니다.
- Upstash 계정에 로그인합니다.
- 데이터베이스 생성을 클릭합니다. 버튼.
- Redis 클러스터의 이름을 입력하고 지역을 선택합니다.
- 만들기를 클릭합니다. 버튼.
그게 다야! 이제 서버리스 Redis 클러스터를 사용할 준비가 되었습니다.
비밀번호 및 포트와 함께 Redis 클러스터의 엔드포인트를 기록해 두십시오.
서버리스 Redis로 Laravel 구성
이제 서버리스 Redis 클러스터가 있으므로 다른 Redis 인스턴스와 마찬가지로 이를 사용하도록 Laravel을 구성할 수 있습니다.
Predis 패키지 설치
과거에는 PHP Redis 확장을 사용하여 Redis 클러스터에 연결했습니다. 그러나 이제 Predis 패키지를 대신 사용할 수 있습니다.
Predis 패키지를 설치하려면 다음 명령을 실행하십시오.
composer require predis/predis
다음으로 Laravel 프로젝트의 .env
로 이동합니다. 파일을 만들고 다음 줄을 업데이트합니다.
REDIS_HOST=your_upstash_redis_endpoint
REDIS_PASSWORD=your_upstash_redis_password
REDIS_PORT=your_upstash_redis_port
Redis 세부 정보를 변경하는 동안 캐시 드라이버와 세션 드라이버도 redis
로 변경해야 합니다. :
CACHE_DRIVER=redis
SESSION_DRIVER=redis
마지막으로 다음 명령을 실행하여 구성 캐시를 지웁니다.
php artisan config:clear
그렇게 하면 Laravel 애플리케이션이 서버리스 Redis 클러스터를 사용하여 캐시와 세션 데이터를 저장합니다.
결론
Serverless Redis와 함께 Laravel을 사용하는 것은 애플리케이션을 확장하는 좋은 방법입니다. Kubernetes 클러스터에서 Laravel을 실행 중이더라도 서버리스 Redis 클러스터를 사용하여 확장 가능한 방식으로 사용자 세션을 저장하고 데이터를 캐시할 수 있습니다.
Upstash에 대한 자세한 내용은 설명서를 확인하세요.
Laravel 애플리케이션을 확장하는 방법에 대한 자세한 내용은 다음 문서를 확인하세요.
- 관리되는 데이터베이스 및 개체 스토리지를 사용하여 확장 가능한 Laravel 6 애플리케이션을 설정하는 방법