views4GCPのストレージサービスについてまとめてみた。Exp:141302017年10月より入社しました。これまでの技術分野は主にインフラ関係です。今後はGCPでフルスタック対応できるエンジニアを目指し日々いろいろと活動しています。ような新しいサーバーレスサービスが提供されている今日この頃、いかがお過ごしでしょうか。したGCPの魅力的で刺激的なサービスが提供されていく中、FTPのような古式ゆかしいサービスもオンプレ環境の移行で求められることが多いと個人的には考えています。Engineで構築する手法のニーズはまだあるのではと個人的に考えています。そんなFTPサーバを構築する手順と、ハマるポイントを回避する設定についてご紹介したいと思います。今回はCentOS7イメージでFTPサーバを構築してみようと思います。GCEインスタンスは以下のような構成にします。固定設定FTPサーバ(vsftpd)の追加の設定項目は以下になります。何はともあれ、まずはGCEインスタンスを作成します。Shellを使用します。ついてご存じ無い方は、以下の記事が役に立つと思いますのでご一読をお願いします。GCEインスタンスの外部IPアドレスを予約します。下記のコマンドを実行してください。--region=asia-northeast1次に以下のコマンドを実行します。--format='value(address)')最後に以下のコマンドを実行し、予約した外部IPアドレスが表示されることを確認してください。$FTP_IP次に、予約した外部IPアドレスを使ってGCEインスタンスを作成します。下記のコマンドを実行してください。インスタンスが作成されます。予約した外部IPアドレスが表示されていることを確認しましょう。次にdefaultネットワークに今回のFTPサーバに対する通信許可を行うファイアウォールルールを追加します。下記のコマンドを実行してください。SSHログインしましょう。以下のコマンドを実行してログインします。その他の方法でSSHログインしても大丈夫です。vsftpdこの時点では、まだFTPサーバのサービスは起動していません。FTPサーバ設定FTPサーバ(vsftpd)の設定ファイル(/etc/vsftpd/vsftpd.conf)に、GCEで必要な設定を追加します。GCEインスタンスの外部IPアドレスを取得します。\http://169.254.169.254/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip)念のため、外部IPアドレスを表示確認します。$FTP_IPインスタンスの外部IPアドレスが表示されたことを確認したら、以下の3つのコマンドを実行し、FTPサーバに必要な設定を追加します。最初に、vsftpdの設定ファイルをバックアップします。/etc/vsftpd/vsftpd.conf.orig次に、既存のvsftpd.confから変更が必要な設定を上書きします。/etc/vsftpd/vsftpd.conf最後に、パッシブFTPの通信で必要な設定を最終行に追記します。/etc/vsftpd/vsftpd.conf念のため、設定ファイルに反映されているかを確認します。/etc/vsftpd/vsftpd.conf差分情報として、以下のように変更差分が表示されていれば問題ありません。※行頭-の行が変更前、行頭+が変更後の設定になります。tcp_wrappers=YES+port_enable=NO+pasv_enable=YES+pasv_min_port=50010+pasv_max_port=50020+pasv_address=**.**.**.**FTPログインユーザ追加FTPはLinuxユーザーアカウントでログインするため、ログインユーザーを追加する必要があります。いうユーザーを追加します。下記のコマンドを実行してユーザー作成してください。password:」が表示されたらFTPユーザーのパスワードを入力します。パスワードは何でもよいですが、インターネットに公開されるためある程度複雑な文字列にすることをお薦めします。FTPサービスの起動を設定します。vsftpdここまでの手順で、FTPサーバを使う準備が整いました。FTPサーバ接続確認FTPサーバに接続するためにはFTPクライアントソフトウェアを用意する必要があります。今回設定したFTPサーバはパッシブFTPのみ許可しているため、パッシブFTPに対応したFTPクライアントである必要があります。(といっても、今日のFTPクライアントはだいたいパッシブFTPに対応していると思います。)今回は例としてCyberduckというクライアントソフトウェアを使用して動作確認しました。私の端末はWindows10のため、Windows端末の場合の例になります。Windows」をクリックします。インストーラダウンロードリンクをクリックします。Windows.」の方をクリックしています。3.「Cyberduck-installer-****.exe」というファイル(****はその時点のCyberduckのバージョン番号)がダウンロードされます。ダウンロード後、インストーラを起動してインストールを実施します。[Install]ボタンを押すと、管理者権限を求めるユーザーアカウント制御が表示されますので、許可してインストールを続行します。4.インストールが完了しますと、Windowsの場合スタートメニューに「Cyberduck」が表示されます。Cortana(タスクバーの検索ボックス)で「Cyberduck」と入力すると見つかります。Cyberduckを起動したら「新規接続」をクリックします。5.新規接続画面が表示されたら、以下の項目を入力し、「接続」ボタンをクリックします。ユーザのパスワード※「非セキュアなFTP接続」という警告が出る場合がありますが、「続ける」を選択してください6.以下のような画面が表示されます。試しにCyberduckのインストーラーをアップロードしてみます。「アップロード」ボタンを押してアップロードファイルを選択するか、または、この画面に直接ファイルをドラッグ&ドロップしてください。7.転送ウィンドウが表示され、アップロードされます。8.転送ウィンドウを閉じてCyberduckのメインウィンドウを表示すると、以下のように無事アップロードされた状態になっていることがわかります。GCEにFTPサーバを構築する際のポイント如何でしたでしょうか?FTPサーバは単純にTCP21番ポートを許可するだけではハマるポイントがあり、以下のような設定を追加で行うことについて紹介しました。パッシブFTPのデータ転送で使用する外部IPアドレスは予約し固定にするTCP21番の他に、パッシブFTPのデータ転送で使用するポートも通信許可するパッシブFTP設定を有効にするために以下のパラメータの設定を行うpasv_min_portpasv_max_portpasv_address上記の設定に注意して構築すれば、あとはLinuxのFTPサーバの構築に関する設定のみになりますので、オンプレ環境のFTPサーバをGCEに移行することが可能になると思います。弊社クラウドエースは、こうしたオンプレ環境からのGCP移行も含め様々な技術をもっております。