すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:x86 プラットフォームから倚天 ECS インスタンスにアプリケーションを移行する

最終更新日:May 17, 2025

Arm ベースの倚天 710 CPU アーキテクチャを使用する倚天 Elastic Compute Service (ECS) インスタンスは、コンピューティング、ストレージ、およびネットワークのパフォーマンスを大幅に向上させます。より良いクラウドサービスエクスペリエンスを得るために、x86 プラットフォームから倚天 ECS インスタンスにアプリケーションを移行できます。このトピックでは、倚天 ECS インスタンスへのアプリケーション移行の手順、シナリオ、および使用方法について説明します。

背景情報

倚天 ECS インスタンス

倚天 ECS インスタンスには、Arm ベースの倚天 710 CPU アーキテクチャを使用する ECS インスタンスが含まれます。倚天 ECS インスタンスは、チップ上で高速パスアクセラレーションを実行して、ストレージパフォーマンス、ネットワークパフォーマンス、およびコンピューティングの安定性を大幅に向上させます。インスタンスは、クラウドネイティブアプリケーション、ビデオのエンコードとデコード、ハイパフォーマンスコンピューティング、CPU ベースの機械学習、ゲームサービスなど、さまざまなシナリオに適しています。

説明

g8y、c8y、および r8y インスタンスファミリーは、Arm ベースの倚天 710 CPU アーキテクチャを使用します。コンピューティング、ストレージ、ネットワークメトリックなどのインスタンスタイプとメトリックについては、以下のトピックを参照してください。

移行の必要性

倚天 ECS インスタンスは、x86 アーキテクチャとは異なる Arm アーキテクチャを使用します。 x86 プラットフォーム用に開発されたソースコードを持つプログラムを倚天 ECS インスタンスにデプロイする前に、パフォーマンスを向上させるために、プログラムを再コンパイルし、必要に応じてコードを最適化する必要があります。

移行プロセス

x86 プラットフォームから倚天 ECS インスタンスへのアプリケーションの移行プロセスには、次の主要な手順が含まれます。

  1. 移行前の準備

    移行するインスタンスのオペレーティングシステムの計画、基本ソフトウェアの選択、ハードウェアリソースの構成を行います。コードに x86 関連のアセンブリ命令またはハードウェアと機能の依存関係が含まれているかどうか、およびサードパーティライブラリが Arm バージョンを提供しているかどうかを確認します。また、互換性テストを実行する必要もあります。

  2. ソフトウェアのコンパイルと移行

    プログラミング言語に基づいてコンパイラとソフトウェアのバージョンをインストールし、コードを再コンパイルします。

移行シナリオ

ソフトウェアのコンパイルと移行のシナリオには、次の種類のソフトウェアが含まれます。

  • ソースコードソフトウェア: 開発者によって開発された、またはオープンソースソフトウェアに基づいて拡張されたソフトウェア。ほとんどの社内ソフトウェアでは、次の種類のプログラミング言語が使用されます。

    • コンパイル言語: 通常、C++ および Go が含まれます。これらの言語は、ソースコードをアーキテクチャ固有のバイナリファイルにコンパイルします。移行後、ファイルを再コンパイルする必要があります。詳細については、「Make および CMake を使用してファイルをビルドする」および「C または C++ コードを移行する」をご参照ください。

    • インタープリタ言語: 通常、Java および Python が含まれます。これらの言語のソースコードからコンパイルされたファイルはアーキテクチャに依存せず、理論的にはアーキテクチャ間で実行できます。 Java アプリケーションが Java Native Interface (JNI) を使用して C で開発されたダイナミックリンクライブラリを呼び出す場合など、インタープリタ言語でネイティブライブラリが導入されている場合、アプリケーションはアーキテクチャに関連しており、再コンパイルする必要があります。詳細については、「Java コードを移行する」および「Python を移行する」をご参照ください。

  • オープンソースソフトウェア: 変更なしでオープンソースコミュニティからダウンロードされた、またはオペレーティングシステムに付属しているソフトウェア。ほとんどのオープンソースソフトウェアは、Arm ベースの倚天プラットフォームでサポートされています。オペレーティングシステムで提供されているオープンソースソフトウェアを直接使用できます。詳細については、「オープンソースソフトウェアを移行する」をご参照ください。

手順

x86 プラットフォームから倚天 ECS インスタンスにソフトウェアを移行する前に、インスタンス、オペレーティングシステム、基本ソフトウェアなどの環境リソースを準備します。次の手順を実行します。

手順 1: 倚天 ECS インスタンスを作成する

詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。次の表で説明されているパラメーターに注意してください。

パラメーター

説明

インスタンスファミリ

  • g8y (推奨)

  • c8y

  • r8y

イメージ

  • Alibaba Cloud Linux

    • Alibaba Cloud Linux 3.2104 LTS 64 ビット for Arm (推奨)

    • Alibaba Cloud Linux 3.2104 LTS 64 ビット for Arm (MLPS 2.0 レベル 3)

  • Anolis OS

    • Anolis 8.8 RHCK 64 ビット for Arm

    • Anolis 8.8 ANCK 64 ビット for Arm (MLPS 2.0 レベル 3)

    • Anolis 8.8 ANCK 64 ビット for Arm

    • Anolis 8.6 RHCK 64 ビット for Arm

    • Anolis 8.6 ANCK 64 ビット for Arm

    • Anolis 8.4 RHCK 64 ビット for Arm

    • Anolis 8.4 ANCK 64 ビット for Arm

    • Anolis 7.9 RHCK 64 ビット for Arm

    • Anolis 7.9 ANCK 64 ビット for Arm

  • Ubuntu

    • Ubuntu 22.04 64 ビット for Arm

    • Ubuntu 20.04 64 ビット for Arm

    • Ubuntu 18.04 64 ビット for Arm

  • CentOS 7.9 64 ビット for Arm

    説明

    CentOS 7 シリーズはサポート終了 (EOL) に達しました。このバージョンを使用しないことをお勧めします。

  • Debian

    • Debian 11.5 64 ビット for Arm

    • Debian 11.2 64 ビット for Arm

    • Debian 10.13 64 ビット for Arm

      説明

      Debian 10.13 は EOL に達しました。このバージョンを使用しないことをお勧めします。

手順 2: ソフトウェアを移行する

移行されるソフトウェアには、社内ソフトウェアとオープンソースソフトウェアが含まれます。次の表に、コンパイラ、ランタイムライブラリ、およびアプリケーションの推奨バージョンを示します。ビジネス要件に基づいてソフトウェアをインストールして使用してください。

カテゴリ

ソフトウェア

推奨バージョン

説明

コンパイラ

GCC

GCC 10.2.1

パフォーマンスを大幅に向上させるために、GCC 10 以降を使用することをお勧めします。

LLVM

LLVM 13/Clang 13

  • Clang 13 を使用する場合、GNU C Library (glibc) のバージョンは 2.17 以降である必要があります。

  • Clang 13 を使用する場合、使用する C++ ランタイムライブラリは libstdc++ (GCC 6 以降、または GCC 9 以降) である必要があります。

  • Clang 13 は、LLVM 13 および GCC-C++ Package Manager (RPM) に依存します。

Glibc

glibc 2.32

なし。

JDK

Dragonwell 11 または OpenJDK 11

パフォーマンスとサポートを向上させるために、Dragonwell を使用することをお勧めします。

Golang

Go 1.18+

Go 用 SDK は、Arm アーキテクチャ向けに最適化されています。次のバージョンを使用することをお勧めします。

  • Go 1.16: Arm アトミック操作とデータコピー操作のパフォーマンスが最適化されています。

  • Go 1.18: パラメーターは、スタックではなくレジスタを使用して渡されます。このバージョンは、Arm アーキテクチャのパフォーマンスを 10% 向上させます。

Python

3.8

Python 2.7 は 2020 年 1 月 1 日に EOL に達しました。Python 3.6 は 2022 年 12 月 23 日に EOL に達しました。Python 3.7 以降を使用することをお勧めします。

PHP

7.4+

コミュニティでサポートされています。

コンテナ

Kubernetes

Kubernetes 1.22Containerd 1.5.0+

コミュニティでサポートされています。

Web アプリケーション

NGINX

推奨オペレーティングシステムに付属のバージョン

オペレーティングシステムプロバイダーによって保守およびサポートされています。

HTTPd

推奨オペレーティングシステムに付属のバージョン

オペレーティングシステムプロバイダーによって保守およびサポートされています。

NodeJS

推奨オペレーティングシステムに付属のバージョン

オペレーティングシステムプロバイダーによって保守およびサポートされています。

データベース

MySQL

推奨オペレーティングシステムに付属のバージョン

オペレーティングシステムプロバイダーによって保守およびサポートされています。

Redis

推奨オペレーティングシステムに付属のバージョン

オペレーティングシステムプロバイダーによって保守およびサポートされています。

ビッグデータ

Hadoop

Hadoop 3.3.1

コミュニティでサポートされています。

Spark

Spark 3.2

コミュニティでサポートされています。

Hive

Hive 3.1

コミュニティでサポートされています。

Elasticsearch

ES 7.12

コミュニティでサポートされています。

その他

Gromacs

最新バージョン

コミュニティでサポートされています。

BWA

最新バージョン

コミュニティでサポートされています。

Gatk

4.3.0.0

コミュニティでサポートされています。

手順 3: 移行後のコンパイルを実行する

ビジネス要件に基づいてソフトウェアをコンパイルおよびビルドするには、次のガイドを参照してください。

参考資料

CPU アーキテクチャを表示する

uname -m コマンドまたは arch コマンドを実行して、CPU アーキテクチャを表示します。コマンド出力は、アーキテクチャによって異なります。

  • aarch64 は Arm アーキテクチャを示します。

    image

  • x86_64 は x86 アーキテクチャを示します。

    image

詳細な CPU 情報を表示する

lscpu コマンドを実行して、詳細な CPU 情報を表示します。コマンド出力は、アーキテクチャによって異なります。

  • Arm

    image

  • x86

    image

オペレーティングシステム情報を表示する

オペレーティングシステム情報は、x86 アーキテクチャと Arm アーキテクチャで異なります。cat /proc/version コマンドを実行して、オペレーティングシステム情報とコンパイラバージョンを表示します。コマンド出力は、アーキテクチャによって異なります。

  • x86

    image

  • Arm

    image