AWS にて EC2 + Amazon Linux 2023 起動からターミナルで SSH ログインするまで

環境

  • macOS 14

セキュリティグループの作成

  • 「EC2」→「ネットワーク&セキュリティ」→「セキュリティグループ」→「セキュリティグループを作成」クリック
    • セキュリティグループ名
      • 適当
    • 説明
      • 適当
    • VPC
    • インバウンドルール
      • その1
        • タイプ:HTTP
        • ポート範囲:80
        • ソース:IPv4 0.0.0.0/0
      • その2
        • タイプ:HTTPS
        • ポート範囲:443
        • ソース:IPv4 0.0.0.0/0
      • その3
        • タイプ:SSH
        • ポート範囲:22
        • ソース:IPv4 0.0.0.0/0
    • アウトバウンドルール
      • タイプ:すべてのトラフィック
      • ポート範囲:すべて
      • ソース:IPv4 0.0.0.0/0

サブネットの作成

EC2 インスタンスを立ち上げる

  • EC2 → インスタンス → 「インスタンスを起動」クリック
  • Launch an instance
    • 名前とタグ
      • 名前:適当
    • アプリケーションおよび OS イメージ (Amazon マシンイメージ)
      • クイックスタート
        • Amazon マシンイメージ (AMI):Amazon Linux 2023 AMI
      • アーキテクチャ:64ビット(x86)
    • インスタンスタイプ
      • インスタンスタイプ:t2.nano (テストなので安いサーバー)
    • キーペア (ログイン)
      • キーペア:事前に作成してなければ作成して選択(RSA, .pem)
        • pem ファイルを DL して保管しておく
    • ネットワーク設定
      • 「編集」クリック
      • VPC:該当の VPC を選択。作ってなかったら作成
      • サブネット:事前に作成したサブネットを選択
      • パブリック IP の自動割り当て:無効化
      • ファイアウォール(セキュリティグループ):既存のセキュリティグループを選択する
      • 共通のセキュリティグループ:事前に作成したセキュリティグループを選択
        • からの SSH トラフィックを許可する:チェック
        • インターネットからの HTTPs トラフィックを許可する:チェック
        • インターネットからの HTTP トラフィックを許可する:チェック
    • ストレージを設定
      • EBS ボリューム
        • サイズ(GiB):8
        • ボリュームタイプ:gp3
        • IOPS:3000
        • 終了時に削除:No
        • 暗号化済み:No
        • スループット:125
    • 高度な詳細
      • 難しいことはしない予定なのでスルー
    • 概要
      • インスタンス数:1
    • 「インスタンスの起動」クリック

SSH ログイン

EC2 → インスタンス → SSH ログインしたいインスタンスを選択 → 「インスタンスに接続」クリック -> SSH クライアント
にログイン方法書いてある。

今回は「 ssh pn.test 」と叩けばログインできるようにする。

DL した pem ファイルを /Users/アカウント に移動して権限を変更する

  • ダウンロードに DL した pem ファイルがある想定
  • ファイル名を ec2-test.pem にしている想定
  • SSH クライアントには pem ファイルを 400 にすると書いてあるけど 600 でも動く
# or cd /Users/自分のアカウント名
$ cd
$ mv Downloads/ec2-test.pem .ssh/
$ sudo chmod 600 .ssh/ec2-test.pem

config 編集

  • AMI のデフォルトユーザー名は ec2-user
$ vi .ssh/config

Host pn.test
  # もしくは Hostname xx.xx.xxx.xxx
  Hostname ec2-xx-xx-xxx-xxx.ap-xxxxxxxx-1.compute.amazonaws.com
  Port 22
  User ec2-user
  IdentityFile ~/.ssh/ec2-test.pem

確認

$ ssh pn.test

普通に ssh 接続する場合

# その1
$ ssh -i "~/.ssh/ec2-test.pem" ec2-user@ec2-xx-xx-xxx-xxx.ap-xxxxxxxx-1.compute.amazonaws.com

# その2
$ ssh -i "~/.ssh/ec2-test.pem" ec2-user@xx.xx.xxx.xxx