AWS Transfer for SFTP を使用してオンプレミス SFTP サーバーを AWS に移行する - AWS 規範的ガイダンス

AWS Transfer for SFTP を使用してオンプレミス SFTP サーバーを AWS に移行する

Amazon Web Services、Akash Kumar

概要

このパターンでは、Secure Shell (SSH) File Transfer Protocol (SFTP) を使用するオンプレミスのファイル転送ソリューションを、AWS Transfer for SFTP サービスを使用して AWS クラウドに移行する方法について説明します。ユーザーは通常、ドメイン名または固定 IP を使用して SFTP サーバーに接続します。このパターンはどちらの場合にも当てはまります。

AWS Transfer for SFTP は AWS Transfer Family に属しています。これは、SFTP 経由で AWS ストレージサービスとの間でファイルを転送するために使用できる安全な転送サービスです。AWS Transfer for SFTP は、Amazon Simple Storage Service (Amazon S3) または Amazon Elastic File System (Amazon EFS) で使用できます。このパターンは、Amazon S3 をストレージに使用します。

前提条件と制限

前提条件

  • アクティブな AWS アカウント。

  • 既存の SFTP ドメイン名または固定 SFTP IP アドレス。

制限

アーキテクチャ

ソーステクノロジースタック

  • オンプレミスのフラットファイルまたはデータベースダンプファイル。

ターゲットテクノロジースタック

  • AWS Transfer for SFTP

  • Amazon S3

  • Amazon Virtual Private Cloud (Amazon VPC)

  • AWS Identity and Access Management IAM ロールとポリシー

  • Elastic IP アドレス

  • セキュリティグループ

  • Amazon CloudWatch Logs (オプション)

ターゲットアーキテクチャ

AWS Transfer for SFTP を使用して、オンプレミスの SFTP サーバーを AWS クラウドに移行します。

自動化とスケール

このパターンのターゲットアーキテクチャを自動化するには、アタッチされた CloudFormation テンプレートを使用してください。

  • amazon-vpc-subnets.yml は、2 つのパブリックサブネットと 2 つのプライベートサブネットを使用して仮想プライベートクラウド (VPC) をプロビジョニングします。

  • amazon-sftp-server.yml は、SFTP サーバーをプロビジョニングします。

  • amazon-sftp-customer.yml は、ユーザーを追加します。

ツール

AWS のサービス

  • Amazon CloudWatch Logs は、すべてのシステム、アプリケーション、AWS のサービス からのログを一元化するのに役立ちます。一元化により、ログを監視して安全にアーカイブできます。

  • AWS Identity and Access Management (IAM)」では、リソースの使用を認証、許可されるユーザーを制御することで、AWSリソースへのアクセスを安全に管理できます。

  • Amazon Simple Storage Service (Amazon S3) は、どのようなデータ量であっても、データを保存、保護、取得することを支援するクラウドベースのオブジェクトストレージサービスです。このパターンでは、Amazon S3 をファイル転送のストレージシステムとして使用します。

  • AWS Transfer for SFTP は、SFTP プロトコル経由で AWS ストレージサービスとの間でファイルを転送するのに役立ちます。

  • Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。この仮想ネットワークは、ユーザー自身のデータセンターで運用されていた従来のネットワークと似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるという利点があります。

エピック

タスク説明必要なスキル

サブネットを持つ VPC を作成します。

Amazon VPC コンソールを開きます。2 つのパブリックサブネットを持つ仮想プライベートクラウド (VPC) を作成します。(2 番目のサブネットは高可用性を実現します。)

-または-

添付された CloudFormation テンプレート amazon-vpc-subnets.ymlCloudFormation コンソールにデプロイして、このエピックのタスクを自動化できます。

デベロッパー、システム管理者

インターネットゲートウェイを追加します。

インターネットゲートウェイをプロビジョニングし、VPC に接続します。

デベロッパー、システム管理者

既存の IP を移行します。

Elastic IP アドレスに既存の IP アドレスをアタッチします。アドレスプールから Elastic IP アドレスを作成して使用できます。

デベロッパー、システム管理者
タスク説明必要なスキル

SFTP サーバーの作成

AWS Transfer Family コンソールを開きます。AWS Transfer Family ドキュメントの「Create an internet-facing endpoint for your server」の手順に従って、インターネットに直接接続するエンドポイントを持つ SFTP サーバーを作成します。[エンドポイントタイプ] で、[ホストされた VPC] を選択します。[アクセス] には、[インターネット接続] を選択します。VPC には、前のエピックで作成した VPC を選択します。

-または-

添付された CloudFormation テンプレート amazon-sftp-server.ymlCloudFormation コンソールにデプロイして、このエピックのタスクを自動化できます。

デベロッパー、システム管理者

ドメイン名を移行する。

既存のドメイン名をカスタムホスト名にアタッチします。新しいドメイン名を使用している場合は、Amazon Route 53 DNS エイリアスを使用してください。既存のドメイン名には、[その他 DNS] を選択します。詳細については、AWS Transfer Family ドキュメントの「Working with custom hostnames」を参照してください。

デベロッパー、システム管理者

CloudWatch ログ記録ロールを追加します。

(オプション) CloudWatch ロギングを有効にする場合は、CloudWatch Logs API オペレーション logs:CreateLogGrouplogs:CreateLogStream logs:DescribeLogStreams、および logs:PutLogEvents を使用して Transfer ロールを作成します。詳細については、AWS Transfer Family ドキュメントの「Log activity with CloudWatch」を参照してください。

開発者、システム管理者

保存して送信する。

[保存] を選択します。[アクション][開始] を選択し、SFTP サーバーが [オンライン] というステータスで作成されるのを待ちます。

デベロッパー、システム管理者
タスク説明必要なスキル

設定を変更できるようにサーバーを停止する。

AWS Transfer Family コンソール[サーバー] を選択し、作成した SFTP サーバーを選択します。[アクション] で [停止] を選択します。サーバーがオフラインの場合は、[編集] を選択して設定を変更します。

開発者、システム管理者

アベイラビリティゾーンとサブネットを選択する。

[アベイラビリティゾーン] セクションで、VPC のアベイラビリティゾーンとサブネットを選択します。

デベロッパー、システム管理者

Elastic IP アドレスを追加する。

IPv4 アドレスの場合、各サブネットの Elastic IP アドレスを選択し、[保存] を選択します。

デベロッパー、システム管理者
タスク説明必要なスキル

S3 バケットにアクセスするユーザーの IAM ロールを作成する。

Transfer の IAM ロールを作成し、S3 バケット名をリソースとして、 s3:ListBucket s3:GetBucketLocation、および s3:PutObject を追加します。詳細については、AWS Transfer Family ドキュメントの「Create an IAM role and policy」を参照してください。

–または–

添付された CloudFormation テンプレート amazon-sftp-customer.ymlCloudFormation コンソールにデプロイして、このエピックのタスクを自動化できます。

デベロッパー、システム管理者

S3 バケットを作成する。

アプリケーション用の S3 バケット環境を作成します。

デベロッパー、システム管理者

オプションのフォルダを作成する。

(オプション) ユーザー用のファイルを特定の Amazon S3 フォルダに個別に保存する場合は、必要に応じてフォルダを追加します。

デベロッパー、システム管理者

SSH パブリックキーを作成する。

SSH キーペアを作成するには、AWS Transfer Family ドキュメントの「Generate SSH keys」を参照してください。

デベロッパー、システム管理者

ユーザーを追加します。

AWS Transfer Family コンソール[サーバー] を選択し、作成した SFTP サーバーを選択して、[ユーザーを追加] を選択します。[ホームディレクトリ] には、作成した S3 バケットを選択します。[SSH 公開キー] の場合は、SSH キーペアの公開キー部分を指定します。SFTP サーバーのユーザーを追加し、[追加] を選択します。

デベロッパー、システム管理者
タスク説明必要なスキル

セキュリティグループを作成する。

SFTP サーバーの [セキュリティグループ] セクションで、テストマシンの IP を追加して SFTP アクセスを取得します。

開発者

SFTP クライアントユーティリティを使用してサーバーをテストする。

任意の SFTP クライアントユーティリティを使用してファイル転送をテストします。クライアントのリストと手順については、AWS Transfer Family ドキュメントの「Transferring files using a client」を参照してください。

開発者

関連リソース

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip