AWS에서 고가용성, 고성능, 안전한 PHP 애플리케이션을 실행하는 방법을 이해할 수 있다.

  1. Amazon Route 53이 DNS(Domain Name Service)를 해석하여 최종 사용자 요청을 라우팅한다.
  2. Amazon CloudFront가 글로벌 Points of Presence를 활용하여 콘텐츠를 캐싱하고 전송을 가속화한다. CloudFront는 SSL 종료도 처리하며, 자동으로 SSL 인증서를 생성하고 갱신하는 Amazon Certificate Manager와 통합된다.
  3. AWS Web Application Firewall이 CloudFront 및 Application Load Balancer와 통합되어 OWASP 상위 10개 애플리케이션 취약점을 완화한다.
  4. Application Load Balancer가 HTTP/S 요청을 Private Subnet에서 실행 중인 EC2 인스턴스로 라우팅한다.
  5. Amazon Linux 2 AMI에 PHP 및 AWS SDK for PHP와 같은 기타 필수 바이너리가 포함되어 있다.
  6. Amazon Linux 2 AMI에 설치된 Amazon CloudWatch Agent가 애플리케이션 로그, 추가 호스트 수준 메트릭, 커스텀 비즈니스 메트릭을 스트리밍한다.
  7. Amazon EC2 Auto Scaling이 CPU 및 메모리와 같은 메트릭을 기반으로 인스턴스 시작을 관리한다. 비용 최적화를 위해 Amazon Graviton 인스턴스를 사용한다.
  8. Systems Manager Session Manager를 사용하여 AWS Console의 웹 기반 세션으로 EC2 인스턴스에 연결한다. 키 페어나 열린 SSH 포트가 필요 없다.
  9. 데이터베이스 자격 증명이 AWS Secrets Manager에 안전하게 저장된다. AWS SDK for PHP를 사용하여 애플리케이션 코드가 IAM Role을 통해 Secrets Manager에 저장된 자격 증명을 조회한다.
  10. 애플리케이션 코드가 친숙한 Git CLI를 사용하여 AWS CodeCommit에 안전하게 저장된다.
  11. AWS CodePipeline이 CI/CD를 구현하며, 새 EC2 인스턴스가 시작될 때 트리거되는 AWS CodeDeploy 후크를 사용하여 코드 배포를 오케스트레이션한다.
  12. Amazon ElastiCache for Redis가 세션 데이터를 캐싱한다.
  13. Amazon Aurora Multi-AZ가 고가용성을 가능하게 한다. 장애 발생 시 자동으로 페일오버를 처리하는 DNS 엔드포인트를 통해 애플리케이션이 연결된다. Aurora Reader 엔드포인트가 읽기 작업을 처리하여 Aurora Writer 인스턴스의 부하를 경감한다.
  14. Amazon Elastic File System(Amazon EFS)이 Auto Scaling 그룹과 웹 콘텐츠를 저장하고 공유한다.