Dockerで分析環境を構築しよう⑥



クラウド上で分析環境を構築して、本格的にデータ分析ができるようになりたいよ!

このシリーズでは、データサイエンス初心者でもできるようにDocker(ドッカー)を用いて分析環境を構築していきます!

このシリーズを読むことで、Dockerとはなにかを理解できるだけなく、Dockerによる分析環境ができるようになります!

このシリーズを読むとわかること

  • Dockerとはなにか理解する
  • 基本的なDockerコマンドを学ぶことができる
  • Dockerでjupyternotebookを構築し、株価を描画することができる
  • クラウド上でDockerによる分析環境構築し株価を分析することができる

Docker(を含めたインフラ分野の知識)はデータサイエンティストではもはや実務では必須の知識です。

今回の記事では以下のことを扱います!

  • クラウドサービスとはなにか簡単に理解する
  • クラウドで分析環境を作成し、分析環境の準備をする

Dockerは、現在データサイエンスを専攻している大学生は授業で習っており、今すぐにでも覚えるべき知識です。

それでは、Dockerを学んでいきましょう!

※今回の記事はMacOSでかつバージョンが10.14以上(CtalinaまたはMojave)を想定しています。

WineyTradeの記事にでてくるコードはLINE@にて配布をしております!
LINEのメッセージ欄に各記事のキーワードをお送りいただければ、ダウンロードリンクを送付いたします!

ソースコードを見逃したくない方は、今のうちにLINE登録をしておいてくださいね!

友だち追加

クラウドサービスとは理解しよう!

今まで私たちはdockerコマンドやdockerコマンドオプション、そしてdocker-composeを学んでいきました。

その中で今回は、今までのものを応用し、クラウド上でDockerによる分析環境構築し株価を分析することができるようにしていきます。

クラウド上で分析環境を構築することで、ビックデータを分析するための処理時間が長い場合などに、クラウドのスペックを変えるなどし処理性能を上げ効率的な分析ができるようになります。

ぜひクラウド上での分析環境構築をマスターし、データ分析をするための環境のプロフェッショナルになりましょう!

クラウドサービスとは

ここでは、クラウド上で構築するための前知識として、まずそもそもクラウドサービスとはなにか簡単にみていきます!

クラウドサービスとは

クラウドサービスは個人の PC 上のソフトウェアやデータをクラウド(インターネッ ト)上で展開されるサービスのこと。

大手クラウドサービスには Google の提供する GCP(Google Cloud Platform)、 Amazon の提供する AWS(Amazon Web Service)、Microsoft の提供する Azure などがあります。

上記クラウドサービスは Paas(Platform as a service)であるため、面倒なメンテ ナンスを気にせずに開発を行えることが特長です。

Paasとは

ソフトウェアの実行環境をインターネット上のサービスとして遠隔から利用できるようにしたもの。

クラウドサービスを使用するとそのクラウドサー ビス上で提供される様々な機能を有料で使用することが可能になります。

クラウドサービスを利用するメリット

クラウドサービスを利用するメリットとして、主に2つがあげられます。

  1. サーバーのメンテナンスを気にせず開発や分析ができる
  2. サーバーの処理性能などを簡単に変更できる

ひとつずつみていきましょう。

1つ目に関しては、自分でサーバーを持たなくてよいため、以前のようなメンテナンスを考える手間がなくなります。

例えば、ローカルPCより性能が高い環境を自分で作る場合、以前は自社でサーバーを持つこと(オンプレミス)が想定されますが、この場合導入時やその他定期点検などメンテナンスを考える要素が多いです。

しかし、クラウドサービスなら10分ほどあれば環境をつくり、メンテナンスを気にせず気軽に試すことが可能です。

2つ目に関しては、クラウドサービスで利用するサーバーの処理性能などを簡単に変更できる点です。

例えば、ビックデータを解析をするさい、スペックによっては処理時間が一週間以上かかることもざらです。

これに対し、クラウドサービスを利用しスペックを上げることで、短時間で処理が済むようになります。

また、分析とは違いますが、クラウドサービスでアプリケーションを運用していたときに、急にアクセスが集中した際の負荷の分散などもかなり柔軟にできます。

このように、変更のしやすさもメリットとして挙げられます。

 

それでは、言葉で説明するだけでなく、実際にクラウドサービスを利用していきましょう!



クラウドを利用し分析環境を準備しよう!

では長い道のりになりますが、クラウドを利用し、分析環境を構築する準備をします。

今回のクラウドサービスを利用した分析環境の構築は以下の流れです。

※難しい言葉が乱立していますが、用語等にはその都度説明します

  1. AWS上でEC2をホスティングし起動させる(その後停止させる)
  2. ES2にSSH接続をし、dockerやgitコマンドをEC2にインストールし、分析環境として使うDockerfileをクローンする
  3. AWS上でjupyternotebookを起動し、株価の分析ができることを確認する
  4. 自分のPCからAWS上にファイルを送受信し、分析データをやりとりする

今回の記事では①までをおこなっていきます。

それでは、クラウドサービスを利用した分析環境の準備をおこなっていきましょう!

AWSに登録をする(登録してない方用)

今回クラウドサービスを利用するにあたってAWSを使用します!

AWS(アマゾンウェブサービス)とは

Aamazon社が提供するクラウドサービス。

AWSは、現在クラウドサービスの中で最もシェア率がたかく、それに伴いAWSに関する記事が豊富なので今回採用しました。

ほかにも分析環境として利用するクラウドサービスとして、DigitalOceanGCPなどもデータサイエンティストは使っています。

では早速アカウントの登録をしていきます。(すでにアカウントがある方は飛ばしてください。)

アカウント登録にあたり、住所やクレジットカードなどの情報をいれるので取り扱いに注意しましょう!

また、AWSで分析環境を起動しているときは、動かし続けると無料の範囲を超えて課金されるのでこちらも注意しましょう!(起動/停止するタイミングは記事内にも記載しますが、AWS使用にあたって発生した損失/損害について当サイトは一切の責任を負いかねます。)

怖いひとは記事をみるだけでも大丈夫だよ!!

AWS Console – Signup (amazon.com)より、アカウント登録ページに移動し、説明に従って5分ほどの登録手続きをしてください。

登録が済んだら次にすすみます。

AWS上でEC2をホスティングし起動させる

次にAWSのサービスの一つである、EC2(Elastic compute cloud)をホスティングし起動を確認します。

EC2(Elastic compute cloud)とは

AWSが提供するサービスの一つで、インスタンスと呼ばれる仮想コンピューティング環境が使えるモノ。(インターネット上でPCが使えるような感じです。)

ホスティングとは

Webサービスを一般公開などをするときに、サーバーを設置すること

最終的には、EC2でつくられるインスタンス上でdockerをもとにjyupyternotebookを構築していきます!

インスタンスとは

AWSのEC2によってつくられる、仮想のコンピューティング環境。

それではEC2を作成します!

まずはAWSのマネジメントコンソールを開きます!そして、「インスタンスを起動します」を押します!

その後、EC2のインスタンスのメニューで「インスタンスを起動します」を押します!

次にAMIを選択します!ここではAmazonLinux2を選択します!

AMI(アマゾンマシンイメージ)とは

EC2でインスタンスを作成する際のベースとなる金型のようなもの。

そして、インスタンスタイプを選択します!ここでは、無料枠のt2.microを選択します!

インスタンスタイプとは

EC2でインスタンスを作成する際のスペックのこと。m系だと汎用型 r系だとメモリ特化型、g系だとGPU特化型などそれぞれ特徴がある。

その後、VPCやサブネットなど、EC2でインスタンスを作成するために必要なネットワーク周りの設定をします。

ここに関してはネットワークの前提知識が必要になるので割愛します。

ここでは、デフォルトVPC(なにも触らず)のまま次に進みます。

VPCとは

AWSが提供する仮想ネットワークのこと

サブネットとは

VPCで割り当てられた大きなアドレスブロックを組織内で管理しやすい大きさに分割したもの。

その後、EBSの画面になりますが、ここもデフォルト(8GB)のままで進みます。

EBSとは

インスタンスで利用されるストレージ(データの保管場所)のこと。

その後、タグを設定します。

なくても一応インスタンスは作成できますが、管理がしやすくなるので名前を適当につけて次に進みます。

その後、ルートテーブルの設定をします。

ルートテーブルとは

アクセスを制限するための管理表。(ファイアウォール)

こちらは、下記のように設定します。

  1. SSH (port 22)  ・・・MyIP(現在利用している自分のipアドレスからのみ接続可能)
  2. HTTP(port 80)・・・Anywhere(どこからでも接続可能)
  3. HTTPS(port 443)・・・Anywhere(どこからでも接続可能)

詳しい説明は割愛しますが、アクセスを制限させてセキュリティを強化させています。

次に進みます。

その後、最終確認をし、ボタンを押します。

すると、キーペアの作成が表示されます。

キーペアとは

今後SSH接続でインスタンスにアクセスするために、ローカルのキーとAWS上のキーを照らし合わせてアクセス管理をすることで、セキュリティを強くするもの。

キーペアを新規作成します。(キーペア名はなんでもOKです)

その後、キーペアをダウンロードします。

キーペアをダウンロードするとローカルPCにあることがわかります。

今回は、ターミナルを起動したときにすぐキーが使えるように、ダウンロードしたキーを移動させます。

キーを移動したら、インスタンスを作成し起動させます。

インスタンスのメニュー画面に行くとインスタンスが起動していることがわかります。

ただ、このままで放置すると無料枠から外れてお金が発生する可能性があるので、

インスタンスを停止させます!!(※Stop Instanceをクリックしてください)

停止させることができました!



まとめ

今回は、

  • クラウドサービスとはなにか簡単に理解する
  • クラウドで分析環境を作成し、分析環境の準備をする

といった流れをおこなっていきました!

次回は、実際にEC2のインスタンスに接続し、jyupyternotebookを立ち上げてみます!

クラウド上で分析できるようになることで、分析するための処理時間が長い場合はクラウドのスペックを変えるなどし処理性能を上げ効率的な分析ができるようになります!

Dockerのシリーズを通し、データサイエンティストへの一歩を歩みましょう!

WineyTradeの記事にでてくるコードはLINE@にて配布をしております!
ソースコードを見逃したくない方は、今のうちにLINE登録をしておいてくださいね!

友だち追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA