Elastic IP アドレスを使用して、AWS Transfer Family SFTP でアクティブ化されたサーバーにアクセスできるようにしたいと考えています。ただし、リスナーポートをポート 22 にすることはできません。
解決策
ポート 22 をリスナーポートとして使用できる場合は、サーバー用にインターネットに接続するエンドポイントを作成します。
ただし、リスナーポートをポート 22 以外のポート (移行用) に変更する必要がある場合は、次の手順に従ってください:
Amazon Virtual Private Cloud (Amazon VPC) を作成し、IP アドレスを割り当てます
- サーバーと同じ AWS リージョンに Amazon VPC を作成します。
- サーバーを使用したいアベイラビリティーゾーン内の VPC にサブネットを作成します。
注: 1 台の AWS Transfer Family サーバーは、最大 3 つのアベイラビリティーゾーンをサポートできます。
- サーバーと同じリージョンに最大 3 つの Elastic IP アドレスを割り当てます。または、独自の IP アドレス範囲 (BYOIP) を使用することもできます。
注: Elastic IP アドレスの数は、サーバーエンドポイントで使用するアベイラビリティーゾーンの数と一致する必要があります。
内部 VPC エンドポイントタイプの AWS Transfer Family SFTP 対応サーバーを作成する
- 手順に従って、VPC 内からのみアクセスできるサーバーエンドポイントを作成します。
- サーバーを作成したら、AWS Transfer Family コンソールからサーバーの詳細を表示します。[エンドポイントの設定] で、プライベート IPv4 アドレスを書き留めます。Network Load Balancer を作成する手順には、これらの IP アドレスが必要です。
Network Load Balancer を作成し、サーバーの VPC エンドポイントをロードバランサーのターゲットとして定義します
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- 次に、ナビゲーションペインから [ロードバランサー] を選択します。
- [ロードバランサーの作成] を選択します。
- [Network Load Balancer] で [作成] を選択します。
- ステップ 1 の場合: ロードバランサーを設定し、以下を入力します:
[Name] に、ロードバランサーの名前を入力します。
[スキーム] で [インターネット接続] を選択します。
リスナーの場合、ロードバランサープロトコルは TCP のままにしてください。次に、関連するロードバランサーポートをカスタムリスナーポートに変更します。
**VPC **については、作成した Amazon VPC を選択します。
アベイラビリティーゾーンでは、サーバーエンドポイントで使用しているのと同じ VPC で利用可能なパブリックサブネットに関連付けられているアベイラビリティーゾーンを選択します。
各サブネットの IPv4 アドレスには、割り当てた Elastic IP アドレスのいずれかを選択します。
- [次へ: セキュリティ設定の設定]。
- [次へ: ルーティングの設定] を選択します。
- ステップ 3: [ルーティングの設定] では、以下を入力します:
[ターゲットグループ] で [新規ターゲットグループ] を選択します。
[名前] に、ターゲットグループの名前を入力します。
[ターゲットタイプ] で、[IP] を選択します。
[プロトコル] で、[TCP] を選択します。
[ポート] に、22 と入力します。
注: AWS Transfer Family サーバーは、ポート 22 経由のトラフィックのみをサポートします。ロードバランサーはポート 22 を介してサーバーと通信する必要があります。
[ヘルスチェック] の [プロトコル] で [TCP] を選択します。
- [次へ: ターゲットを登録] を選択します。
- ステップ 4 の場合: ターゲットの登録] には、以下を入力します:
[ネットワーク] で、使用する Amazon VPC が選択されていることを確認します。
IP には、サーバーのエンドポイントのプライベート IPv4 アドレスを入力します。これらの IP アドレスは、サーバーの作成後にコピーしました。
- [リストに追加] を選択します。
- サーバーのすべてのエンドポイントのプライベート IP アドレスを入力するまで、手順 10 と 11 を繰り返します。
- [次へ: 確認] を選択します。
- [作成] を選択します。
サーバーとロードバランサーを設定すると、クライアントはカスタムポートリスナーを介してロードバランサーと通信します。次に、ロードバランサーはポート 22 を介してサーバーと通信します。
Elastic IP アドレスからサーバーへのアクセスをテストする
Elastic IP アドレスまたはネットワークロードバランサーの DNS 名を使用して、カスタムポート経由でサーバーに接続します。たとえば、次の OpenSSH コマンドは Elastic IP アドレスとカスタムポートを介してサーバーに接続します:
注:****[port] をカスタムポートに置き換えてください。次に、192.0.2.3 を、割り当てた Elastic IP アドレスに置き換えます。
sftp -i sftpuserkey -P [port] sftpuser@192.0.2.3
重要: クライアント IP アドレスからサーバーへのアクセスを管理するには、ロードバランサーのネットワークアクセスコントロールリスト (ネットワーク ACL) とセキュリティグループを使用します。Network Load Balancer のヘルスチェックが失敗すると、ロードバランサーはサーバーエンドポイントに接続できません。これをトラブルシューティングするには、次の条件を確認してください:
- サーバーエンドポイントの関連するセキュリティグループが、ロードバランサーのサブネットからのインバウンド接続を許可していることを確認します。ロードバランサーは、ポート 22 を介してサーバーエンドポイントに接続できる必要があります。
- サーバーの「状態」が「オンライン」であることを確認します。
関連情報
SFTP サーバーの AWS へのリフトアンドシフト移行