AWSでEC2を立てて、ターミナルでローカルからSSH接続する方法について説明します。
環境
OS: Mac OSX
大まかな手順
- EC2インスタンス作成(無料枠)
- アクセス鍵作成
- ローカルからSSH接続
EC2とはAWSで提供されているクラウドサービスの1つで、仮想サーバーを利用できます。
1. EC2インスタンス作成(無料枠)
ステップ 1: AMIの選択
EC2のページを開き、ダッシュボード画面から「インスタンスを起動」を選択します。
今回は、無料枠の[Amazon Linux 2 AMI (HVM), SSD Volume Type]を利用します。
赤枠の選択ボタンをクリックします。
ステップ 2: インスタンスタイプの選択
[t2.micro]を選び、[次のステップ:インスタンスの詳細の設定]をクリックします。
ステップ 3: インスタンスの詳細の設定
特に変更の必要なく、[次のステップ:ストレージの追加]をクリックします。
ステップ 4: ストレージの追加
30GBまで無料枠みたいですが、その範囲内で必要な量で設定します。
今回はとりあえず、8GiBにして、[次のステップ:タグの追加]をクリックします。
ステップ 5: タグの追加
タグはなくてもいいですが、複数プロジェクトを作成している場合や複数インスタンスを利用する場合はあると便利です。
[次のステップ:セキュリティーグループの設定]をクリックします。
ステップ 6: セキュリティグループの設定
接続設定します。今回は個人情報を含まないサーバーを立ち上げるので、0.0.0.0で問題ありません。
[ルールの追加]ボタンから、SSH, HTTP, HTTPSを選んで追加し、[確認と作成]をクリックします。
ステップ 7: インスタンスの作成と確認
内容を一応確認して、設定が正しくできていれば[起動]をクリックします。
[既存のキーペアを選択するか、新しいキーペアを作成します。]ウィンドウが立ち上がったら、
①:「新しいキーペアの作成」を選択→②:わかりやすいキーペア名を入力→③→④の順でクリックしてインスタンスを作成します。
すると作成ステータスの画面が表示されるので、[インスタンスの表示]をクリック
作成されたインスタンスの状態が表示されるので、
青文字のインスタンスIDをクリックしてインスタンスの詳細を開きます。
インスタンスへの接続方法が表示されます。
ダウンロードした鍵ファイル(myaccesskey.pem)の保存場所で、赤枠の2つのコマンドを実行すればSSHでの接続は完了です。
$ chmod 400 myaccesskey.pem
$ ssh -i "myaccesskey.pem" ec2-user@ec2-00-000-000-000.ap-northeast-1.compute.amazonaws.com
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
2 package(s) needed for security, out of 5 available
Run "sudo yum update" to apply all updates.
(続き)
「sudo yum update
を実行してください」と表示されているので、sudo yum update
を入力してEnter
Run "sudo yum update" to apply all updates.
[ec2-user@ip- ~]$ sudo yum update
(続き)
[ec2-user@ip- ~]$ sudo yum update
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ chrony.x86_64 0:3.2-1.amzn2.0.5 を 更新
---> パッケージ chrony.x86_64 0:3.5.1-1.amzn2.0.1 を アップデート
--> 依存性の処理をしています: libnettle.so.4()(64bit) のパッケージ: chrony-3.5.1-1.amzn2.0.1.x86_64
---> パッケージ cloud-init.noarch 0:19.3-3.amzn2 を 更新
---> パッケージ cloud-init.noarch 0:19.3-4.amzn2 を アップデート
---> パッケージ p11-kit.x86_64 0:0.23.21-2.amzn2.0.1 を 更新
---> パッケージ p11-kit.x86_64 0:0.23.22-1.amzn2.0.1 を アップデート
---> パッケージ p11-kit-trust.x86_64 0:0.23.21-2.amzn2.0.1 を 更新
---> パッケージ p11-kit-trust.x86_64 0:0.23.22-1.amzn2.0.1 を アップデート
---> パッケージ tzdata.noarch 0:2020a-1.amzn2 を 更新
---> パッケージ tzdata.noarch 0:2020d-2.amzn2 を アップデート
--> トランザクションの確認を実行しています。
---> パッケージ nettle.x86_64 0:2.7.1-8.amzn2.0.2 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
更新します:
chrony x86_64 3.5.1-1.amzn2.0.1 amzn2-core 258 k
cloud-init noarch 19.3-4.amzn2 amzn2-core 924 k
p11-kit x86_64 0.23.22-1.amzn2.0.1 amzn2-core 321 k
p11-kit-trust x86_64 0.23.22-1.amzn2.0.1 amzn2-core 130 k
tzdata noarch 2020d-2.amzn2 amzn2-core 481 k
依存性関連でのインストールをします:
nettle x86_64 2.7.1-8.amzn2.0.2 amzn2-core 329 k
トランザクションの要約
================================================================================
インストール ( 1 個の依存関係のパッケージ)
更新 5 パッケージ
総ダウンロード容量: 2.4 M
Is this ok [y/d/N]:
コレでアップデートしていいか確認されたので、y
を入力してEnter
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/6): cloud-init-19.3-4.amzn2.noarch.rpm | 924 kB 00:00:00
(2/6): chrony-3.5.1-1.amzn2.0.1.x86_64.rpm | 258 kB 00:00:00
(3/6): nettle-2.7.1-8.amzn2.0.2.x86_64.rpm | 329 kB 00:00:00
(4/6): p11-kit-0.23.22-1.amzn2.0.1.x86_64.rpm | 321 kB 00:00:00
(5/6): p11-kit-trust-0.23.22-1.amzn2.0.1.x86_64.rpm | 130 kB 00:00:00
(6/6): tzdata-2020d-2.amzn2.noarch.rpm | 481 kB 00:00:00
----------------------------------------------------------------------------------------
合計 10 MB/s | 2.4 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
更新します : p11-kit-0.23.22-1.amzn2.0.1.x86_64 1/11
インストール中 : nettle-2.7.1-8.amzn2.0.2.x86_64 2/11
更新します : chrony-3.5.1-1.amzn2.0.1.x86_64 3/11
更新します : p11-kit-trust-0.23.22-1.amzn2.0.1.x86_64 4/11
更新します : tzdata-2020d-2.amzn2.noarch 5/11
更新します : cloud-init-19.3-4.amzn2.noarch 6/11
整理中 : p11-kit-trust-0.23.21-2.amzn2.0.1.x86_64 7/11
整理中 : tzdata-2020a-1.amzn2.noarch 8/11
整理中 : cloud-init-19.3-3.amzn2.noarch 9/11
整理中 : p11-kit-0.23.21-2.amzn2.0.1.x86_64 10/11
整理中 : chrony-3.2-1.amzn2.0.5.x86_64 11/11
検証中 : p11-kit-trust-0.23.22-1.amzn2.0.1.x86_64 1/11
検証中 : nettle-2.7.1-8.amzn2.0.2.x86_64 2/11
検証中 : p11-kit-0.23.22-1.amzn2.0.1.x86_64 3/11
検証中 : cloud-init-19.3-4.amzn2.noarch 4/11
検証中 : tzdata-2020d-2.amzn2.noarch 5/11
検証中 : chrony-3.5.1-1.amzn2.0.1.x86_64 6/11
検証中 : tzdata-2020a-1.amzn2.noarch 7/11
検証中 : p11-kit-trust-0.23.21-2.amzn2.0.1.x86_64 8/11
検証中 : p11-kit-0.23.21-2.amzn2.0.1.x86_64 9/11
検証中 : chrony-3.2-1.amzn2.0.5.x86_64 10/11
検証中 : cloud-init-19.3-3.amzn2.noarch 11/11
依存性関連をインストールしました:
nettle.x86_64 0:2.7.1-8.amzn2.0.2
更新:
chrony.x86_64 0:3.5.1-1.amzn2.0.1 cloud-init.noarch 0:19.3-4.amzn2
p11-kit.x86_64 0:0.23.22-1.amzn2.0.1 p11-kit-trust.x86_64 0:0.23.22-1.amzn2.0.1
tzdata.noarch 0:2020d-2.amzn2
完了しました!
コレでSSHでEC2サーバーへの接続は完了です。試しに ls -a
コマンドを実行してみると、最小限のファイルだけあることが確認できました。
[ec2-user@ip- ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .ssh