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

Elastic Compute Service:Alibaba Cloud イメージ仕様 (Linux)

最終更新日:Aug 21, 2026

カスタムイメージを Alibaba Cloud にインポートしたり、Alibaba Cloud Marketplace で公開したりする前に、イメージがこのトピックの仕様を満たし、Elastic Compute Service (ECS) インスタンスタイプとの互換性テストに合格していることを確認してください。これらの仕様に従うことで、カスタムイメージの可用性とインポート効率が向上し、ビジネスニーズに合わせた ECS インスタンスを作成できます。このトピックでは、Linux イメージを作成するための仕様について説明します。

ディスクパーティション

ディスクパーティションは、次の要件を満たす必要があります。

  • ディスクのサイズ変更

    • 物理パーティションを使用してディスクをパーティション分割します。システムディスクのサイズ変更時に障害が発生しないように、ルートパーティションは最後のパーティションにする必要があります。

    • クラウドディスクのオンラインサイズ変更をサポートするシステムの場合は、growpart コマンドを使用してパーティションのサイズを変更します。そのためには、cloud-utils-growpart パッケージをインストールする必要があります。詳細については、「パーティションとファイルシステムのサイズ変更 (Linux)」をご参照ください。

  • スワップパーティション

    スワップパーティションは作成しないでください。

  • Logical Volume Management (LVM)

    ディスクパーティションに Logical Volume Management (LVM) を使用しないでください。

  • ディスクのマウント

    fstab ファイルと grub ファイルを設定するには、UUID を使用する必要があります。詳細については、「UUID を使用して /etc/fstab ファイル内のデータディスクを自動的にマウントする」および「GRUB 設定ファイルでディスクパーティションの識別方法を UUID に変更する」をご参照ください。

    重要

    fstab ファイルが正しく設定されていない場合、ECS インスタンスは再起動後に起動に失敗することがあります。

  • ディスクサイズ

    システムディスクの最小容量は 20 GiB です。

  • イメージの起動モードの設定

    異なる起動モードを使用するインスタンスタイプとの互換性を確保するために、ローカルイメージの起動モード (BIOS または UEFI) を設定してください。イメージをインポートする際は、選択した起動モードがイメージの実際の起動モードと一致していることを確認してください。

    説明

    ローカルイメージが BIOS と UEFI の両方をサポートしている場合は、起動モードを UEFI-Preferred に設定できます。これにより、イメージはすべてのインスタンスタイプの起動モードに自動的に適応でき、イメージ作成のコスト削減にもつながります。

必要なソフトウェアとツール

  • virtio ドライバーのインストール

    イメージを公開する前に、virtio ドライバーがインストールされ、初期 RAM ファイルシステム (initramfs) に追加されていることを確認してください。virtio ドライバーは、イメージを Alibaba Cloud インスタンスで実行するために必要です。詳細については、「virtio ドライバーのインストール」をご参照ください。

  • NVMe ドライバーのインストール

    ecs.g8iecs.g7se などの新しい世代の ECS インスタンスファミリーは、NVMe プロトコルを使用してクラウドディスクをマウントします。 イメージには NVMe ドライバーがインストールされている必要があります。インストールされていない場合、そのイメージから作成されたインスタンスは起動に失敗します。 これらのタイプの ECS インスタンスでイメージを使用できるように、ローカルイメージに NVMe ドライバーをインストールすることをお勧めします。 手順については、「カスタムイメージに NVMe ドライバーをインストールする」をご参照ください。 イメージをインポートした後、イメージの [NVMe ドライバー] プロパティを 対応 に設定します。 詳細については、「イメージのプロパティとタグを変更する」をご参照ください。

  • cloud-init のインストール

    イメージから作成された ECS インスタンスを初期化するには、cloud-init をインストールする必要があります。詳細については、「cloud-init のインストール」をご参照ください。セキュリティ強化モードでのメタデータアクセスに対応するために、cloud-init 23.2.2 以降をインストールすることを推奨します。これにより、インスタンスメタデータアクセスのセキュリティが確保されます。

    説明

    cloud-init を使用してパスワードを変更するには、オペレーティングシステムのカーネルが CONFIG_FW_CFG_SYSFS 機能をサポートしている必要があります。この機能は、Linux コミュニティカーネルのバージョン 4.6 以降、および CentOS カーネルのバージョン 3.10.0-826.el7 以降でデフォルトでサポートされています。イメージを使用するサーバーで grep -nr CONFIG_FW_CFG_SYSFS /boot/config-$(uname -r) コマンドを実行できます。コマンドの出力に CONFIG_FW_CFG_SYSFS=y が含まれている場合、イメージ内のカーネルは CONFIG_FW_CFG_SYSFS 機能をサポートしています。

  • Cloud Assistant のインストール

    イメージを作成する際に、Cloud Assistant Agent をインストールする必要があります。Cloud Assistant は ECS 向けのネイティブな自動化ツールであり、パスワード、ログイン、またはジャンプサーバーを必要とせずに、コマンド (Shell、PowerShell、Bat コマンドなど) を一括で実行できます。Cloud Assistant を使用して、自動化された運用保守スクリプトの実行、プロセスのポーリング、ソフトウェアのインストールまたはアンインストール、サービスの開始または停止、パッチまたはセキュリティ更新プログラムのインストールを行うことができます。詳細については、「Cloud Assistant Agent のインストール」をご参照ください。

  • サーバーのセキュリティ保護

    イメージを作成する際には、Security Center を使用してサーバーを保護することを推奨します。Security Center は、アラート通知、マルウェアのスキャンと駆除、Webシェルの検出と駆除、クライアントの自己保護、イメージの脆弱性スキャンなど、包括的なセキュリティ機能を提供し、クラウド資産とオンプレミスサーバーを完全に保護します。

システム設定

  • クロックの設定

    イメージのハードウェアクロックは、UTC と LocalTime のタイムゾーンをサポートしています。イメージを作成する際には、標準の協定世界時 (UTC) モードを使用する必要があります。クロックの設定例を次に示します。

    cat > /etc/adjtime << EOF
    0.0 0 0.0
    0
    UTC
    EOF
    
    timedatectl set-local-rtc 0

    詳細については、「Linux の時刻とタイムゾーン」をご参照ください。

  • SSHD サービスの設定

    SSHD サービスを設定する必要があります。

    SSHD サービスは、Linux システムにリモートでログインして管理するためのもので、暗号化通信には SSH プロトコルを使用します。以下に /etc/ssh/sshd_config の設定変更例を示します。

    UseDNS no
    AddressFamily inet 
    SyslogFacility AUTHPRIV 
    PermitRootLogin yes 
    PasswordAuthentication yes 
  • Chrony または NTP サービスの設定

    イメージを作成する際には、Chrony サービスまたは NTP サービスのいずれかを設定することを推奨します。

    Chrony と NTP は、コンピューターのクロックを同期し、時刻のずれを防ぐために使用されるツールです。以下にサンプルコマンドを示します。

    Chrony サービス

    chrony_file=/etc/chrony.conf
    cat >$chrony_file <<EOF
    # Alibaba Cloud NTP サーバーを使用
    # パブリック NTP
    # Alibaba Cloud NTP
    
    
    server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst
    server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
    
    # ソース選択時に stratum を無視
    stratumweight 0.05
    
    # システムクロックの進み/遅れのレートを記録
    driftfile /var/lib/chrony/drift
    
    # カーネル RTC 同期を有効化
    rtcsync
    
    # 調整が 10 秒を超える場合、最初の 3 回の更新では slew の代わりにシステムクロックを step します
    makestep 10 3
    
    # ローカルネットワークからの NTP クライアントアクセスを許可
    #allow 192.168/16
    
    # localhost でのみコマンドをリッスン
    bindcmdaddress 127.0.0.1
    bindcmdaddress ::1
    
    # クライアントアクセスのログ記録を無効化
    noclientlog
    
    # クロック調整が 0.5 秒を超える場合に syslog へメッセージを送信
    logchange 0.5
    
    logdir /var/log/chrony
    # 測定、統計、追跡のログを記録
    EOF

    NTP サービス

    ntp_conf=/etc/ntp.conf
        cat > $ntp_conf << EOF
    driftfile  /var/lib/ntp/drift
    pidfile    /var/run/ntpd.pid
    logfile    /var/log/ntp.log
    
    
    # アクセス制御のサポート
    restrict    default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
    restrict 127.0.0.1
    restrict 192.168.0.0 mask 255.255.0.0 nomodify notrap nopeer noquery
    restrict 172.16.0.0 mask 255.240.0.0 nomodify notrap nopeer noquery
    restrict 100.64.0.0 mask 255.192.0.0 nomodify notrap nopeer noquery
    restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap nopeer noquery
    
    
    # ローカルクロック
    server 127.127.1.0
    fudge  127.127.1.0 stratum 10
    
    restrict ntp.aliyun.com nomodify notrap nopeer noquery
    restrict ntp.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp1.aliyun.com nomodify notrap nopeer noquery
    restrict ntp1.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp10.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp11.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp12.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp2.aliyun.com nomodify notrap nopeer noquery
    restrict ntp2.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp3.aliyun.com nomodify notrap nopeer noquery
    restrict ntp3.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp4.aliyun.com nomodify notrap nopeer noquery
    restrict ntp4.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp5.aliyun.com nomodify notrap nopeer noquery
    restrict ntp5.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp6.aliyun.com nomodify notrap nopeer noquery
    restrict ntp6.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp7.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp8.cloud.aliyuncs.com nomodify notrap nopeer noquery
    restrict ntp9.cloud.aliyuncs.com nomodify notrap nopeer noquery
    
    
    server ntp.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp1.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp1.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp10.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp11.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp12.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp2.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp2.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp3.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp3.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp4.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp4.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp5.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp5.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp6.aliyun.com iburst minpoll 4 maxpoll 10
    server ntp6.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp7.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp8.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    server ntp9.cloud.aliyuncs.com iburst minpoll 4 maxpoll 10
    EOF
  • MOTD サービスの設定

    イメージを作成する際には、Message of the Day (MOTD) サービスを設定することを推奨します。

    Linux の MOTD サービスは、ユーザーがログインした後にメッセージを表示します。以下にサンプルコマンドを示します。

    echo -e "\nWelcome to Alibaba Cloud Elastic Compute Service ! \n" > /etc/motd
  • Firewalld サービスの無効化

    Firewalld サービスを無効にすることを推奨します。Firewalld は、Linux でファイアウォールルールを管理するサービスです。クラウドではセキュリティグループがサーバーを保護するため、ローカルファイアウォールは無効化できます。以下にサンプルコマンドを示します。

    systemctl stop firewalld
    systemctl disable firewalld
  • pip ソースの設定

    システムに pip ソースが設定されている場合は、Alibaba Cloud の pip ソースアドレスを使用して最新のソフトウェアパッケージを取得することを推奨します。~/.pip/pip.conf ファイルの内容は次のとおりです。

    [global]
    index-url=http://mirrors.cloud.aliyuncs.com/pypi/simple/
    
    [install]
    trusted-host=mirrors.cloud.aliyuncs.com
  • ネットワークの設定

    NetworkManager またはネットワークサービスを使用する場合は、/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを次のように設定してください。

    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes

    他のネットワークサービスの設定方法については、「セカンダリ Elastic Network Interface の設定」をご参照ください。

カーネルパラメーター

  • kernelopt の設定

    システムが正しく起動するように、GRUB でカーネル起動パラメーターを設定する必要があります。以下に Debian システムでのコマンド例を示します。

    1. /etc/default/grub ファイルの GRUB_CMDLINE_LINUX= 行に次の情報を追加してください。

      • x86_64 アーキテクチャ

        net.ifnames=0 console=tty0 console=ttyS0,115200n8
      • Arm64 アーキテクチャ

        net.ifnames=0 console=tty0 console=ttyAMA0,115200n8 
    2. sudo update-grub2 コマンドを実行して GRUB 設定を適用してください。

      説明

      GRUB 設定ファイルのパスと設定を適用するコマンドは、オペレーティングシステムによって異なります。詳細については、「カスタムイメージに NVMe ドライバーをインストールする」をご参照ください。

  • sysctl の設定

    Linux カーネルの動作を調整および最適化するために、sysctl パラメーターを設定することを推奨します。

    1. /etc/sysctl.conf ファイルを次のように変更してください。

      vm.swappiness = 0
      kernel.sysrq = 1
      
      net.ipv4.neigh.default.gc_stale_time = 120
      
      net.ipv4.conf.all.rp_filter = 0
      net.ipv4.conf.default.rp_filter = 0
      net.ipv4.conf.default.arp_announce = 2
      net.ipv4.conf.lo.arp_announce = 2
      net.ipv4.conf.all.arp_announce = 2
      
      net.ipv4.tcp_max_tw_buckets = 5000
      net.ipv4.tcp_syncookies = 1
      net.ipv4.tcp_max_syn_backlog = 1024
      net.ipv4.tcp_synack_retries = 2
      net.ipv4.tcp_slow_start_after_idle = 0
    2. sudo sysctl -p コマンドを実行して、カーネルパラメーターへの変更を有効にしてください。

システムのセキュリティに関する推奨事項

システムのセキュリティを向上させるために、イメージをインポートする前に次のアクションを実行することを推奨します。

  • root アカウントをロックしてください。これにより、パスワードが設定されていても、root パスワードを使用してシステムに直接ログインできなくなります。

  • SSH の PasswordAuthentication 設定を変更して、パスワードベースのログインを無効にしてください。

    説明

    インスタンスの初期化中に root パスワードを設定すると、SSH の PasswordAuthentication がデフォルトで有効になる場合があります。

以下にサンプルコードを示します。

  dst=/etc/ssh/sshd_config
  sed -i 's/^SyslogFacility.*//' $dst
  sed -i 's/^PermitRootLogin.*//' $dst
  sed -i 's/^PasswordAuthentication.*//' $dst

  echo UseDNS no >> $dst
  echo SyslogFacility AUTHPRIV >> $dst
  echo PasswordAuthentication no >> $dst

  passwd -l root
  sed -i -e 's/root:[^:]*:/root:*:/g' /etc/shadow

イメージ情報のクリーンアップ

イメージを公開する前に、コマンド履歴やログなどの機密情報をクリアしてください。