Closed9

private-isu を起動する

どぎーどぎー

アカウント準備

  • 過去作成していた AWS アカウントは MFA 認証が通らずログインできなかった
  • 新しいアカウントを作成した(xxx+aws@gmail.com)
どぎーどぎー

AMI イメージから EC2 インスタンスを起動する

  • catatsuy/private-isu > README.md > 起動方法 > AMI の arm64 を使用する
  • 「その他の AMI を閲覧する」で検索バーに AMI ID を入力し、コミュニティ AMI から選択する
  • インスタンスタイプは一旦 README.md に書かれていたもの(c7g.large)を指定する
  • 「セキュリティグループを作成」にチェックする
    • 後でアクセスできる IP アドレスを制限する💡
  • SSH 接続するため、キーペアを作成する
  • pem ファイルがダウンロードされる
どぎーどぎー

SSH 接続

  • ダウンロードされた pem ファイルを ~/.ssh に移動する(ここで保管するのは慣習?)
  • コンソールに表示されたコマンドを叩く
ssh -i "hoge.pem" root@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
> Warning: Identity file kaito_dogi.pem not accessible: No such file or directory.
> 怒られた

ssh -i ~/.ssh/hoge.pem root@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
> Please login as the user "ubuntu" rather than the user "root".
> 怒られた

ssh -i ~/.ssh/hoge.pem ubuntu@ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
> やっとクライアント(MacBook)から接続できた!
どぎーどぎー

セキュリティグループのインバウンドルールに IP アドレスの制限を追加

  • タイプ:HTTP
  • プロトコル:TCP
  • ポート範囲:80
  • リソースタイプ:カスタム
  • ソース:使用している Wi-Fi のグローバル IP アドレス

はじめは MacBook の Wi-Fi 設定から IP アドレスを見ていたのですが、こちらはプライベート IP アドレスとのことで、アプリケーションに到達できませんでした(タイムアウト)

グローバル IP アドレスはこちらの記事で紹介されているコマンドを叩いて分かりました
macでIPアドレスをコマンドで確認する方法 > グローバルIPアドレスを調べる

curl ipecho.net/plain; echo
どぎーどぎー

ここまでの疑問点

  • pem ファイルを ~/.ssh に置く理由
  • プライベート IP とパブリック IP の違い
どぎーどぎー

benchmarker 用の EC2 インスタンスを起動

以下は使い回し

  • セキュリティグループ
  • キーペア

private-isu アプリケーション用の EC2 と benchmarker 用の EC2 で、合計2つの EC2 インスタンスが動いている

どぎーどぎー

benchmarker の実行

benchmarker の CLI で以下を実行する

$ sudo su - isucon
$ /home/isucon/private_isu.git/benchmarker/bin/benchmarker -u /home/isucon/private_isu.git/benchmarker/userdata -t http://<target IP>

💡 linux では "/" から始めると絶対パスになるらしい

少し待つと以下のような結果が出力される

isucon@ip-xxx-xx-xx-xxx:~/private_isu.git/benchmarker$ /home/isucon/private_isu.git/benchmarker/bin/benchmarker -u /home/isucon/private_isu.git/benchmarker/userdata -t http://xx.xx.xx.xx
{"pass":true,"score":421,"success":445,"fail":5,"messages":["リクエストがタイムアウトしました (POST /login)","リクエストがタイムアウトしました (POST /register)"]}
このスクラップは17日前にクローズされました