10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS EC2にPython3をインストールして、SlackBotを動かしてみた

Last updated at Posted at 2018-10-18

#やろうと思ったきっかけ
「今までクラウドなんてさわったことない....でも今携わっているサービスはAWSで運用しているし、インフラ周り勉強しておきたいよね!」

#で、何から勉強すりゃいいのよ
「AWSのサービス多すぎてワカラナイ」

#今プロジェクトで使ってるAWSのサービスを洗い出してみる

  • Elastic Beanstalk
  • EC2
  • RDS(Aurora)
  • Lambda
  • S3
  • Elasticsearch Service
  • CloudFront
  • CloudWatch
  • API Gateway

etc...

とりあえずEC2でサーバ立てるか(ボソッ
コンソール触るのも慣れるっしょ...

#コンソールにログインだ!
スクリーンショット 2018-10-18 14.47.49.png

#「EC2」を検索!
スクリーンショット 2018-10-18 14.50.36.png

#インスタンスの作成
スクリーンショット 2018-10-18 14.53.36.png

#:thinking:
スクリーンショット 2018-10-18 14.55.13.png
Amazon Linux 2 AMI (HVM), SSD Volume Typeをえらびました。

#設定
デフォルトでどんどん進んで最後の画面で「作成」を押すと、インスタンス一覧画面に戻り、一覧に1つインスタンスが表示されます。
※鍵ファイルがどこかのタイミングで生成されます。ssh接続の時に必要なのでなくさないよう注意しましょう。
この時点ではまだ作成が終わっていなくて、インスタンスの状態が「running」になるまで数分待ちます。ボタンをポチポチするだけでインスタンスが作成できました。

#なんか動かしてみたい
このままだとただサーバが立っているだけなので、何か動かしてみようと思います。
ローカルで動かしていたPythonで書いたSlackBotを、このEC2インスタンスに乗せてみます(SlackBotの具体的な実装については割愛)。

#EC2インスタンスにsshで接続
スクリーンショット 2018-10-18 15.06.51.png
一覧で対象のEC2インスタンスを選択、「接続」ボタンを押下すると、コマンドを教えてくれます。
スクリーンショット 2018-10-18 15.08.12.png

#ファイルの権限エラーの場合は下記を実行
chmod 400 [鍵ファイル名]
#接続コマンド
ssh -i [鍵ファイル名] [EC2インスタンスのエンドポイント]

#ログイン
スクリーンショット 2018-10-18 15.16.12.png

#必要なモジュールをインストール
- git
- pyenv(パス通す)

pyenvのデフォルトがPython2系だったので、3.6.2を入れました。
3.6.2をインストールするときに必要なモジュールはエラーのたびに追加しました。

#環境が整ったら

#ssh切断後も動いててほしい
nohup python xxx.py &

start slackbot

のログが出力されてで起動成功。

#動かしてみた
SlackでBotをinviteして話しかけたらレスポンスが帰ってきた!!

ここまで読んでくださりありがとうございました。
機会があったらSlackBot側についても記事を書いてみたいと思います。

10
5
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
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?