#やろうと思ったきっかけ
「今までクラウドなんてさわったことない....でも今携わっているサービスはAWSで運用しているし、インフラ周り勉強しておきたいよね!」
#で、何から勉強すりゃいいのよ
「AWSのサービス多すぎてワカラナイ」
#今プロジェクトで使ってるAWSのサービスを洗い出してみる
- Elastic Beanstalk
- EC2
- RDS(Aurora)
- Lambda
- S3
- Elasticsearch Service
- CloudFront
- CloudWatch
- API Gateway
etc...
とりあえずEC2でサーバ立てるか(ボソッ
コンソール触るのも慣れるっしょ...
#
Amazon Linux 2 AMI (HVM), SSD Volume Typeをえらびました。
#設定
デフォルトでどんどん進んで最後の画面で「作成」を押すと、インスタンス一覧画面に戻り、一覧に1つインスタンスが表示されます。
※鍵ファイルがどこかのタイミングで生成されます。ssh接続の時に必要なのでなくさないよう注意しましょう。
この時点ではまだ作成が終わっていなくて、インスタンスの状態が「running」になるまで数分待ちます。ボタンをポチポチするだけでインスタンスが作成できました。
#なんか動かしてみたい
このままだとただサーバが立っているだけなので、何か動かしてみようと思います。
ローカルで動かしていたPythonで書いたSlackBotを、このEC2インスタンスに乗せてみます(SlackBotの具体的な実装については割愛)。
#EC2インスタンスにsshで接続
一覧で対象のEC2インスタンスを選択、「接続」ボタンを押下すると、コマンドを教えてくれます。
#ファイルの権限エラーの場合は下記を実行
chmod 400 [鍵ファイル名]
#接続コマンド
ssh -i [鍵ファイル名] [EC2インスタンスのエンドポイント]
#必要なモジュールをインストール
- git
- pyenv(パス通す)
pyenvのデフォルトがPython2系だったので、3.6.2を入れました。
3.6.2をインストールするときに必要なモジュールはエラーのたびに追加しました。
#環境が整ったら
#ssh切断後も動いててほしい
nohup python xxx.py &
start slackbot
のログが出力されてで起動成功。
#動かしてみた
SlackでBotをinviteして話しかけたらレスポンスが帰ってきた!!
ここまで読んでくださりありがとうございました。
機会があったらSlackBot側についても記事を書いてみたいと思います。