기존 런타임 지원

기존 런타임에는 더 이상 오픈소스 커뮤니티에서 유지 보수하지 않는 1세대 언어 버전이 포함됩니다. 많은 App Engine 고객이 여전히 이러한 1세대 언어 버전을 사용하므로 Google에서는 App Engine 표준 환경에서 다음과 같은 기존 런타임에 대한 장기적 지원을 제공하고 있습니다.

Google은 기존 런타임을 지원 종료 단계로 전환합니다. 자세한 내용은 지원 일정을 참조하세요.

Google의 약속

기존 런타임 지원은 2024년 1월 30일종료되었습니다.

기존 런타임은 다음과 같이 변경되었습니다.

  • 기존 런타임의 구성요소가 최대한 오픈소스 상태로 돌아왔습니다. 앱이 데이터 센터에서 안전하게 실행되도록 일부 런타임을 제한하고 수정해야 했습니다. Google 데이터 센터에서 런타임을 실행하는 방법을 변경하면 이러한 런타임에 안전하고 확장 가능한 환경을 장기적으로 제공할 수 있습니다.

  • 패키지 저장소, 관용적 구성요소 빌드, 애셋 저장소를 지원하는 전체 빌드 시스템을 추가했습니다.

보안 업데이트

커뮤니티에서 언어 버전 관리가 중단되면 공개적으로 사용 가능한 수정이 없는 취약점에 앱이 노출될 수 있습니다. 따라서 일부 App Engine 런타임에서 앱을 계속 실행하는 것은 커뮤니티 지원 언어를 사용하는 런타임으로 업그레이드하는 것보다 위험합니다.

앱에서 사용하는 모든 API를 수정하는 것은 불가능합니다. 언어의 최신 버전 라이브러리에서만 수정사항을 사용할 수 있습니다.

App Engine 번들 서비스 지원

Python 2.7, 자바 8, Go 1.11 및 PHP 5.5 런타임은 Blobstore, Memcache, 태스크 큐와 같은 번들 App Engine 서비스 및 API를 제공합니다.

일부 2세대 런타임에서 대부분의 번들 서비스와 API에 계속 액세스할 수 있습니다.

앱은 언어 관용구 라이브러리를 통해 번들 서비스 API를 호출하고, 기존 런타임과 동일한 기능에 액세스할 수 있습니다. 더 많은 유연성을 제공하기 위해 최신 런타임에서는 번들 서비스가 제공되므로 번들되지 않은 서비스로 마이그레이션하거나 기존의 App Engine 번들 서비스를 계속 사용할 수 있습니다.

파이프라인에 지원 중단이 있으면 Google에서 표준 지원 중단 정책을 따르고 대안을 제안합니다. 대부분의 앱에는 코드 변경이나 재배포가 필요하지 않습니다.

각 런타임의 현재 상태

Python 2.7

Python 2.7 런타임은 2012년 2월 27일에 출시되었습니다. 이 런타임의 대규모 섹션에서 수정사항과 제한사항을 삭제했지만 빌드 프로세스, 요청 경로, 패키지 가용성을 표준화하기 위해 추가 업데이트를 진행할 예정입니다. 이러한 런타임 변경으로 Google Cloud는 Python 커뮤니티에서 Python 2.7의 공식 지원을 종료하는 2020년 1월 1일 Python 2.7 런타임을 지원할 수 있습니다.

Python 2.7 런타임의 변경사항과 2021년 가을 발표에서의 변경사항은 대부분의 번들 App Engine 서비스에 Python 3을 다시 적용합니다. 이러한 서비스를 사용하면 지원 종료 전에 더욱 쉽게 Python 3으로 마이그레이션하거나 번들 서비스를 동일한 Google Cloud 서비스로 대체할 수 있습니다. 마이그레이션은 다음 가이드를 참조하세요.

자바 8

자바 8 런타임은 2017년 6월 28일에 출시되었습니다. 이 런타임은 App Engine에서 약간 수정되었으며 자바 패키지 가져오기에 대한 광범위한 지원을 제공합니다.

이 런타임은 다음과 같이 업데이트됩니다.

  • 자바 런타임을 오픈소스 상태로 되돌립니다.

  • 요청 경로를 정규화합니다.

  • Jetty 9.4로 업그레이드합니다.

Google Cloud는 이러한 변경 사항을 통해 향후 자바 8 런타임을 지원할 수 있습니다.

자바 8 런타임의 변경 사항에 따라 번들 App Engine 서비스를 Google Cloud 서비스로 대체하고 지원 종료 전에 자바 11/17로 마이그레이션할 수 있습니다. 자바 8에서 자바 11 이상으로 마이그레이션에 대한 정보를 확인하세요.

앱 코드를 변경하지 않고 자바 6 및 자바 7 앱을 자바 8 런타임으로 자동 마이그레이션할 수 있었습니다. 하지만 자바 11은 이전 버전과의 호환성이 없어 자바 11 런타임으로 앱을 자동 마이그레이션할 수 없습니다. 자바 11로 마이그레이션할 때 자바 6, 자바 7, 자바 8 앱을 크게 변경해야 할 수 있으므로 이러한 앱을 자바 8 런타임에서 계속 실행할 수 있습니다.

Go 1.11

Google에서는 2019년 3월 20일에 Go 1.11 런타임을 출시했으며 Go 1.6-1.9 앱을 Go 1.11 런타임으로 마이그레이션하도록 권장했습니다. Go 1.11 런타임은 Go 1.6에서 Go 1.11로 빌드된 앱의 장기적인 상태입니다.

Go 1.11에서 앱이 실행되면 번들 App Engine 서비스 및 API를 Google Cloud 서비스로 대체하고 지원 종료 전에 지원되는 Go 버전으로 업그레이드할 수 있습니다. 마이그레이션에 대한 자세한 내용은 App Engine 앱을 Go 1.12로 마이그레이션을 참조하세요.

PHP 5.5

PHP 5.5 런타임은 2013년 5월 16일에 출시되었습니다. 이 런타임은 오픈소스 버전에서 많은 기능을 삭제했고 커스텀 샌드박스 내에서 앱을 실행했습니다.

현재 이 런타임을 오픈소스 상태로 되돌리고 샌드박스를 현대화하고 있습니다. 요청 경로를 정상화하고 성능을 최적화하기 위한 추가 업데이트를 진행할 예정입니다. 이러한 변경 사항을 통해 조만간 PHP 5.5 런타임을 지원할 수 있습니다.

PHP 5.5 런타임의 변경 사항에 따라 번들 App Engine 서비스를 Google Cloud 서비스로 대체하고 지원 종료 전에 PHP 7/8로 마이그레이션할 수 있습니다. PHP 5.5에서 PHP 7/8로 앱 마이그레이션에 대한 정보를 확인하세요.

지원 종료 시점에 도달한 기존 런타임에 대해 배포 사용 설정

App Engine 런타임 수명 주기 정책에 따라 지원 종료에 도달한 런타임을 사용하여 애플리케이션을 더 이상 배포할 수 없습니다. 런타임에 영향을 미치는 주요 날짜는 지원 일정을 참조하세요.

조직에서 지원 종료 시점에 도달한 기존 런타임에 대해 배포를 다시 사용 설정하려면 constraints/appengine.runtimeDeploymentExemption과 함께 새 조직 정책을 정의할 수 있습니다. 배포를 다시 사용 설정하기 위한 이 조직 정책은 정식 버전으로 제공됩니다. 지원 종료일 이후에도 기존 런타임을 계속 사용하는 것은 실험용이며 'GA 이전 제공 서비스 약관'이 적용됩니다.

조직 정책을 만들거나 변경하려면 계정에 roles/orgpolicy.policyAdmin 역할이 있어야 합니다.

정책을 사용하여 배포 다시 사용 설정

배포를 사용 설정하는 정책을 만들려면 지정된 조직 내에서 지정된 환경에 대해 지원 종료에 도달한 Google Cloud CLI 또는 Google Cloud 콘솔을 사용합니다.

콘솔

  1. Google Cloud 콘솔의 조직 정책 페이지로 이동합니다.
    조직 정책으로 이동

    조직 정책 페이지에 사용 가능한 조직 정책 제약조건의 목록이 표시됩니다.

  2. 새 정책을 추가할 프로젝트, 폴더 또는 조직을 선택합니다.

  3. 목록에서 런타임 배포 예외(App Engine) 정책을 찾습니다. 목록 상단의 필터 필드를 사용할 수 있습니다.

  4. 정책 이름을 클릭합니다. 또는 컨텍스트 메뉴에서 정책 수정을 선택할 수 있습니다.

  5. 정책 관리를 클릭합니다.

  6. 적용 대상에서 맞춤설정을 선택합니다.

  7. 정책 시행에서 바꾸기를 선택합니다.

  8. 규칙에서 규칙 추가를 클릭합니다.

  9. 정책 값으로 커스텀을 선택합니다.

  10. 정책 유형으로 허용을 선택합니다.

  11. 커스텀 값에서 조직에 적용할 런타임을 지정합니다. 지원되는 값은 다음과 같습니다.

    • python27: Python 2.7을 사용하는 애플리케이션 허용
    • java8: Java 8을 사용하는 애플리케이션 허용
    • php55: PHP 5.5를 사용하는 애플리케이션 허용
    • 여러 런타임을 명시적으로 허용하려면 python27, java8, php55를 함께 지정합니다. 기본적으로 정책이 설정되지 않은 경우 런타임이 허용되지 않습니다.
  12. 완료를 클릭합니다.

  13. 저장을 클릭합니다.

변경사항이 적용되면 이 정책은 지정된 환경에서 지원 종료에 도달한 App Engine 런타임 배포를 사용 설정합니다.

gcloud

다음 명령어를 실행합니다.

gcloud resource-manager org-policies \
allow appengine.runtimeDeploymentExemption \
--organization=ORGANIZATION_NUMBER RUNTIME_ID

다음과 같이 바꿉니다.

  • ORGANIZATION_NUMBER을 정책을 적용하려는 조직의 번호로 바꿉니다.
  • 배포가 허용된 런타임이 포함된 RUNTIME_ID로 바꿉니다.
  • RUNTIME_ID를 다음 런타임 ID 중 하나로 바꿉니다.

    • python27: Python 2.7을 사용하는 애플리케이션 허용
    • java8: Java 8을 사용하는 애플리케이션 허용
    • php55: PHP 5.5를 사용하는 애플리케이션 허용
    • 여러 언어 런타임을 명시적으로 허용하려면 python27, java8, php55를 함께 지정합니다. 기본적으로 정책이 설정되지 않은 경우 언어 런타임은 허용되지 않습니다.