이 문서에서는 2계층 웹 애플리케이션을 클라우드로 이전하는 내부 평가를 수행하는 조직에 Google Cloud 옵션을 소개합니다. ## 애플리케이션 유형 2계층 웹 애플리케이션은 애플리케이션을 실행하는 웹 서버와 애플리케이션 데이터를 저장하는 데이터베이스로 구성됩니다. 실행 중인 Linux, Apache, MySQL 및 일반적으로 LAMP 스택이라고 하는 PHPâÃÂÃÂ는 2계층 웹 애플리케이션의 일반적인 예입니다. Linux 배포판, 웹 서버 소프트웨어, 데이터베이스 또는 프로그래밍 언어의 변형은 모든 마이그레이션의 기술적 세부 사항에 영향을 주지만 마이그레이션 개요 및 단계는 일관됩니다. ## 마이그레이션 단계 클라우드 마이그레이션은 다음 4단계로 이루어집니다. 평가 워크로드의 모든 특성을 식별하고, 클라우드에서 워크로드를 실행하는 데 필요한 리소스를 나열하고, 다른 워크로드에 대한 모든 주요 종속성 및 연결을 호출합니다. 전체 특성 목록을 사용하여 어떤 애플리케이션과 워크로드를 어떤 순서로 이동해야 하는지 계획을 시작할 수 있습니다. 현대 기업에는 고객 대면 앱에서 백오피스 앱, 개발자 도구, 실험적 애플리케이션에 이르기까지 다양한 종류의 애플리케이션이 있습니다. 이러한 모든 애플리케이션을 동시에 동일한 방식으로 이동하는 것은 위험하고 비효율적입니다. 한 가지 예는 애플리케이션을 다음 세 가지 광범위한 버킷으로 분류하는 것입니다. - 이동하기 쉬운 어플리케이션. 이들은 종속성이 적고 최신이며 내부적으로 작성되었으므로 라이센스 고려 사항이 없으며 클라우드 디자인 패턴의 확장 및 지원에 더 관대합니다. - 이동이 어려운 어플리케이션. 종속성이 더 많고, 확장에 대한 내성이 낮고, 클라우드 서비스로 실행하기 어렵거나, 복잡한 라이선스 요구 사항이 있습니다. - 이동할 수 없는 애플리케이션. 마이그레이션하기에 적합하지 않은 일부 응용 프로그램은 전문 하드웨어나 구형 하드웨어에서 실행되거나, 데이터 센터에 있어야 하는 비즈니스 또는 규제 요구 사항이 있거나, 복잡한 라이선스 요구 사항이 있습니다. Â클라우드로의 이동을 허용하지 않음 이들은 응용 프로그램을 정렬하는 방법의 몇 가지 예일 뿐입니다. 응용 프로그램에는 모든 응용 프로그램의 우선 순위 지정 매트릭스를 만드는 데 사용할 수 있는 더 많은 결정 요소가 있을 수 있습니다. 이 순위에서 이동할 첫 번째 애플리케이션을 선택하고 Google Cloud 기반 계획을 시작할 수 있습니다. 기반 새 클라우드 환경을 배포하기 위한 특정 세부 정보를 설계하고 계획합니다. 여기에는 다음이 포함됩니다. - 워크로드를 위한 인프라 기반을 제공하는 클라우드 아키텍처 및 보안 모델 애플리케이션 간의 안전하고 안정적인 통신을 허용하는 네트워크 리소스입니다. 이를 위해서는 IAM(Identity and Access Management), VPC(Virtual Private Cloud) 설계 및 외부 액세스 방법에 대한 광범위한 계획이 필요합니다. 워크로드가 실행될 최종 상태 기술 및 도구 종속성 관리, 타임라인 및 데이터 이동 방법 설명 이주 데이터를 이동하고 서비스, 인프라 및 코드를 목적지로 배포하십시오. 자동화 및 도구를 사용하여 이러한 작업을 지원해야 합니다. 최적화 평가 및 기초 단계에서 내린 결정과 가정이 마이그레이션 단계 이후의 현실과 일치하는지 확인하십시오. 필요한 변경 사항을 식별합니다. IaaS(Infrastructure as a Service)에서 PaaS(Platform as a Service)로 이동하거나 관리형 서비스 오퍼링을 활용하는 등 다른 클라우드 네이티브 옵션을 탐색하는 방법을 고려하십시오. 최적화 단계의 결과에 따라 변경 또는 수정을 처리하기 위해 주기를 다시 시작할 수 있습니다. 항상 평가 단계에서 다시 시작하고 각 반복에서 더 효율적이 되도록 경험을 사용하십시오. ## 마이그레이션 유형 애플리케이션을 클라우드로 이동하기 위한 가장 일반적인 세 ​​가지 마이그레이션 전략은 다음 섹션에 설명되어 있습니다. 리프트 앤 시프트 사용 *리프트 앤 시프트*로 변경하는 동안 응용 프로그램을 이동하려는 경우 그들이 기능하는 방식에서 가능한 한 적게. 이는 다음과 같은 애플리케이션에 가장 적합합니다. 애플리케이션을 신속하게 이동하는 것이 우선 순위, 또는 비즈니스가 변화에 대한 욕구나 필요성이 거의 없을 때. 이것 마이그레이션하려면 인프라 및 운영 담당자의 더 많은 작업이 필요합니다. 서비스가 실행되는 근본적인 변화를 지원하고 작업량을 줄입니다. 코드를 변경해야 하는 경우가 거의 없기 때문에 개발자로부터 예를 들어 웹 애플리케이션의 두 계층이 모두 VM에서 호스팅되는 경우 Migrate to Virtual Machines를 사용하여 그대로 마이그레이션할 수 있습니다. 해당 VM이 클라우드에 있는 경우 추가 이점을 위해 클라우드 네이티브 컴퓨팅 플랫폼으로 업그레이드하는 것을 고려할 수 있습니다. 개선 및 이동 사용 *개선 및 이동*에서 애플리케이션을 현대화하려는 경우 클라우드로 마이그레이션하는 과정입니다. 이것은 일반적으로 응용 프로그램을 사용할 때 사용됩니다. 있는 그대로 클라우드에서 지원되지 않거나 소프트웨어의 주요 업데이트 또는 하드웨어는 이미 범위가 지정되고 계획되어 있습니다. 이 마이그레이션에는 인프라가 필요합니다. 운영 및 개발자가 협력하여 기능을 개선합니다. 애플리케이션이 클라우드에서 더 많은 이식성, 확장성 및 안정성과 같은 클라우드 네이티브 이점 이 전략의 또 다른 변형은 한 동작으로 개선하고 이동하는 것입니다. 웹 애플리케이션의 두 계층이 모두 VM에서 호스팅되는 경우 Migrate to Containers를 사용하여 해당 VM을 자동으로 이동하고 Google Kubernetes Engine(GKE)에서 실행되는 컨테이너로 변환할 수 있습니다. 리핑 및 교체 사용 클라우드에서 새 솔루션을 구축하려는 경우 *전면 교체* 온프레미스 솔루션의 현재 버전을 종료합니다. 이것은 일반적으로 사용됩니다 다음 조건이 적용될 때: - 기존 애플리케이션은 기술적으로나 재정적으로 클라우드에서 유지할 가치가 없습니다. - 클라우드에서 소프트웨어 라이선스가 금지되거나 비실용적임 - 응용 프로그램이 비즈니스 요구 사항을 모두 충족하지 않습니다. 전면 교체는 애플리케이션을 처음부터 다시 작성해야 하므로 이 마이그레이션 가이드에서는 다루지 않습니다. ## 평가 단계 마이그레이션을 시작하기 전에 시작 지점을 철저히 이해해야 합니다. 답이 없는 질문은 마이그레이션 성공에 위험을 초래합니다. 평가 단계에 시간을 투자하면 원활하고 문제 없는 마이그레이션 단계를 보장하는 데 도움이 됩니다. 마이그레이션을 지원하기 위해 최대한 많은 관련 정보를 캡처하는 데 가능한 한 많은 시간을 할애하십시오. 애플리케이션 소프트웨어 스택 인프라, 운영 및 개발 팀과 협력하여 다음 세부 정보를 확인합니다. - 운영체제: 정확한 배포판, 버전, 패치, 설치된 패키지 - 웹 서버: 정확한 소프트웨어 패키지, 버전 번호, 패키지 또는 기타 소프트웨어 수정, 웹 서버 소프트웨어에 대한 모든 구성 파일 및 규칙 - 데이터베이스: 정확한 소프트웨어 이름, 버전, 스키마, 복제 전략 및 백업 일정 - 런타임 환경: 모든 백엔드 및 프런트엔드 환경의 정확한 버전 시스템 하드웨어 리소스 웹 서버 및 데이터베이스 계층의 경우 다음 질문에 답하십시오. - 현재 실행 중인 서버는 몇 개입니까? - 세대, 아키텍처 유형 및 속도를 포함한 총 CPU 할당량은 얼마입니까? - 각 서버에 할당된 RAM 및 디스크 공간은 무엇입니까? HDD 또는 SSD를 사용하고 있습니까? 습격? - CPU, RAM 및 디스크 공간의 현재 사용률, 평균 사용률 및 최대 사용률은 얼마입니까?특정 비즈니스 용도의 맥락에서 평균과 피크를 살펴보십시오.예를 들어, 올림픽을 지원하는 회사는 실제 피크가 어떤 것인지 확인하기 위해 2년을 되돌아봐야 할 수 있지만 다른 애플리케이션은 더 꾸준한 실행 속도를 보일 수 있습니다.평균에 대한 가장 일반적인 사용 사례 타임라인과 피크에 대한 가장 많은 사용 타임라인을 살펴보십시오.또한 주말, 저녁 및 근무일과 같은 주기적인 사용 패턴을 찾습니다.- 데이터베이스의 경우 어떤 백업, 복제 또는 샤딩 전략이 사용되고 있으며 어떻게 디스크 공간 요구 사항과 필요한 서버 수에 영향을 미칩니까?네트워크 리소스애플리케이션이 작동할 수 있도록 하는 네트워크 아키텍처를 분석합니다.애플리케이션을 지원하는 인프라의 정확한 최신 논리적 및 물리적 네트워크 토폴로지 다이어그램이 있는지 확인하십시오.다이어그램은 모든 연결, 종속성 및 네트워크 서비스를 명확하게 설명해야 합니다.다음 질문에 답하십시오.- 고객이 애플리케이션에 액세스하는 방법은 무엇입니까?웹 브라우저를 통해?IP 주소를 통해 직접?모바일 앱을 통해?가상 사설망 연결을 사용하십니까?- 적용 가능한 모든 SSL/TLS 인증서 및 암호화 키 목록이 있습니까?- 적용 가능한 모든 SSL/TLS 인증서는 어디에서 호스팅됩니까?언제 만료되나요?인증서는 어떻게 갱신합니까?새 인증서는 어떻게 얻습니까?현재 모든 인증서에 액세스할 수 있습니까?- 애플리케이션을 지원하는 모든 해당 도메인 목록이 있습니까?- 이 도메인은 어디에서 호스팅됩니까?언제 만료되나요?어떻게 갱신합니까?등록을 제어하는 ​​계정에 대한 액세스 권한이 있습니까?- DNS는 어디에서 호스팅되고 제어됩니까?- DNS를 제어하는 ​​모든 시스템과 도구에 액세스할 수 있습니까?각 도메인에 대한 현재 CNAME 대 IP 매핑은 무엇이며 백업이 있습니까?- DNS TTL(time-to-live) 설정은 무엇입니까?- 방화벽과 기타 네트워크 액세스 및 제어 장치는 아키텍처에서 어디에 적합합니까?현재 트래픽을 허용하거나 거부하는 규칙은 무엇입니까?책임자는 누구이며 이러한 규칙을 변경하거나 업데이트하는 절차는 무엇입니까?- 외부 네트워크 서비스를 사용하십니까?예를 들어 콘텐츠 전송 네트워크(CDN) 공급자 또는 분산 서비스 거부(DDoS) 보호 서비스?## 기초 단계Google Cloud는 LAMP와 같은 다중 계층 애플리케이션을 위한 컴퓨팅 및 데이터베이스 워크로드 실행을 위한 다양한 옵션을 제공합니다.이 섹션에서는 이러한 옵션을 소개하고 이 옵션을 선택해야 하는 이유를 설명합니다.컴퓨팅 중심 옵션Compute EngineCompute Engine is an IaaS Google Cloud에서 가상 머신(VM)을 실행할 수 있는 제품입니다.웹 프레임워크, 서버 소프트웨어, 데이터베이스 및 운영 체제가 지원하는 기타 소프트웨어를 설치할 수 있습니다.베어메탈, VM, 데이터 센터 또는 다른 클라우드 공급자에서 자체 LAMP 애플리케이션을 실행하는 경우 이 옵션은 정확히는 아니더라도 기존 서버를 거의 복제할 수 있습니다.이 옵션은 운영 체제 구성 및 웹 서버 소프트웨어 설정에 대한 최고의 제어 기능을 제공합니다.Compute Engine에서는 머신 유형, 인스턴스 그룹, 저장소 옵션, 부하 분산기, 기타 여러 세부정보를 세부적으로 제어할 수 있습니다.더 많은 빠른 시작, 가이드 등을 보려면 전체 Compute Engine 문서를 참조하세요.애플리케이션을 Compute Engine으로 직접 이동하는 것은 가장 일반적인 리프트 앤 시프트 마이그레이션입니다.온프레미스 리소스를 Compute Engine에 매핑하는 방법에 대한 지침은 가상 머신을 Compute Engine으로 마이그레이션하기 위한 권장사항을 참조하세요.Cloud Deployment ManagerGoogle Cloud Marketplace도 참조하세요. Deployment Manager를 통해 간단한 LAMP 설치를 제공합니다.기본 설정에서 Debian Linux, Apache, MySQL, PHP 및 phpMyAdmin이 이미 설치 및 구성되어 있는 서버를 시작할 수 있습니다.완벽하게 작동하는 웹 서버와 MySQL 설치를 위한 사용자 인증 정보를 단 몇 분 만에 얻을 수 있습니다.Google Kubernetes EngineGKE는 프로덕션 준비가 된 관리형 환경입니다. 컨테이너화된 애플리케이션 배포용.GKE를 사용하면 웹 서버 소프트웨어를 컨테이너화하여 운영체제 관리를 중지할 수 있습니다.예를 들어 Apache 및 NGINX 웹 서버는 모든 공용 컨테이너 저장소에서 사용할 수 있습니다.컨테이너를 사용하여 환경에서 워크로드를 실행하는 경우 GKE는 LAMP 워크로드를 Google Cloud로 마이그레이션할 때 유사한 배포 및 테스트 워크플로를 유지하는 효율적인 서비스입니다.컨테이너를 사용하지 않는 경우 더 빠른 배포 및 복구, 더 높은 리소스 사용 효율성, 기본 운영 체제 및 VM을 관리할 필요가 없는 GKE를 살펴보세요For 대규모 컨테이너 애플리케이션 관리에 대한 자세한 내용은 GKE 문서에서 빠른 시작, 가이드, 개념, 방법 가이드, 시작하는 데 도움이 되는 기타 리소스를 참조하세요.온프레미스 LAMP 애플리케이션 이동 GKE로의 마이그레이션은 개선 및 이동이며, 자체 관리형 컨테이너 기반 인프라에서 마이그레이션은 교체 후 마이그레이션App EngineApp Engine은 확장성이 뛰어난 애플리케이션을 구축하기 위한 서버리스 플랫폼입니다.실행 중인 애플리케이션 유형에 따라 App Engine은 서버, 컨테이너 또는 배포를 관리할 필요가 없으므로 개발자가 코드 작성에 집중하고 기본 인프라 관리의 복잡성을 낮출 수 있습니다.모든 워크로드가 App Engine으로 전환하기에 좋은 후보는 아니지만 부하가 걸린 애플리케이션의 확장 속도와 복원력을 높이면서 비용과 복잡성이 감소하는 워크로드App Engine은 두 가지 방식으로 제공됩니다. 표준 환경은 다양한 언어(LAMP 애플리케이션용 PHP 포함)를 지원하고 가변형 환경은 런타임, 성능, 인프라를 더 많이 맞춤설정할 수 있습니다.자세한 내용은 선택한 언어에 대한 설명서를 참조하십시오.데이터베이스 옵션 Compute Engine에서 자체 관리 Compute Engine 인스턴스에 MySQL, PostgreSQL 또는 기타 SQL 기반 데이터베이스를 설치할 수 있습니다. 이는 워크스테이션, 데이터 센터의 서버 또는 다른 클라우드 공급자의 VM에서 MySQL을 실행할 때와 동일한 수준의 제어를 제공합니다. VM에서 데이터베이스를 실행할 때 장애 조치, 복제, 파티셔닝 및 고가용성을 구성, 모니터링 및 유지 관리하는 것은 사용자의 책임입니다. CPU, RAM 및 디스크 공간을 고려하여 애플리케이션을 안정적으로 실행할 수 있는 충분한 리소스가 있는지 확인하여 데이터베이스를 컴퓨팅 워크로드로 취급할 수 있습니다. 컴퓨팅 워크로드를 Compute Engine으로 이동하는 것과 마찬가지로 이 접근 방식은 리프트 앤 시프트 마이그레이션을 나타냅니다. 클라우드 SQL Cloud SQL은 데이터베이스의 설치, 설정, 유지관리를 Google Cloud로 오프로드하는 완전 관리형 데이터베이스 서비스입니다. 백업, 복제, 패치 및 업데이트를 자동화하고 애플리케이션에 집중할 수 있습니다. Cloud SQL 데이터베이스는 Compute Engine, GKE, App Engine을 비롯한 Google의 모든 컴퓨팅 서비스에서 실행되는 워크로드에서 사용할 수 있습니다. MySQL 데이터베이스에 대한 심층적인 제어가 필요하지 않은 경우 Cloud SQL은 LAMP 워크로드를 실행하기 위한 설정이 쉽고 모든 기능을 갖춘 옵션입니다. Cloud SQL은 기본적으로 MySQL 및 PostgreSQL을 실행하고 지원할 수 있습니다. 이러한 데이터베이스 중 하나에서 Cloud SQL로 마이그레이션하는 경우 이는 리프트 앤 시프트 마이그레이션입니다. 복제, 백업 전략 또는 인프라 관리의 단순성을 위한 새로운 방법을 모색하고 있다면 이는 개선 및 이동 마이그레이션일 수 있습니다. 기타 스토리지 옵션 Cloud Storage는 이미지, 정적 자산 및 기타 구조화되지 않은 데이터를 저장하는 데 이상적인 확장 가능하고 완전 관리형이며 매우 안정적이고 비용 효율적인 개체 또는 Blob 저장소입니다. Cloud Storage는 정적 웹사이트를 호스팅하는 데 사용할 수 있지만 활성 데이터베이스 콘텐츠를 저장하도록 설계되지 않았습니다. 또한 백업 및 재해 복구 개체와 스트리밍에 사용할 데이터를 저장하기에 이상적인 위치입니다. 마이그레이션 도중과 마이그레이션 후에 데이터베이스 백업을 저장하기 위한 위치로 Cloud Storage를 사용하는 것이 좋습니다. 소방서 Firestore는 전 세계적으로 모바일, 웹, 사물 인터넷(IoT) 애플리케이션의 데이터 저장, 동기화, 쿼리를 간소화하는 완전 관리형 서버리스 클라우드 네이티브 NoSQL 문서 데이터베이스입니다. 클라이언트 라이브러리는 실시간 동기화 및 오프라인 지원을 제공하는 동시에 보안 기능과 Firebase 및 Google Cloud와의 통합을 통해 진정한 서버리스 앱 구축을 가속화합니다. 애플리케이션에 사용자 프로필, 제품 카탈로그 또는 게임 상태와 같은 NoSQL 형식의 이점을 얻을 수 있는 콘텐츠가 있는 경우 마이그레이션의 최적화 단계에서 Firestore를 탐색해야 합니다. 중포 기지 Firebase는 스토리지 및 데이터베이스 옵션을 포함하는 포괄적인 모바일 개발 플랫폼입니다. 애플리케이션이 모바일 워크로드를 지원하는 경우 최적화 단계에서 Firebase 플랫폼을 고려해야 합니다. 클라우드 스패너 Spanner는 클라우드용으로 구축된 강력한 일관성을 갖춘 엔터프라이즈급 글로벌 분산형 데이터베이스 서비스입니다. 관계형 데이터베이스 구조의 이점과 비관계형 데이터베이스의 수평적 확장성을 결합합니다. 애플리케이션이 향상된 관리 용이성, 확장성, 강력한 일관성을 갖춘 트랜잭션의 이점을 누릴 수 있는 경우 최적화 단계에서 데이터베이스를 Spanner로 마이그레이션하는 것을 고려하세요. Google Cloud는 다양한 워크로드를 지원하는 다양한 스토리지 옵션을 제공합니다. ## 마이그레이션 단계 평가를 완료하고 마이그레이션을 계획한 후에는 데이터, 서비스, 리소스를 Google Cloud로 이동하는 작업을 시작할 수 있습니다. 각 애플리케이션에는 고유한 요구 사항이 있습니다. 이 섹션에서는 이 단계에 포함된 내용을 설명하는 데 도움이 되는 몇 가지 예를 살펴봅니다. 리프트 앤 시프트: Compute Engine 리프트 앤 시프트 마이그레이션을 시작하는 첫 번째 단계는 Compute Engine에서 호환되는 다중 계층 서비스를 설정하는 것입니다. 이에 대한 많은 접근 방식이 있지만; 다음은 가장 일반적인 세 ​​가지입니다. - 수동 설정. 원하는 운영 체제로 VM을 시작한 다음 리포지토리를 수동으로 업데이트하고 소프트웨어를 설치 및 구성하고 데이터베이스 및 런타임 환경을 수동으로 프로비저닝 및 구성합니다. 이 접근 방식은 높은 수준의 제어를 제공하지만 다른 방법보다 시간이 오래 걸리고 오류가 발생하기 쉬우며 재현성이 떨어집니다. - 자동화. Migrate to VMs를 사용하여 VM 스택(지정된 순서대로)을 온프레미스에서 Compute Engine의 적절한 크기로 자동 프로비저닝 및 구성된 VM으로 마이그레이션합니다. - 클라우드 마켓플레이스. Google Cloud 프로젝트에서 사전 구성된 LAMP 스택을 실행합니다. 제공된 운영 체제 및 소프트웨어 버전이 애플리케이션에서 작동하는지 확인하십시오. 자세히 알아보려면 Cloud Marketplace 문서를 살펴보세요. - 자동화된 배포. 지속적인 통합/지속적인 배포 개념과 다양한 구성 관리 도구(Chef, Puppet, Ansible, Salt), 코드형 인프라 도구(Deployment Manager, Terraform) 및 자동화 프레임워크(Cloud Build)를 사용하여 생산 준비가 된 VM을 만듭니다. 자동화된 배포를 통해 테스트 가능하고 반복 가능하며 자동화된 방법으로 애플리케이션 및 거버넌스 요구 사항을 충족하는 VM 및 소프트웨어를 배포할 수 있습니다. 개선 및 이동: GKE 및 Cloud SQL관리형 컨테이너 솔루션으로 이동하려면 먼저 클러스터 및 관리형 SQL 솔루션의 기반을 구축해야 합니다GKE 클러스터 시작GKE에서 클러스터를 만들고 해당 클러스터를 관리하는 것이 첫 번째 단계입니다.평가 및 기반 단계의 정보를 사용하여 초기 클러스터의 크기를 적절하게 조정 및 구성하고 보안 강화 모범 사례를 적용합니다.Cloud SQL용 실행 옵션사용 평가 및 기반 단계에서 얻은 데이터베이스 정보를 사용하여 새 Cloud SQL 인스턴스를 만들고 기타 안내 가이드에 따라 애플리케이션용 데이터베이스를 구축하세요.Google은 Cloud SQL 권장사항 목록, 고가용성 설정 가이드, 수평 확장에 대한 기타 가이드를 제공합니다.Google Kubernetes Engine에서 Cloud SQL로 연결하는 옵션을 살펴보고 애플리케이션 및 경험 수준에 적합한 옵션을 선택하세요.서버리스 개선 및 이전: App Engine 및 Cloud SQLLAMP 애플리케이션을 서버리스 프레임워크로 마이그레이션하기로 결정한 경우 App Engine을 지원하도록 애플리케이션을 수정해야 할 수 있습니다.모든 애플리케이션은 다르며 많은 전략이 있습니다.다음 검토부터 시작하세요.- App Engine의 마이크로서비스 아키텍처에 대한 개요 보기- 개발, 테스트, QA, 스테이징을 생성하고 이름을 지정하는 방법 이해 , App Engine의 마이크로서비스가 있는 프로덕션 환경- 마이크로서비스 간 통신을 위한 API 설계 권장사항 알아보기- 마이크로서비스 성능에 대한 권장사항 알아보기조직 및 개인 경험과 서버리스 코드 실행에 대한 친숙도에 따라 서버리스 개선 및 이동 전략은 리프트 앤 시프트 옵션보다 훨씬 더 많은 시간이 걸릴 수 있습니다.하지만 최고의 서버리스를 제공하는 것은 조직에 큰 자산이 될 수 있습니다.## 최적화 단계애플리케이션이 Google Cloud에서 실행되면 이전 세 단계의 가정과 결정을 검증할 수 있습니다.전체 마이그레이션은 시간이 오래 걸릴 수 있으며 프로세스 전반에 걸쳐 많은 세부 정보가 변경될 수 있습니다.최적화에는 많은 영역이 포함되지만 다음은 몇 가지 일반적인 범주입니다.비용 최적화온프레미스에서 클라우드로 이동하면 애플리케이션에 비용을 지출하는 방식이 변경됩니다. , 서비스 및 인프라.레거시 온프레미스 서비스에 대한 평가를 완료하고 마이그레이션 후 최신 하드웨어, 더 빠른 메모리 및 최신 CPU 아키텍처가 더 효율적으로 실행된다는 것을 발견할 수 있습니다.VM이 과도하게 프로비저닝되어 비용이 낭비되고 있음을 의미할 수 있습니다.Compute Engine에서 선점형 VM 인스턴스를 사용하여 조사할 수 있습니다.생각보다 로드 밸런서가 많이 필요하지 않았거나 이동 중에 데이터베이스를 정리하여 사용하지 않는 공간이 생겼을 수 있습니다.클라우드에서 비용을 절감하고 운영 비용을 낮추는 방법을 찾는 것은 그 자체로 비용을 지불하는 정규직이 될 수 있습니다.Google Cloud에는 클라우드 가격을 이해하는 데 도움이 되는 다양한 비용 관리 도구가 있습니다.자동화클라우드에서 컴퓨팅 워크로드를 올바르게 자동화하면 비용이 발생할 수 있습니다.비용 절감 및 효율성 이점Deployment Manager는 간단한 템플릿을 사용하여클라우드 리소스를 만들고 관리할 수 있도록 설계된 Google Cloud 제품스크립팅 withgcloud은 자체 자동화 작성을 선호하는 경우 옵션입니다.자동화와 함께재정적 이점이 있지만 다른 이점은 다음과 같습니다.- 오류율을 낮추기 위한 표준 및 반복 가능한 프로세스- 감사 가능한 추적 규정 준수 및 거버넌스- 애플리케이션 작동 방식, 중단 방식 및 수정 방법에 대한 이해 증가자동화는 알림 및 사람의 반응 시간에 대한 의존도를 낮추어 가동 시간을 늘리고, 워크플로우를 문서화하여 기술적 부채를 낮추고, 엔지니어가 조명을 켜두는 데 덜 집중하고 더 나은 제품, 도구 및 서비스를 구축하는 데 더 집중할 수 있도록 합니다.이러한 개념은 사이트 안정성 엔지니어링(SRE)의 핵심입니다.Google Cloud는 사이트 안정성 엔지니어링에 관한 무료로 읽을 수 있는 온라인 도서와 실제 사례 및 사례 연구를 제공하는 SRE 워크북을 제공합니다.인프라와 코드 분리애플리케이션이 커짐에 따라 여러 번 서비스를 분리합니다.연결된 서비스를 분리하고 독립적으로 확장하는 방법을 알면 애플리케이션의 가용성과 안정성이 향상됩니다.이 프로세스에는 일반적으로 세 단계가 있습니다.- 코드형 인프라(IaC)를 모든 곳에 구현합니다.IaC 및 구성 관리 프로세스를 구현하면 전체 인프라의 프로비저닝 및 구성을 위한 추적 가능하고 감사 가능하며 재현 가능한 구성 요소를 얻을 수 있습니다.- 기존 서비스를 마이크로 서비스로 분리합니다.Pub/Sub와 같은 메시지 지향 미들웨어를 사용하여 모든 마이크로서비스가 자체 장애 도메인이 되도록 허용- 서비스로서의 인프라에서 서비스로서의 플랫폼으로 서비스 마이그레이션 시작 , 또는 심지어 서비스 또는 서버리스 서비스로 작동합니다."모놀리식 코드 및 인프라"에서 "IaaS 스펙트럼에서 효율적으로 실행되는 분리된 마이크로서비스"로의 여정은 시간, 노력 및 헌신이 필요한 가치 있는 목표입니다.성능 튜닝성능 조정을 통해 시스템 활용도와 응답 시간을 크게 높일 수 있습니다.모든 워크로드에는 소프트웨어 구성 파일에서 커널 플래그 조정에 이르기까지 성능 조정을 위한 서로 다른 방법이 있습니다.LAMP 애플리케이션의 경우 성능 조정은 일반적으로 세 가지 범주에 속합니다.- 클라우드, 네트워크 및 운영 체제 조정: - Google Cloud 네트워크 성능 향상을 위한 5단계는 Google Cloud Networking을 최대한 활용하는 방법을 이해하는 데 도움이 됩니다. - Google Cloud의 네트워크 성능을 위한 TCP 최적화는 특정 TCP 지연 시간 요구 사항이 있는 경우 도움이 될 수 있습니다. - 영구 디스크 및 로컬 SSD 성능을 최적화하면 IOPS가 많은 워크로드의 설계에 대해 배울 수 있습니다. - Compute Engine의 성능을 개선하면 다른 Google Cloud API 및 서비스와 상호작용할 때 API 애플리케이션 성능에 도움이 될 수 있습니다. - 웹 서버 조정: - Apache 성능 조정 및 NGINX 성능 조정 또는 "웹 서버 성능 조정"에 대한 일반 Google 검색이 올바른 방향으로 안내합니다. 데이터베이스 조정: ## 무엇 향후 계획 - Compute Engine에서 LAMP 설정 - LAMP 스택 배포 - Compute Engine 또는 GKE에서 컴퓨팅 워크로드를 실행하는 방법 자세히 알아보기 GKE를 Cloud SQL에 연결 VM으로 마이그레이션 및 컨테이너로 마이그레이션 살펴보기 App Engine을 사용하여 완전 관리형 서버리스 플랫폼에서 확장성이 뛰어난 애플리케이션 빌드 Google Cloud의 데이터베이스 옵션 자세히 알아보기 Google Cloud에 대한 참조 아키텍처, 다이어그램, 가이드, 권장사항을 살펴보세요. 클라우드 아키텍처 센터를 살펴보십시오.