AWSでスクレイピング環境をつくる① インスタンス作成・ユーザー作成

2018年10月29日 00時10分

前回 Heroku 上でスクレイピングができるように環境を作ったが、再起動と RDB のレコード上限が少なかったので、移行先を考えた。

PaaS とか、クラウドサービスで知ってるものでは、

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

GCP(Google Cloud Platform)

Microsoft Azure

CloudGarage

があったけれど、今回は必要とする環境(Linux + RDB(MySQL))が12 か月間無料枠に入っている AWS を選択した。

全体の流れ

① アカウント登録

② サーバーのインスタンスを建てて

③ 開発者用のユーザーを作って ← 今回はここまで

④ 環境構築

アカウント登録

ここから登録する

2018 10 29 13h29 17

住所とか、クレジットカードの番号とか要求されるけど、適宜入れてください。

サーバーのインスタンスを建てる

今回は python の動作環境を用意したい。ついてに MySQL に値を入れてほしい。

となると利用するサービスは EC2+RDB。どちらも無料枠が 750 時間/月あるから最大 31 日 ×24=744 時間だから、1 台ずつの稼働なら大丈夫だな!

AWS はもちろん Docker に対応しているサービス(Amazon Elastic Container Service)があるから、コンテナを用意して導入するか、Linux 上にコマンドを打ち込んで地道につくるかなんだけど、無料プランに明示されていないような印象をうけて、地道に作った。

今調べると無料対象のEC2(Elastic Compute Cloud)プランを適応って書いてあるから、Docker で環境作った方がサックリいけたけど、まぁ次からはね?

けど省略できるところは環境構築のところくらいだから、参考になれば・・・。

特に希望がなければ、リージョンを東京に変更します。リージョンを変更するとエンドポイントの位置が変わるので、国内アクセスが中心なら国内のリージョンを設定しておくことでデータの遅延が減るとか。

2018 10 29 15h15 50 1

初期設定はオレゴンになっており、途中で移行させるのは手間とお金が発生する場合があるので、東京リージョンで使用できるサービスを選択する場合は、最初に設定しておくことをおすすめします。

Linux サーバーを立てるのには、AWS コンソールから EC2 をクリックして

2018 10 29 13h44 42

ダッシュボード内のインスタンスの作成をクリックして、

2018 10 29 13h45 46

イメージを選択して、

2018 10 29 13h46 19

容量を選択して

2018 10 29 13h46 51

インスタンスの詳細はお好みで

2018 10 29 13h54 09

ストレージについてもお好みで

2018 10 29 13h54 25

タグは追加しておきましょう。設定を付与する際に必要になります。

2018 10 29 13h55 23

セキュリティーグループに関しては、IP アドレスの制御を行う場合(推奨)は、アドレスを設定します。インスタンスのポートも選択できます。

2018 10 29 14h03 27

警告に関しては、全てのアドレスから SSH 接続ができるようになっているので、警告が出ています。設定しておきましょう。

インスタンス生成の確認画面です。

今回は、全てのアドレスから SSH 接続ができるようになっているので、警告が出ています

2018 10 29 13h57 13

よければ作成を押します。

キーペアの生成について聞かれます。

新しく作成しましょう。

2018 10 29 13h57 33

キーペアは、公開鍵認証ののことで、ローカル内に秘密鍵を置き、インスタンスにアクセスする際には秘密鍵を使用しログインすることができます。これにより、鍵を持っていない接続元からはアクセスできないため、セキュリティが向上します。

次、RDB の設定です。

AWS コンソールの全てのサービス内にデータベースがあるので RDB を選択。

2018 10 29 15h06 44

RDB のダッシュボード内のデータベース作成を選択。

2018 10 29 15h07 11

今回は MySQL を選択。

2018 10 29 15h07 58

ユースケースは無料のやつを選択。

2018 10 29 15h08 42

詳細設定は、無料枠にチェックを入れると、枠内の設定でやってくれる。

2018 10 29 15h09 21

その他識別子やユーザー設定をして、次へ

2018 10 29 15h10 13

データベースの設定もして作成!

2018 10 29 15h11 13

成功すると、こんな画面が出るのでインスタンス画面へいく。

2018 10 29 15h11 48

あとは、セキュリティグループを設定する。

EC2 ダッシュボード内にセキュリティグループがあるので、

2018 10 29 15h34 31

セキュリティグループを作成を押して

2018 10 29 15h34 52

必要なところに値を入れて。

今回はインバウンドに MySQL のポートを書いてあげる。

ソースは、接続元、今回は EC2 インスタンスのインスタンス id を記入する。あとは外部からのアクセスを許可したい場合は、カスタムもしくは

2018 10 29 15h38 22 1

開発者用のアカウントの作成

登録アカウントは AWS 内で最高権限を持っている。ただ、抜かれたときのリスクがでかいので、権限を振り分けたアカウントを作る。

個別アカウントはIAMから作れる。ダッシュボード内の個々の IAM ユーザーの追加をクリック。

2018 10 29 14h37 34

アクセス種類については、プログラムによるアクセスと AWS マネジメントコンソールのアクセスにチェックを入れる。

2018 10 29 14h49 42

ユーザーのアクセス権限については、権限を持つグループにユーザーを所属させる方法とユーザーに直接付与する方法があるが、管理の面を考えるとグループを作って所属させる方が後々を考えると楽。

という訳で、グループを作成する。

2018 10 29 14h50 29

グループの名前とポリシーを決定する。今回は AdministratorAccess にする。

権限はグループによって分ける方が推奨。

2018 10 29 14h50 57

確認画面へ

2018 10 29 14h52 00

これで成功が出れば完了。

2018 10 29 14h57 07

ログイン情報等は csv ファイルでダウンロードできるけど、そこはお任せします。

ログイン方法は、AIM ダッシュボード内の IAM ユーザーのサインインリンクからログインすることができる。

2018 10 29 14h58 24

お疲れさまでした。

次は、コマンドライン上からログインして、環境を作っていきましょう。