2019-10-15 公開
遅ればせながらAWS(Amazon Web Services)を触り始めたので、その際に参考にさせていただいた記事やドキュメントをメモしておく。
データ分析に使用するので、ひとまずの目的は以下の4つ。
- 概要・全体像把握
- インスタンス立ち上げ・GPUを用いた深層学習
- AWS CLI使用(コマンドラインからのインスタンス開始・停止)
- Jupyter Notebook使用
AWS概要・全体像把握
AWSとは何か、どんなサービスがあるのか
見るべきもの、やるべきこと
各論、トピック
VPCについてなど
読みやすい連載
興味のあるサービスの概要をぱっと掴むのに良い
マンガ連載で分かりやすい。やる気も出る
AWSでGPUを用いた深層学習
インスタンス立ち上げからkerasのサンプルコード実行まで
AWS CLI使用
コマンドラインからインスタンスを開始・停止したい
AWS CLIのインストール
公式ドキュメント
CLIでのインスタンス起動・停止
上の公式ドキュメントでは分かりにくかったインスタンス起動・停止のコマンドについて
AWSでのJupyter Notebook使用
Jupyter Notebookへの接続方法
公式ドキュメントが分かりやすい
SSHでポートフォワーディングする手軽な方法
セキュリティ
Jupyter Notebook上のWeb UI内容はAWS上での処理結果がローカルPCに送られてきたものであるため、「データ等の通信内容が丸見えなのでは」と心配になる。
先述のSSHでのポートフォワーディングであれば、Web UIとの通信もSSHなのでリスクは下げられるとのこと。*1
今回は SSH Port Forwarding を使って Web UI をインターネットに晒すことなく使う方法について書く。 このやり方ならリモートサーバに SSH でログインしたユーザだけが Jupyter Notebook を使えるようになる。 また、Web UI との通信も SSH 経由になるので HTTP over SSL/TLS (HTTPS) を使わなくても盗聴のリスクを下げられる。(引用元: リモートサーバの Jupyter Notebook を SSH Port Forwarding 経由で使う - CUBE SUGAR CONTAINER)
接続を許可するポートを絞るといった対策も
SSH Port Forwarding を使うと、インスタンスのポートをインターネットに晒すことなく利用できる。(引用元: Google Compute Engine で SSH Port Forwarding する - CUBE SUGAR CONTAINER)
こちらはGCPについて。参考にメモしておく。
おわりに
以上で最低限の知識と環境は整った。
データ分析を行ううえでは他にも、必要なパッケージやJupyter Notebook拡張機能のインストール等が必要だが、普段の環境と同じようにやれば良い。
関連
.pyファイルの自動保存
目次表示
関連ツイートのスレッド
今更だけどAWSを触り始めた。
— こここ🍀 (@kokokocococo555) October 14, 2019
触りつつお勉強をと思い、ひとまずWeb上の記事を読んでいる。
ひとまずやることは
・概要・全体像把握
・GPUを用いたDL
・AWS CLI使用
・Jupyter Notebook使用
*1:SSHは通信内容が暗号化されているはず