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

Elastic Compute Service:Alibaba Cloud Linux イメージの要件

最終更新日:Mar 21, 2025

カスタムイメージを Alibaba Cloud にインポートする前、または Alibaba Cloud Marketplace でカスタムイメージをリリースする前に、イメージはイメージ要件を満たし、Elastic Compute Service (ECS) インスタンスタイプとの互換性テストに合格する必要があります。 これにより、カスタムイメージの可用性とインポート効率が向上し、さまざまなビジネス要件を満たす ECS インスタンスの後続の作成が容易になります。 このトピックでは、Alibaba Cloud Linux イメージの要件について説明します。

ディスクのパーティション

イメージ作成時にイメージのディスクをパーティション分割する場合は、次の要件が満たされていることを確認してください。

  • ディスクのサイズ変更

    • ディスクは、物理パーティションに基づいて論理パーティションに分割されます。 各ディスクの最後の論理パーティションはルートパーティションとして使用され、システムディスクのパーティション障害を防ぎます。

    • オンラインディスクサイズ変更をサポートするオペレーティングシステムの場合は、cloud-utils-growpart パッケージをインストールし、growpart ユーティリティを使用してパーティションを拡張して、使用可能なディスク容量を占有することをお勧めします。 詳細については、「Linux インスタンスでディスクのパーティションとファイルシステムを拡張する」をご参照ください。

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

    イメージを作成するときは、スワップパーティションを使用しないでください。

  • ディスクのマウント

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

    重要

    ECS インスタンスの fstab ファイルが正しく構成されていない場合、インスタンスの再起動後にインスタンスが期待どおりに実行されない可能性があります。

  • ディスクサイズ

    システムディスクのサイズは 20 GiB 以上です。

  • イメージのブートモード

    特定のブートモードをサポートするインスタンスタイプに適合させるために、オンプレミスイメージでブートモードを構成することをお勧めします。 イメージを Alibaba Cloud にインポートするときは、イメージでサポートされているブートモードを指定する必要があります。

    説明

    オンプレミスイメージが BIOS モードと UEFI モードの両方をサポートしている場合は、イメージを Alibaba Cloud にインポートするときに UEFI-Preferred モードを指定できます。 イメージは、すべてのインスタンスタイプのブートモードに適合できます。 これにより、イメージ作成のコストが削減されます。

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

  • virtio ドライバーをインストールする

    イメージをリリースする前に、イメージに virtio ドライバーがインストールされており、virtio ドライバーが一時ファイルシステムに追加されていることを確認してください。 virtio ドライバーにより、イメージを ECS インスタンスで期待どおりに使用できます。 詳細については、「virtio ドライバーをインストールする」をご参照ください。

  • NVMe ドライバーをインストールする

    ecs.g8i や ecs.g7se などの新しい世代の ECS インスタンスファミリでは、Non-Volatile Memory Express (NVMe) プロトコルを使用してディスクを接続できます。 オンプレミスイメージを使用して上記のインスタンスファミリのいずれかの ECS インスタンスを作成し、インスタンスが期待どおりに実行されるようにするには、イメージに NVMe ドライバーをインストールします。 詳細については、「カスタムイメージに NVMe ドライバーをインストールするにはどうすればよいですか?」をご参照ください。 イメージを Alibaba Cloud にインポートするときは、[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 以降は CONFIG_FW_CFG_SYSFS 機能をサポートしています。 この機能がサポートされているかどうかを確認するには、イメージのソースサーバーで grep -nr CONFIG_FW_CFG_SYSFS /boot/config-$(uname -r) コマンドを実行します。 コマンド出力に CONFIG_FW_CFG_SYSFS=y が含まれている場合、イメージのカーネルは CONFIG_FW_CFG_SYSFS 機能をサポートしています。

  • クラウドアシスタントをインストールする

    イメージを作成するときは、クラウドアシスタントをインストールします。 クラウドアシスタントは、ECS 用に開発されたネイティブの自動 O&M ツールです。 クラウドアシスタントを使用すると、シェル、PowerShell、バッチコマンドなどのコマンドをバッチ実行して、インスタンスにログインしたりジャンプサーバーを使用したりすることなく、パスワードなしで ECS インスタンスでさまざまなタスクを実行できます。 クラウドアシスタントを使用して、自動 O&M タスクの実行、プロセスのポーリング、ソフトウェアのインストールまたはアンインストール、サービスの開始または停止、パッチまたはセキュリティ更新プログラムのインストールを実行できます。 詳細については、「クラウドアシスタントクライアントをインストールする」をご参照ください。

  • セキュリティセンターを使用してイメージのソースサーバーを保護する

    イメージを作成するときは、Alibaba Cloud セキュリティセンターを使用してサーバーを保護することをお勧めします。 セキュリティセンターは、アラート通知、ウイルス検出と削除、webshell 検出と削除、クライアント保護、イメージスキャンなどのセキュリティ機能を提供して、クラウド資産とオンプレミスサーバーを保護します。

システム構成

  • クロックを構成する

    イメージのハードウェアクロックは、協定世界時 (UTC) またはローカルタイムゾーンにすることができます。 イメージを作成するときは、UTC 時刻を使用してください。 コマンド例:

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

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

  • sshd サービスを構成する

    イメージを作成するときは、sshd サービスを構成します。

    sshd は、Linux オペレーティングシステムにリモートログインして管理するために使用される Linux サービスです。 sshd は 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 NTP サーバーを使用する
    # パブリック NTP
    # Alicloud 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
    
    # ソース選択で層を無視する。
    stratumweight 0.05
    
    # システムクロックが時間を取得/損失する速度を記録する。
    driftfile /var/lib/chrony/drift
    
    # カーネル RTC 同期を有効にする。
    rtcsync
    
    # 最初の 3 回の更新では、調整が 10 秒を超える場合、スルーではなくシステムクロックをステップする。
    makestep 10 3
    
    # ローカルネットワークからの NTP クライアントアクセスを許可する。
    #allow 192.168/16
    
    # localhost でのみコマンドを listen する。
    bindcmdaddress 127.0.0.1
    bindcmdaddress ::1
    
    # クライアントアクセスのログ記録を無効にする。
    noclientlog
    
    # クロック調整が 0.5 秒を超える場合、syslog にメッセージを送信する。
    logchange 0.5
    
    logdir /var/log/chrony
    #log measurements statistics tracking
    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) サービスを構成することをお勧めします。

    MOTD サービスは Linux の機能であり、Linux オペレーティングシステムにログインしたときにメッセージまたはアナウンスを表示するために使用されます。サンプルコマンド:

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

    イメージを作成する際は、Firewalld サービスを無効にすることをお勧めします。Firewalld は、Linux オペレーティングシステム用のファイアウォール管理サービスです。クラウドでは、Firewalld の代わりにセキュリティグループが保護を提供します。サンプルコマンド:

    systemctl stop firewalld
    systemctl disable firewalld
  • pip リポジトリを構成する

    pip リポジトリが構成されている場合は、Alibaba Cloud pip リポジトリのアドレスを使用して、Alibaba Cloud から最新のソフトウェア パッケージを取得することをお勧めします。~/.pip/pip.conf ファイルのサンプルコンテンツ:

    [global]  // グローバル
    index-url=http://mirrors.cloud.aliyuncs.com/pypi/simple/ // インデックス URL
    
    [install] // インストール
    trusted-host=mirrors.cloud.aliyuncs.com // 信頼できるホスト
  • ネットワーク設定を構成する

    NetworkManager またはネットワークサービスを使用する場合は、/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを構成します。

    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes

    その他のネットワークサービス構成については、「セカンダリ ENI を構成する」をご参照ください。

カーネルパラメーター の構成

  • kernelopt パラメーターを構成する

    イメージを作成する場合は、オペレーティングシステムが想定どおりに起動できるように、GRand Unified Bootloader(GRUB)の kernelope カーネルパラメーターを構成します。次の例では、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 パラメーターを構成する

    イメージを作成する場合は、sysctl パラメーターを構成して Linux カーネルのランタイムパラメーターを調整および最適化することをお勧めします。

    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 コマンドを実行して、カーネルパラメーターの変更を有効にします。

システムセキュリティの推奨事項

システムセキュリティを向上させるために、カスタムイメージを Alibaba Cloud にインポートする前に、次の項目に注意してください。

  • ルートアカウントをロックアウトします。これにより、ルートパスワードが設定されている場合でも、他のユーザーがルートアカウントとパスワードを使用してシステムにログインできなくなります。

  • パスワードベースのログインを無効にするには、PasswordAuthentication パラメーターを変更します。

    説明

    インスタンスの初期化のためにルートパスワードを設定する場合、PasswordAuthentication パラメーターを yes に設定することがあります。これは、パスワードベースのログインが有効になっていることを示します。

サンプルコード:

  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

イメージ情報のクリア

独立系ソフトウェアベンダー (ISV) がイメージをリリースする前に、ISV はビジネス要件に基づいて履歴レコードとログをクリアできます。