背景情報 FTPは、ファイルの転送に使用されるプロトコルです。 このプロトコルはクライアントサーバーモデルに基づいており、次のモードをサポートしています。
次の図と表に、FTPがアクティブモードでどのように機能するかを示します。
いいえ
説明
①
FTPクライアントは、FTPサーバのポート21に接続要求を送信する。
②
FTPクライアントは、クライアントのポート2100を使用してデータを転送できることをポート21に通知する。
③
FTPサーバのポート20は、FTPクライアントのポート2100に接続する。 そして、サーバとクライアントとの間でデータを転送することができる。
④
データが転送された後、FTPサーバーは接続を閉じます。
次の図と表は、FTPがパッシブモードでどのように動作するかを説明します。
いいえ
説明
①
FTPクライアントは、FTPサーバのポート21に接続要求を送信する。
②
FTPサーバーは、ポート2120がデータの転送に使用されていることをFTPクライアントに通知します。
③
FTPクライアントは別のポートを開き、FTPサーバーのポート2120に接続してデータを転送します。
④
データが転送された後、FTPサーバーは接続を閉じます。
アクティブモードはGAでサポートされていません。 したがって、パッシブモードのみを使用できます。
FTPは次の認証モードをサポートしています。
匿名ユーザーモード: このモードでは、ユーザーはユーザー名またはパスワードなしでFTPサーバーにログオンできます。 これは最も安全でない認証モードである。 ほとんどの場合、このモードは重要でないパブリックファイルを保存するために使用されます。 本番環境でファイルを保存するためにこのモードを使用しないことを推奨します。
ローカルユーザーモード: このモードでは、ローカルLinuxユーザーを作成する必要があります。 このモードは、匿名ユーザーモードよりも安全です。
仮想ユーザーモード: 仮想ユーザーはFTPサーバーの専用ユーザーです。 仮想ユーザーは、Linuxシステムが提供するFTPサービスにのみアクセスでき、システムの他のリソースにはアクセスできません。 これにより、FTPサーバのセキュリティが強化される。
前提条件 説明
この例では、Elastic Compute Service (ECS) インスタンスがFTPサーバーとして使用されています。 ECSインスタンスのセキュリティグループとパブリックIPアドレスを設定する方法の詳細については、「セキュリティグループの管理 」および「クイックスタート 」をご参照ください。
制限事項 Global Accelerator インスタンスがFTPサービスの高速化をサポートしていない場合、インスタンスは以前のバージョンを使用している可能性があります。 GAインスタンスをアップグレードするには、アカウントマネージャーにお問い合わせください。
手順 説明
このトピックでは、Global Accelerator を設定してFTPサービスを高速化する方法を説明する例として、従量課金の標準Global Accelerator インスタンスを使用します。 従量課金制の標準Global Accelerator インスタンスを作成する前に、次の情報に注意してください。
GA インスタンスではデータ転送量 課金方式が使用されます。 基本帯域幅プランを従量課金 GA インスタンスに関連付ける必要はありません。 GA ネットワークを経由したデータ転送に対する課金は、Cloud Data Transfer (CDT) によって管理されます。 詳細については、「データ転送量課金 」をご参照ください。
従量課金制のGlobal Accelerator インスタンスを初めて使用するときは、 従量課金GAアクティベーションページ をクリックし、プロンプトに従ってGlobal Accelerator をアクティブにします。
手順1: FTPサーバーにvsftpdをインストールして設定する 次のセクションでは、Alibaba Cloud Linux 3オペレーティングシステムを実行するECSインスタンスにvsftpdをインストールおよび設定する方法について説明します。 別のオペレーティングシステムまたはvsftpdバージョンを使用している場合は、それに応じてコマンドとパラメーター設定を変更します。
Linuxインスタンスに接続します。
次のコマンドを実行してvsftpdをインストールします。
認証にはローカルユーザーモードを使用し、FTPサーバーへのログオンに使用するユーザーを作成します。
# Create a Linux user named ftpdemo.
adduser ftpdemo
# Change the password of ftpdemo.
passwd ftpdemo
# Create a directory for the FTP service.
mkdir /var/ftp/demo
# Transfer the ownership of the directory to ftpdemo.
chown -R ftpdemo:ftpdemo /var/ftp/demo
vsftpdを設定します。
vim /etc/vsftpd/vsftpd.conf
次の情報に基づいて、vsftpdの設定ファイルを変更します。
# Use the default values for all parameters except the following parameters.
# Modify the values of the following parameters.
# Forbid anonymous users to log on to the FTP server.
anonymous_enable=NO
# Allow local users to log on to the FTP server.
local_enable=YES
# Listen on IPv4 sockets.
listen=YES
# Disable listening on IPv6 sockets.
# listen_ipv6=NO
# Add the following parameters.
# Specify the directory to which local users are directed after they log on.
local_root=/var/ftp/demo
# Enable the passive mode.
pasv_enable=YES
# Disable security checks. The value must be set to YES. Otherwise, the FTP client cannot upload files to the FTP server.
pasv_promiscuous=YES
# Set the first port of the port range that can be used to transfer data in passive mode.
pasv_min_port=2100
# Set the last port of the port range that can be used to transfer data in passive mode.
pasv_max_port=2120
Esc キーを押して編集モードを終了します。 :wq
と入力し、Enterキーを押してファイルを保存して閉じます。
次のコマンドを実行して、vsftpdを表示または再起動します。
# Restart vsftpd.
systemctl restart vsftpd.service
# View the status of vsftpd.
systemctl status vsftpd
手順2: GAインスタンスに関する基本情報の設定 GAコンソール にログインします。
インスタンス ページで、[GAインスタンスの作成] をクリックします。 ビジネス要件に基づいて、[サブスクリプション標準インスタンス] または [従量課金標準インスタンス] を選択します。
この例では、従量課金標準インスタンス が選択されています。
[基本インスタンス設定] ステップで、次のパラメーターを設定し、[次へ] をクリックします。
パラメーター
説明
GAインスタンス名
GAインスタンスの名前を入力します。
インスタンスの課金方法
デフォルトでは、従量課金 が選択されています。
従量課金の標準GA インスタンスのインスタンス料金、容量単位 (CU) 料金、およびデータ転送料金が課金されます。
リソースグループ
標準GA インスタンスが属するリソースグループを選択します。
リソースグループは、現在のAlibaba Cloudアカウントによってリソース管理で作成されたリソースグループである必要があります。 詳細については、「リソースグループの作成 」をご参照ください。
ステップ3: アクセラレーションエリアの設定 アクセラレーションエリアを追加することで、GA ユーザーのリージョンを指定し、そのリージョンに帯域幅を割り当てることができます。
[アクセラレーションエリアの設定] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表に、各パラメーターを説明します。
パラメーター
説明
アクセラレーションエリア
ドロップダウンリストから1つ以上のリージョンを選択し、[追加] をクリックします。
この例では、中国 (香港) リージョンが選択されています。
帯域幅の割り当て
最大帯域幅
アクセラレーションリージョンの最大帯域幅を指定します。 各アクセラレーションリージョンは、2〜10,000 Mbit/sの帯域幅範囲をサポートします。
最大帯域幅は帯域幅スロットリングに使用されます。 データ転送料金はCDT によって管理されます。
この例では、デフォルト値200 Mbit/sが使用されます。
重要
最大帯域幅に小さな値を指定すると、スロットリングが発生し、パケットがドロップされる可能性があります。 ビジネス要件に基づいて最大帯域幅を指定します。
IP プロトコル
Global Accelerator への接続に使用するIPバージョンを選択します。
この例では、デフォルト値IPv4 が選択されています。
ISP 回線タイプ
Global Accelerator インスタンスのISP回線タイプを選択します。
この例では、BGP (Multi-ISP) が選択されています。
手順4: リスナーの設定 リスナーは接続要求をリッスンし、指定したポートとプロトコルに基づいてエンドポイントに要求を配信します。 各リスナーはエンドポイントグループに関連付けられています。 ネットワークトラフィックを分散するリージョンを指定することで、エンドポイントグループをリスナーに関連付けることができます。 エンドポイントグループをリスナーに関連付けると、ネットワークトラフィックはエンドポイントグループ内の最適なエンドポイントに分散されます。
リスナーの設定 ステップで、必要なパラメーターを設定し、[次へ] をクリックします。
次の表に、このトピックに関連するパラメーターのみを示します。 他のパラメーターにはデフォルト値を使用します。 詳細については、「インテリジェントルーティングリスナーの追加と管理 」をご参照ください。
パラメーター
説明
リスナー名
リスナーの名前を入力します。
ルーティングタイプ
ルーティングタイプを選択します。
この例では、[インテリジェントルーティング] が選択されています。
プロトコル
リスナーのプロトコルを選択します。
この例では、TCP が選択されています。
ポート
リスナーがリクエストを受信してエンドポイントに転送するポートを指定します。 有効な値: 1 ~ 65499
この例では、21,2100 2120 が入力されます。 2100-2120 は、「手順1: FTPサーバーへのvsftpdのインストールと設定 」で設定されたFTPサーバーのvsftpd.confファイルのpasv_min_port とpasv_max_port で指定されたポート範囲です。
クライアントのアフィニティ
クライアントアフィニティを有効にするかどうかを指定します。 クライアントアフィニティが有効になっている場合、クライアントがステートフルアプリケーションに接続するときに、同じクライアントからのリクエストが同じエンドポイントに転送されます。
この例では、[ソースIP] が選択されています。
手順5: エンドポイントグループとエンドポイントの設定 エンドポイントグループの設定 ステップで、パラメーターを設定し、[次へ] をクリックします。 下表に、各パラメーターを説明します。
このトピックでは、主要なパラメーターのみについて説明します。 詳細については、「インテリジェントルーティングリスナーのエンドポイントグループの追加と管理 」をご参照ください。
説明
FTPは、クライアントとサーバとの間に2つのリンクを確立する。 一方のリンクは通信を制御するために使用され、他方のリンクはデータを転送するために使用される。 コントロールリンクは、FTPセッション中にFTPコマンドを送受信するために使用されます。 データリンクは、データを転送するために使用される。
GAインスタンスには、サービスがデプロイされているリージョンに複数のエンドポイントグループIPアドレスがあります。 このリージョンは、エンドポイントグループが属する場所でもあります。 ただし、一部のFTPサーバーでは接続チェックが設定されています。 接続チェックでは、制御リンクとデータリンクが同じクライアントIPアドレスを持つ必要があります。 この場合、FTPサーバーのクライアントIPアドレスの接続チェックを無効にする必要があります。 アカウントマネージャーに連絡して、コントロールリンクとデータリンクが同じクライアントIPアドレスを持つようにする機能を有効にすることもできます。
パラメーター
説明
リージョン
エンドポイントグループがデプロイされているリージョンを選択します。
この例では、US (シリコンバレー) が選択されています。
エンドポイント設定
クライアント要求はエンドポイントにルーティングされます。 エンドポイントを追加するには、次のパラメーターを設定します。
バックエンドサービスタイプ : Alibaba CloudパブリックIP を選択します。
バックエンドサービス : 高速化するバックエンドサービスのIPアドレスを入力します。 この例では、FTPサーバーのパブリックIPアドレスを入力します。
重み : エンドポイントの重みを入力します。 有効な値:0~255 。 Global Accelerator は、エンドポイントの重みに基づいてネットワークトラフィックをエンドポイントにルーティングします。 この例では、デフォルト値255 が使用されます。
警告
エンドポイントの重みを0に設定すると、Global Accelerator はエンドポイントへのネットワークトラフィックの配信を停止します。 作業は慎重に行ってください。
クライアント IP の保持
クライアントIPアドレスを保持するかどうかを指定します。
この機能を有効にすると、バックエンドサーバーはクライアントのIPアドレスを取得できます。 詳細については、「クライアントIPアドレスの保存 」をご参照ください。
この例では、デフォルト値 [保存しない] が使用されています。
[設定の確認] ステップで、設定を確認し、[送信] をクリックします。
説明
Global Accelerator インスタンスの作成には3〜5分かかります。
(オプション) GAインスタンスを作成した後、[インスタンス] ページでインスタンスIDをクリックして、インスタンスの設定を表示できます。 インスタンスの詳細ページで、インスタンス情報 、リスナー 、アクセラレーションエリア などのタブをクリックして詳細を表示できます。
ステップ6: アクセラレーションのパフォーマンスを確認する この例では、Windows Server 2022オペレーティングシステムを実行するホストをFTPクライアントとして使用します。 FileZillaはデータを転送するためにクライアントにインストールされます。
Windowsインスタンスにリモート接続します。
FileZillaを起動します。
上部のナビゲーションバーで、.
[サイトマネージャー] ダイアログボックスで、[新しいサイト] をクリックします。 次に、[エントリの選択] セクションでWebサイトの名前を指定します。 [一般] セクションでパラメーターを設定します。
この例では、サイト名はGA Acceleration に設定されています。
パラメーター
説明
プロトコル
ドロップダウンリストから [FTP - File Transfer Protocol] を選択します。
ホスト
FTPサーバーへのログインに使用するIPアドレスを入力します。 IPアドレスは、GAによって割り当てられた高速IPアドレスです。
ユーザー
FTPサーバーのユーザー名 (ftpdemo ) を入力します。
Password
FTPサーバーへのログインに使用するパスワードを入力します。
上記の表に含まれていないパラメーターのデフォルト値を使用します。
クリック接続 FTPサーバーに接続します。
FTPサーバーに接続した後、Webサイトファイルをアップロード、ダウンロード、作成、および削除できます。 FileZillaインターフェイスを次の図に示します。
次の表に、FileZillaインターフェイスのさまざまなセクションを示します。
いいえ
説明
①
コマンド, FTPサーバの接続状況, およびタスクの実行結果が表示されます。
②
ローカルディスクのセクション。
③
リモートサイトのセクション。 ディレクトリをダブルクリックすると、ディレクトリにアクセスできます。
④
FTPタスクのキューとログを含むレコードを表示するセクション。
CLIを開き、次のコマンドを実行して、データ送信のレイテンシを確認します。
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" ftp://<GA accelerated IP address>/<File path> --user <username >:< password>
次のセクションでは、パラメーターについて説明します。
time_connect : TCP接続を確立するために必要な期間。 単位は秒です。
time_starttransfer : データ転送の開始時刻。 開始時間は、クライアントがバックエンドサーバーにリクエストを送信してから、最初のバイトがクライアントに送信されるまでの期間を指します。 単位は秒です。
time_total : 合計接続時間。 合計接続時間は、クライアントがリクエストを送信してから、クライアントがバックエンドサーバーから最後のバイトを受信するまでの期間を指します。 単位は秒です。
テスト結果によると、GAは、中国 (香港) リージョンのFTPクライアントが米国 (シリコンバレー) リージョンのFTPサーバーにアクセスするときのネットワーク遅延を短縮します。
図 1. 高速化前のネットワーク待ち時間
図2. 高速化後のネットワーク待ち時間
説明
GAを使用してFTPサービスを高速化する場合、実際の高速化パフォーマンスはワークロードによって異なります。