이 튜토리얼은 Amazon DynamoDB를 PHP 세션의 저장 시설로 사용하는 방법을 보여줍니다. 이 방법은 응용 프로그램이 탄성로드 밸런싱 및 자동화 서비스를 활용할 때 매우 유용합니다. EC2, Elastic Load Balancer 및 DynamODB를 튜토리얼을 따라 재생할 수있는 전제 조건으로 사용하려면 Amazon AWS 계정이 필요합니다.
로드 밸런서의 이름을 선택하고 리스너 구성이 스크린 샷의 구성과 일치하는지 확인하십시오.
다음 화면에서는 현재 실행중인 인스턴스를로드 밸런서에 추가 할 수있는 것을 선택할 수 있습니다. 이전에 생성 된 두 인스턴스를 선택하고 계속 진행하십시오. 최종 구성을 검토하고 괜찮은지 확인하십시오. 이제로드 밸런서의 세부 사항과 모든 연결된 인스턴스의 상태를 볼 수 있어야합니다.
Dynamodb 및 PHP로 작업 할 때 Dynamodb에서 오류 및 예외를 어떻게 처리 할 수 있습니까? 오류 및 예외를 처리 할 수 있습니다. 트리 캐치 블록 사용. PHP 용 AWS SDK는 작업이 실패 할 때 예외를 제외하고 응용 프로그램에 적합한 방식으로 이러한 예외를 처리 할 수 있습니다.
그리고 이것은 우리가 이것에서 해결하려고 노력할 문제입니다… 음, 세션.
응용 프로그램은 사용자에게 현재 세션에 저장된 사용자 이름을 선택하고 "로그인"역할을합니다. 세션에 사용자 이름이있는 경우 응용 프로그램은 사용자가 일종의 "프로파일"을 삽입 할 수있게합니다. 본질적으로 이름, 성, 이메일 등과 같은 일련의 키/값 정보 (키 및 값은 문자열입니다). 이 모든 논리는 index.php 파일에 포함되어 있습니다.
세션 .php
파일에는 간단한 세션 라이브러리가 포함되어 있습니다. 이 라이브러리를 사용하면 $ session-> read ( 'some_var') 및 $ session-> write ( 'some_key', 'some_value')와 같은 친숙한 방법으로 세션 데이터를 관리 할 수 있습니다. 이 세션 객체는 기본 PHP 세션 메커니즘 (로컬 테스트 서버 인 경우) 또는 사용자 정의 클래스를 사용하도록 구성 할 수 있습니다. 응용 프로그램 파일의 첫 번째 단계는 세션 시작입니다.
<span>require_once 'lib/session.php';
</span><span>try {
</span> <span>// Engine can be PHP or AmazonDynamoDB
</span> <span>$session = new Session($config['session']['engine'], $config['session']['params']);
</span><span>} catch (Exception $e) {
</span> <span>exit($e->getMessage());
</span><span>} // end try</span>
<span>switch ($engine) {
</span><span>case 'AmazonDynamoDB':
</span><span>// Load AWS SDK
</span><span>require_once 'AWSSDKforPHP/sdk.class.php';
</span><span>// Create a list of credential sets that can be used with the SDK.
</span><span>CFCredentials<span>::</span>set($params['credentials']);
</span><span>// Instantiate a DynamoDB client
</span><span>$dynamodb = new AmazonDynamoDB();
</span><span>$dynamodb->set_region($params['region']);
</span><span>// Instantiate, configure, and register the session handler
</span><span>$this->handler = $dynamodb->register_session_handler(array(
</span><span>'table_name' => $params['table_name'],
</span><span>'lifetime' => $params['lifetime'],
</span><span>));
</span><span>break;</span>
<span>function getServerName() {
</span> <span>$host = $_SERVER['SERVER_NAME'];
</span> <span>if ('localhost' != $host) {
</span> <span>// Maybe we are on EC2, trying to catch the current instance ID
</span> <span>$ch = curl_init('http://169.254.169.254/latest/meta-data/instance-id');
</span> <span>curl_setopt($ch, CURLOPT_FAILONERROR, true);
</span> <span>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
</span> <span>curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
</span> <span>if ($ret = curl_exec($ch)) {
</span> <span>$host .= ' (instance ' . $ret . ')';
</span> <span>} // end if
</span> <span>curl_close($ch);
</span> <span>} // end if
</span> <span>return $host;
</span><span>} // end function</span>
이제 EC2 서비스와 DynamODB 테이블에서 선택한 동일한 영역을 선택하십시오. 대시 보드 또는 "인스턴스"섹션에서 "인스턴스 시작"버튼을 클릭하십시오. 사용자 정의 AMI를 선택하거나 클래식 마법사를 사용하여 "Community Amis"탭으로 이동하여 "AMI – 4B42443F"를 입력하십시오.
다음 화면에서 인스턴스 수에 대해 최소한 "2"를 입력하고 인스턴스 유형을 선택하면 Micro (t1.micro)를 선택했습니다. 가용성 구역 드롭 다운에 "선호도"를 남길 수 있지만 생산 환경에서는 다양한 인스턴스가 동일한 지역 내부의 둘 이상의 영역 사이에 배포되는 것이 좋습니다. "인스턴스 세부 사항"과 "저장 장치"구성 패널 모두에 대한 기본 설정을 수락 한 다음 계속하십시오. 원하는 경우 하나 이상의 선택적 태그를 입력하십시오. 키어를 선택하거나 새 제품을 만드십시오
포트 80에서 최소한 HTTP를 허용하고 포트 22에서 SSH를 허용하는 보안 그룹을 선택하십시오.
설정을 검토 한 다음 인스턴스를 시작하십시오. 인스턴스 상태가 "실행"되면 SSH를 통해 구성 할 수 있습니다. 각 인스턴스에는 EC2-XXX-XXX-XX-XX.region.comPute.amazonaws.com과 유사한 공개 DNS 이름이 있습니다. 생성 된 각 인스턴스에서 config.php 파일을 편집해야합니다. 공개 키와 사용자 이름 "Ubuntu"(내 공개 AMI를 사용한 경우)를 사용하여 SSH 또는 SFTP 클라이언트와 인스턴스에 연결하십시오.
$ ssh -i/path/to/key.pem ubuntu@ec2-x-x-x-x.region.compute.amazonaws.com
테스트 응용 프로그램이있는 /var /www로 현재 디렉토리를 변경하십시오. AWS 키와 비밀을 삽입하는 config.php 파일 편집. 그런 다음 DynamODB 테이블 설정이 일치하는지 확인하면이 참조에서 찾을 수있는 적절한 값으로 영역을 편집해야합니다.
그런 다음 ping.html 내부 /var /www라는 빈 파일을 만듭니다.이 파일은로드 밸런서에서 각 인스턴스의 도달 가능성을 테스트하는 데 사용됩니다.
건강 검사 패널에서 핑 경로 필드에 /ping.html을 입력하고 다른 설정을 기본값으로 남겨 둡니다. 이는 다음을 의미합니다. 30 초마다 각 인스턴스의 /ping.html 리소스를 호출하십시오. 응답 시간이 5 초가 더 길면 검사가 실패하면 인스턴스가 두 번 연속 건강 점검이 실패하면 인스턴스가 10 연속 체크인 경우 건강에 해로운 상태가됩니다. 건강한. 로드 밸런서는 트래픽을 건강에 해로운 인스턴스로 전달하지 않으며 자동 스케일이 마련된 경우 건강에 해로운 사례를 종료하여 새로운 신선한 사례로 대체 할 수 있습니다.
양식을 제출하거나 요청 페이지를 새로 고칠 때마다 요청한 페이지는 다른 인스턴스로 처리 할 수 있습니다. GetServerName () 유틸리티를 통해 표시된 이름으로 어떤 인스턴스를 제공하는지 확인할 수 있습니다.
요약
그리고 지금은 그게 전부입니다. 우리는 AWS 생태계에서 중요한 주제를 다루었지만 이것이 시작일뿐입니다. 예를 들어이 모든 것들이 완전히 프로그래밍 가능합니다. 예를 들어, 자동화를 추가하고 인스턴스를 자체 구성 할 수 있도록 인스턴스를 설계하고 신뢰할 수있는 장소에서 AWS 자격 증명 및 기타 데이터를 다운로드 할 수 있습니다. 또는 클라우드 형성을 사용하여 전체 인프라에 대한 재사용 가능한 템플릿을 만들 수 있습니다.
확인의 시작점은 AWS 홈페이지입니다. 그리고 테스트를 마친 경우 행복한 코딩은 아니더라도 모든 것을 종료하는 것을 잊지 마십시오!
Fotolia를 통한 이미지
로드 밸런싱은 서버로드를 관리하고 최적의 성능을 보장하는 데 중요한 측면입니다. Amazon DynamoDB 및 PHP 세션을 사용하면 Amazon의 ELB (Elastic Load Balancing) 서비스를 사용하여이를 달성 할 수 있습니다. ELB는 Amazon EC2 인스턴스, 컨테이너 및 IP 주소와 같은 여러 대상에 걸쳐 들어오는 응용 프로그램 트래픽을 자동으로 배포합니다. 단일 가용성 영역 또는 여러 가용성 영역에서 애플리케이션 트래픽의 다양한 부하를 처리 할 수 있습니다. PHP 세션에 Amazon DynamoDB를 사용하면 어떤 이점이 있습니까? Amazon Dynamodb는 몇 가지 이점을 제공합니다. PHP 세션의 경우. 원활한 확장 성으로 빠르고 예측 가능한 성능을 제공합니다. 가동 중지 또는 성능 저하없이 트래픽을 조정하기 위해 테이블을 위 또는 아래로 확장 할 수 있습니다. DynamoDB는 또한 인터넷 규모 애플리케이션을위한 내장 보안, 백업 및 복원 및 메모리 인 캐싱을 제공합니다. DynamodB와 함께 PHP에 AWS SDK를 어떻게 사용할 수 있습니까?
AWS SDK PHP를 사용하면 개발자가 비용 효율적이고 확장 가능하며 안정적인 AWS 클라우드를 활용하는 응용 프로그램을보다 쉽게 구축 할 수 있습니다. SDK에는 AWS PHP 라이브러리 및 Code Samples가 포함되어있어 AWS SDK를 사용하여 PHP를 사용하여 Amazon S3, Amazon EC2 및 DynamoDB와 같은 AWS 서비스가 제공하는 모든 기능을 활용하는 방법을 보여줍니다. PHP 코드 예제가있는 공통 DynamODB는? 여기에는 테이블 만들기, 테이블에 항목 쓰기, 테이블에서 항목 읽기, 테이블의 항목 업데이트 및 테이블에서 항목 삭제가 포함됩니다. 이러한 각 작업은 Php의 AWS SDK를 사용하여 수행 할 수 있습니다.Amazon Store 용 PHP 스크립트를 어디에서 찾을 수 있습니까?
Codecanyon과 같은 다양한 온라인 플랫폼에서 Amazon Store 용 PHP 스크립트를 찾을 수 있습니다. 이 스크립트를 통해 Amazon의 서비스를 PHP 응용 프로그램에 통합하여 제품 검색 및 디스플레이, 쇼핑 카트 관리 및 주문 처리와 같은 기능을 제공 할 수 있습니다.
PHP를 사용한 DynamODB에 대한 완전한 예가 있습니까? 예, PHP와 함께 DynamoDB를 사용하기위한 완전한 예가 있습니다. 이 예제에는 일반적으로 테이블 작성 코드, 테이블에 항목 작성, 테이블에서 항목 읽기, 테이블의 항목 업데이트 및 테이블에서 항목 삭제가 포함됩니다. 그들은 종종 오류와 예외를 처리하는 방법의 예를 포함합니다. Dynamodb에서 내 데이터를 어떻게 보호 할 수 있습니까? DynamoDB는 데이터를 보호하기위한 몇 가지 보안 기능을 제공합니다. 여기에는 REST에서의 암호화가 포함되어 있으며, 기본 스토리지에 대한 무단 액세스로부터 데이터를 보호하고, 출원과 DynamODB 사이에 데이터가 이동할 때 데이터를 보호하는 트랜지 트의 암호화가 포함됩니다. Dynamodb?
DynamoDB는 데이터 백업 및 복원에 대한 내장 지원을 제공합니다. 언제든지 주문형 백업을 생성하고 필요할 때 이러한 백업에서 테이블 데이터를 복원 할 수 있습니다. 이를 통해 실수로 삭제 또는 수정으로부터 데이터를 보호하고 실패한 경우에도 애플리케이션을 원활하게 실행할 수 있습니다.
위 내용은 PHP 마스터 | Amazon DynamoDB :로드 밸런서로 PHP 세션을 저장하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!