AWS から Google Cloud への移行: Amazon EKS から GKE への移行

Last reviewed 2023-09-30 UTC

Google Cloud には、Amazon Elastic Kubernetes Service(Amazon EKS)から Google Kubernetes Engine(GKE)に移行するためのツール、プロダクト、ガイダンス、プロフェッショナル サービスが用意されています。このドキュメントは、Amazon EKS から GKE への移行計画の設計、実施、検証に役立ちます。このドキュメントでは、移行の可能性を評価し、移行の概要を検討する際のガイダンスも提供しています。Amazon EKS には、Amazon Elastic Compute Cloud(Amazon EC2)で実行する以外に、Amazon EKS on AWS 出力や Amazon EKS など、他のデプロイ オプションがあります。このドキュメントでは、Amazon EKS on EC2 を中心に説明します。

このドキュメントは、AWS から Google Cloud への移行に関する複数のパートからなるシリーズの一部です。このシリーズには、次のドキュメントが含まれています。

このシリーズは、次のドキュメントを読み、その内容を理解していることを前提としています。

次の図は、移行の過程を示しています。移行シナリオの場合、デプロイ フェーズは移行プロセスの実行と同じです。

4 フェーズの移行パス

Amazon EKS から GKE には、一連のイテレーションで移行できます。たとえば、最初に一部のワークロードを移行し、後に他のものを移行できます。個別の移行イテレーションごとに、以下の一般的な移行フレームワークのフェーズに沿って操作します。

  1. ワークロードとデータを評価して検出します。
  2. Google Cloud で基盤を計画し、構築します。
  3. ワークロードとデータを Google Cloud に移行します。
  4. Google Cloud 環境を最適化します。

このフレームワークのフェーズの詳細については、Google Cloud への移行: スタートガイドをご覧ください。

移行元の環境を評価する

評価フェーズでは、Amazon EKS から GKE に移行するリソースの要件と依存関係を決定します。

評価フェーズは、次のタスクで構成されます。

  1. ワークロードとデータの包括的なインベントリを構築する。
  2. プロパティと依存関係に応じてワークロードとデータを分類する。
  3. チームを Google Cloud でトレーニングして教育する。
  4. Google Cloud 上でテストと概念実証を作成する。
  5. ターゲット環境の総所有コスト(TCO)を計算する。
  6. 移行するワークロードの順序と優先度を決定する。

評価フェーズとこれらのタスクの詳細については、Google Cloud への移行: ワークロードの評価と検出をご覧ください。以下のセクションは、このドキュメントの情報に基づいています。

インベントリを構築する

移行の対象範囲を設定するには、Amazon EKS クラスタのインベントリと、それらのクラスタにデプロイされたワークロードのインベントリの 2 つのインベントリを構築します。これらのインベントリを構築したら、クラスタにワークロードをデプロイするためのデプロイ プロセスと運用プロセスを評価します。

Amazon EKS クラスタとワークロードのインベントリを構築する

Amazon EKS クラスタのインベントリを構築するには、Migration Center を使用することをおすすめします。現在の環境から Google Cloud へのエンドツーエンドのクラウド移行を加速できます。Migration Center を使用すると、Amazon EKS とその他の AWS リソースからデータをインポートできます。Migration Center は、関連性が高い Google Cloud サービスを移行先として推奨しています。

Amazon EKS クラスタのインベントリを構築する際に、移行の一環として一部のクラスタを廃止しなければならない場合があります。移行計画には、こうしたリソースの処分が含まれるようにしてください。

Migration Center が提供するデータでは、対象項目を完全には取得できない場合があります。その場合、そのデータを、AWS API、AWS デベロッパー ツール、AWS コマンドライン インターフェースに基づいて作成した他のデータ収集メカニズムの結果と統合できます。

Migration Center から取得するデータに加えて、移行する各 Amazon EKS クラスタについて次のデータポイントを考慮します。

  • 「Kubernetes から GKE への移行」のインベントリを構築するセクションのガイダンスに従ってください。このドキュメントでは、Kubernetes クラスタとワークロードのインベントリを構築する方法について説明します。また、Amazon EKS 環境のインベントリの構築にも適用できます。
  • 各 Amazon EKS クラスタについて、次のような Amazon EKS 固有の特徴と機能を検討します。
    • 限定公開クラスタ
    • クラスタ エンドポイントのアクセス制御
    • シークレットの暗号化
    • マネージド ノードグループとセルフマネージド ノード
    • Amazon EKS リソースのタグ
    • EKS での Amazon カスタム AMI
    • Amazon EKS Fargate の使用
    • Amazon EKS マネージド Prometheus の使用
    • OpenID Connect 認証構成
  • Amazon EKS クラスタに対する認証方法と、Amazon EKS の AWS Identity and Access Management(IAM)の構成方法を評価します。
  • Amazon EKS クラスタのネットワーク構成を評価します。
  • コンプライアンスと規制要件を評価し、これらの要件を満たしているかどうかを評価します。

デプロイと運用のプロセスを評価する

Amazon EKS クラスタとワークロードのインベントリを構築したら、デプロイ プロセスと運用プロセスを評価することをおすすめします。デプロイ プロセスと運用プロセスの仕組みを明確に理解することが非常に重要です。これらのプロセスは、本番環境とそこで実行されるワークロードを準備して維持するプラクティスの基本となる部分です。

デプロイ プロセスと運用プロセスで、ワークロードが機能するために必要なアーティファクトをビルドする場合があります。したがって、各アーティファクト タイプに関する情報を収集する必要があります。たとえば、アーティファクトには、オペレーティング システム パッケージ、アプリケーションのデプロイ パッケージ、オペレーティング システム イメージ、コンテナ イメージなどがあります。

アーティファクト タイプに加えて、次のタスクの実施方法を検討してください。

  • Amazon EKS にデプロイするアーティファクトを生成する。Amazon EKS にワークロードをデプロイする場合、コンテナ イメージなどのデプロイ可能なアーティファクトが生成される場合があります。これらのアーティファクトの生成方法に関する情報を収集すると、生成されたアーティファクトが Google Cloud へのデプロイに適していることを確認できます。たとえば、AWS のアーティファクト レジストリに保存するアーティファクトを生成する場合は、Google Cloud 環境でアーティファクトを利用可能にする必要があります。これは、次のような戦略を採用することで実行できます。
    • 環境間の通信チャネルを確立する: 移行元の環境のアーティファクトが移行先の Google Cloud 環境からアクセスできるようにします。これにより、最終的に Artifact Registry を使用する準備が整います。
    • アーティファクトのビルドプロセスのリファクタリング: 移行元の環境と移行先の環境の両方にアーティファクトを保存できるように、移行元の環境のマイナー リファクタリングを完了します。このアプローチでは、ターゲットの Google Cloud 環境にアーティファクトのビルドプロセスを実装する前に、アーティファクト リポジトリなどのインフラストラクチャを構築することで、移行をサポートします。このアプローチは直接実装することも、最初に通信チャネルを確立する以前のアプローチをベースにして実装することもできます。
  • Amazon EKS クラスタにアーティファクトをデプロイします。デプロイ可能なアーティファクトを生成した後、それらを Amazon EKS にデプロイする可能性があります。各デプロイ プロセスを評価することをおすすめします。この評価により、デプロイ プロセスに Google Cloud との互換性があるかどうかを確認できます。また、最終的にプロセスをリファクタリングするために必要な作業についても把握できます。たとえば、デプロイ プロセスが Amazon EKS でのみ機能する場合は、Google Cloud 環境をターゲットとするようにリファクタリングが必要になることがあります。
  • ランタイム構成を挿入する。特定の Amazon EKS クラスタ、ランタイム環境、ワークロード デプロイのランタイム構成を挿入していることがあります。この構成では、環境変数と、シークレット、認証情報、キーなどの他の構成値が初期化される場合があります。ランタイム構成の挿入プロセスが Google Cloud で機能するように、Amazon EKS で実行されるワークロードの設定を評価することをおすすめします。

デプロイ プロセスと運用プロセスを評価したら、これらのプロセスが Google Cloud への移行にどのように役立つか、また移行の対象範囲を狭めてリスクを軽減する方法を評価することもおすすめします。

評価を完了する

Amazon EKS 環境からインベントリを構築したら、Google Cloud への移行: ワークロードの評価と検出で説明されている評価フェーズの残りの作業を実施します。

基盤の計画と構築

計画と構築フェーズでは、インフラストラクチャをプロビジョニングして構成し、以下のことを行います。

  • Google Cloud 環境でワークロードをサポートします。
  • AWS 環境と Google Cloud 環境を接続して、移行を完了します。

Google Cloud における基盤を構築する

計画と構築のフェーズは、次のタスクで構成されます。

  1. リソース階層を構築する。
  2. Google Cloud の Identity and Access Management(IAM)を構成する。
  3. お支払い情報を設定する。
  4. ネットワーク接続を設定する。
  5. セキュリティを強化する。
  6. ロギング、モニタリング、アラートを設定する。

これらの各タスクの詳細については、「Google Cloud へのコンテナの移行: Kubernetes から GKE への移行」の基盤の計画と構築セクションをご覧ください。

データの移行とワークロードのデプロイ

デプロイ フェーズでは、次のことを実施します。

  1. GKE 環境をプロビジョニングして構成する。
  2. GKE クラスタを構成する。
  3. 移行元の環境から Google Cloud にデータを移行する。
  4. GKE 環境にワークロードをデプロイする。
  5. ワークロードを検証する。
  6. GKE で実行されているワークロードを公開する。
  7. 移行元の環境から GKE 環境にトラフィックをシフトする。
  8. 移行元の環境を廃止する。

これらの各タスクを行う方法については、「Google Cloud へのコンテナの移行: Kubernetes から GKE への移行」のワークロードをデプロイするセクションをご覧ください。以降のセクションでは、このドキュメントに記載されている検討事項をまとめています。

データを移行する

「Google Cloud へのコンテナの移行: Kubernetes から GKE への移行」のデータを移行するセクションには、一般的な Kubernetes 環境から GKE へのデータ移行に関する情報が記載されています。このセクションの推奨事項は、Amazon EKS から GKE へのデータ移行に適用されます。移行を計画するには、リンク先のドキュメントに記載されている一般的な環境情報を、Amazon EKS から GKE へのデータ移行に固有の次のセクションと組み合わせてください。

AWS は、Amazon EKS 向けにいくつかのデータ ストレージ オプションを提供しています。このドキュメントでは、次のデータ移行シナリオを中心に説明します。

  • Amazon EBS ボリュームから GKE の PersistentVolume リソースにデータを移行する。
  • Amazon EBS ボリュームから Amazon S3 または Cloud Storage にデータをコピーしてから、GKE の PersistentVolume リソースにデータを移行する。

Amazon EBS ボリュームから GKE PersistentVolume にデータを移行する

Amazon EBS ボリュームから GKE の PersistentVolume リソースにデータを移行するには、次のいずれかの方法を使用します。

  • Amazon EBS ボリュームから Compute Engine 永続ディスクにデータを直接コピーする。
    1. Amazon EC2 インスタンスをプロビジョニングし、移行するデータを含む Amazon EBS ボリュームをアタッチする。
    2. 移行するデータを保存するのに十分な容量がある空の永続ディスクを使用して、Compute Engine インスタンスをプロビジョニングする。
    3. rsync などのデータ同期ツールを実行して、Amazon EBS ボリュームから Compute Engine 永続ディスクにデータをコピーする。
    4. Compute Engine インスタンスから永続ディスクを切断する。
    5. Compute Engine インスタンスを廃止する。
    6. 永続ディスクを GKE PersistentVolume リソースとして構成する。
  • Amazon EC2 インスタンスと Amazon EBS ボリュームを Compute Engine に移行する。
    1. Amazon EC2 インスタンスをプロビジョニングし、移行するデータを含む Amazon EBS ボリュームをアタッチする。
    2. Migrate for Virtual Machines を使用して、Amazon EC2 インスタンスと Amazon EBS ボリュームを Compute Engine に移行する。
    3. Compute Engine インスタンスから永続ディスクを切断する。
    4. Compute Engine インスタンスを廃止する。
    5. 永続ディスクを GKE PersistentVolume リソースとして構成する。

Amazon EC2 インスタンスの Compute Engine への移行の詳細については、AWS から Google Cloud への移行: Amazon EC2 から Compute Engine への移行をご覧ください。

Compute Engine 永続ディスクを GKE PersistentVolume リソースとして使用する方法については、既存の永続ディスクを PersistentVolume として使用するをご覧ください。

Amazon EBS ボリュームから一時メディアにデータをコピーして、GKE PersistentVolume に移行する

Amazon EBS ボリュームから GKE の PersistentVolume リソースに直接移行するのではなく、オブジェクト ストアなどの一時メディアを使用できます。

  1. Amazon EBS ボリュームから Amazon S3 バケットや Cloud Storage バケットなどの一時メディアにデータをアップロードします。
  2. 一時メディアから GKE PersistentVolume リソースにデータをダウンロードします。

特定のシナリオでは、複数のメディアを使用することで、ネットワークとセキュリティ構成に基づいてデータ転送を簡素化できます。たとえば、最初にデータを S3 バケットにアップロードし、次に S3 バケットから Cloud Storage バケットにコピーし、最後に永続ボリュームにデータをダウンロードできます。どのアプローチを選択するかにかかわらず、重要な検討事項を考慮して、スムーズに移行できるように、AWS から Google Cloud への移行: Amazon S3 から Cloud Storage への移行を確認することをおすすめします。

移行方法を選択する

最適な移行オプションは、次の検討事項のような特定のニーズと要件によって異なります。

  • 移行する必要があるデータの量。
    • 移行するデータが少量の場合(データファイルが少ないなど)は、rsync などのツールを使用してデータを Compute Engine 永続ディスクに直接コピーすることを検討してください。このオプションは比較的手早く行えますが、大量のデータには適さない場合があります。
    • 移行するデータが大量にある場合は、Migrate to Virtual Machines を使用してデータを Compute Engine に移行することを検討してください。このオプションは、データを直接コピーするよりも複雑ですが、信頼性とスケーラビリティに優れています。
  • 移行する必要があるデータの種類
  • 移行元の環境と移行先の環境間のネットワーク接続
    • AWS EC2 インスタンスと Compute Engine インスタンスの間で直接接続を確立できない場合は、Amazon S3 または Cloud Storage を使用してデータを一時的に保存し、Compute Engine に移行することをご検討ください。このオプションを使用すると、EC2 インスタンスと Compute Engine インスタンスを同時に実行し続ける必要がないため、費用を抑えられる可能性があります。
  • 移行タイムライン。
    • ネットワーク帯域幅が限られているかデータ量が大きく、タイムラインが厳しくない場合は、Transfer Appliance を使用してデータを AWS から Google Cloud へ移行することも検討できます。

どのオプションを選択する場合でも、移行を開始する前に移行をテストすることが重要です。テストにより、潜在的な問題を特定し、移行が正常に完了することを確認できます。

移行後の環境を最適化する

すべての移行フェーズを完了すると、移行は完了したものとみなされます。ただし、場合によっては GKE 環境をさらに最適化する必要があります。詳細については、Kubernetes から GKE への移行: 環境の最適化をご覧ください。

次のステップ