LoginSignup
0
1

More than 3 years have passed since last update.

sftpとSagemakerまわり自分用調べものメモ

Last updated at Posted at 2020-12-15

S3からSagemakerへsftpでファイル移送したい

できるのかさっぱり分からなかったし、調べものしても分からなかったので調べた結果だけ残しておく。
SageMakerからs3を参照するとかなら簡単なんだけどSageMakerインスタンスにデータをコピーするってできるのかしら。
初心者の初心者による自分向けメモです。

備忘録

sftpの解説から何何攻撃で深堀り

sftp(SSH file transfer protocol)

 ホスト間で対話形式のファイル転送をするときはFTP (File Transfer Protocol)が利用されてきたけど、通信内容が暗号化されないという問題。SFTPを使えばより安全だよ。指定されたホスト(SSHサーバー)にログインして、getとかputとか書くことで色々できるよ。
(参考:https://www.atmarkit.co.jp/ait/articles/1505/20/news004.html)
(参考:https://www.itmedia.co.jp/enterprise/articles/0706/06/news010_2.html)
(参考:https://dezanari.com/ssh-sftp/#toc3)

SSH (Secure Shell)

 初歩の初歩だけど空で説明できないのでメモメモ。ネットワークに接続された機器を遠隔操作し管理するための手段。各種サーバー機器はほとんどの場合操作をする人から離れた場所にあるため、この操作をする人だけが安全にインターネット経由で接続できる手段が必要になる。ログイン認証にはパスワード認証方式と公開鍵認証方式がある。
(参考:https://www.kagoya.jp/howto/rentalserver/ssh/)

Shell

 初歩の初歩だけど同じくメモメモ。人からの入力とコンピュータからの出力をそれぞれに伝える役割。シェルがエラーしてクラッシュした時に、OSの中核であるカーネルへの影響を小さくするなど、貝殻(shell)の役割もある。CUIをベースとするコマンドラインシェルを一般的にさすが、windowsのスタートメニューやタスクバーなどの機能をもつExploererもグラフィカルシェルといってShellの一つ。そうなんだ!!
(参考:https://recruit.cct-inc.co.jp/tecblog/os/shell/)

カーネル(Kernel)

 jupyter notebookとか使ってなんとなくは知ってるけど説明できないのでメモメモ。OSとしてメモリ管理・プロセス管理・スケジューリングと割り込み・デバイス管理などの機能をおつプログラム。カーネルはコンピュータの各コンポーネント (CPU, Memory, Disk, NIC, 等) を制御する、つまり機械を制御するために動作します。一方でシェルは人間が使うことが前提のアプリケーション。なるほどおおおおお
(参考:https://milestone-of-se.nesuke.com/sv-basic/architecture/windows-linux-kernel-and-shell/)

ftp (File Transfer Protocol)

 ファイル移送のためのプロトコル。windowsに標準インストールされているコマンドプロンプトでのFTPクライアントを使えばラクラク操作可能。サーバー側の設定は必要だけど、ftp 192.168.0.1みたいなことを書くことで接続可能。
(参考:https://www.infraexpert.com/study/tcpip22.5.html)

192.168.x.x

 よく見るけどなんでよく見るんだっけこれ、となりかかったのでメモメモ。192.168.0.0~192.168.255.255はプライベート・アドレス領域だよ。全部グローバルアドレスにするとIPアドレス足らな過ぎてやばいよ。
(参考:https://xtech.nikkei.com/it/free/NNW/NETHOT/20040624/146335/)

SageMaker周り

AWS Transfer Family

 Amazon S3 との間で直接ファイル転送を実行できるサービスSecure File Transfer Protocol (SFTP)、File Transfer Protocol over SSL (FTPS)、および File Transfer Protocol (FTP) をサポート。既存の認証システムと連携し、Amazon Route 53 を使用した DNS ルーティングを提供することにより、ファイル転送ワークフローを AWS にシームレスに移行できるようにします。
 (参考:https://aws.amazon.com/jp/aws-transfer-family/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc)
(参考:https://dev.classmethod.jp/articles/aws-transfer-for-ftp-and-ftps-in-addition-to-existing-sftp/)

AWS CLIからSagemakerを触る

 boto3を使わずともpythonで書けるらしい。知らなんだ
(参考:https://qiita.com/leomaro7/items/a524121f366764819a98)
(参考:https://qiita.com/KC_NN/items/fc4e39e7b5bd36453a0b)

AWS Transfer Familyを使わずともAWS CLIで出来る説

 pythonのsagemakerパッケージを使えば、read_csvをした後にローカルで保存すれば実質上の移送はできそう。画像データとかもできるのかしら?
 (参考:https://www.it-swarm-ja.tech/ja/python/s3%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92aws-sagemaker%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%81%AB%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B/836580572/)

SagemakerのVPC設定周り

 デフォルトでもSageMaker Service ManagedのVPCに起動するの知らなかった。VPCのカスタムとインターネット接続の有無とで構成が変わるらしい。 
 (参考:https://dev.classmethod.jp/articles/sagemaker-network-vpc/)
 (参考:https://dev.classmethod.jp/articles/sagemaker-restrict-access/)

ENI (Elastic Network Interface)

 ENIは、物理的な環境におけるNIC(Network Interface Card)のことです。NICの場合は、サーバーに複数枚挿すことで、サーバーが担う複数の役割に応じてIPアドレスを複数持たせたり、異なるセグメント間で1台のサーバーを動作させたりすることができました。ネットワークのインターフェースと聞くだけで何となく納得感。
 (参考:https://business.ntt-east.co.jp/content/cloudsolution/column-14.html#:~:text=ENI%E3%81%AF%E3%80%81%E7%89%A9%E7%90%86%E7%9A%84%E3%81%AA,Interface%20Card%EF%BC%89%E3%81%AE%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82&text=NIC%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%A6,%E7%89%A9%E7%90%86%E7%9A%84%E3%81%AA%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%A7%E3%81%99%E3%80%82)

所感

 英語略字多すぎィっ
 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1