はじめに
ファイル連携は業務システムであれば、今でもよく使われる連携方法の一つです。
一昔前はファイル連携するとなれば、高価なファイル転送ツールを購入していた(しかもその機能の20%も使用しない)時期もありました。
しかし、今はクラウド環境が気軽に使えるので、S3を経由してファイル連携すれば安価に連携環境を構築することができるでしょう。もちろん、適切なIAM振り出しとACL設定をすることでセキュリティを担保することも可能ですし、Lambdaを使ったイベントトリガーを使用すればリアルタイムでの取り込みや、ファイルアップロード後のイベント通知も可能です。
中国を考慮しなくてよいのであれば、これらの機能でファイル連携することができます。しかし、中国ではグレートファイアウォールと呼ばれる検閲システムがあり、S3は使用できないのが現状です。
そこで、AWSが2018年11月26日にローンチしたAWS Transfer for SFTPを使るとよいのでは、というのがこの記事の内容です。
中国からはS3が使えないのか
先ほど述べた通り、中国からはS3が使えません。正確には、S3のエンドポイントがグレートファイアウォールによってアクセスブロックされています。
エンドポイントがアクセス可能かどうかはComparitechが提供しているTest if a site is blocked in Chinaというサイトから確認できます。なお、AWSの各ドメインはAWS のリージョンとエンドポイントに一覧があり、今回、S3のエンドポイントはs3-ap-northeast-1.amazonaws.com
で確認たところ、全て使用不可になりました。
試しに、AWS Transfer for SFTPのエンドポイントtransfer.ap-northeast-1.amazonaws.com
で確認すると使用可能となります。これで中国からSFTP経由でS3を操作できる見込みが立ちました。
AWS Transfer for SFTPの設定方法
いつもお世話になっているクラスメソッドのブログ「新サービスAWS Transfer for SFTPを使って、WinSCPからS3へアクセスする #reinvent」が大変参考になりました。
SFTPサーバにはRoute53のエイリアス機能を設定することができます。(既存のDNSにサブドメインをつけて設定するとDNSレコードはCNAMEで自動的に作成されます。Aではない。)
おわりに
中国からのアクセス制限はグレートファイアウォール以外にも、プロバイダによって制限が異なると聞いたことがあります。従って、実証しないと確証は得られません。
もし、皆さんがファイル連携でS3を使用する際は、要件定義の段階で中国が連携先に含まれるかを確認することで、対応方法を予め特定することができるのかと思います。
この記事は私の狭い知識の中で書かれたものです。もし、中国とのファイル連携でよりよい方法がありましたら、コメントいただけると幸いです。