手始めにAWSのサービス検索欄から「EC2」と検索し「EC2」を選択します。
##インスタンスを作成
画面左から「インスタンス」を選択して、その後「インスタンスの起動」を選択してください
1.AMIの選択
「Amazon Linux 2 AMI (HVM), SSD Volume Type」「64 ビット(x86)」を選択します。
2.インスタンスタイプの選択
無料利用枠(1年未満のユーザー)の「t2.micro」を選択
3.インスタンスの設定
インスタンス数:「1」
購入のオプション:「チェックなし」
ネットワーク:「VPC_for_アプリ名」
サブネット:「アプリ名_Subnet_1a」
自動割り当てパブリック IP:「サブネット設定を使用(無効)」
配置グループ:「チェックなし」
キャパシティーの予約:「開く」
ドメイン結合ディレクトリ:「ディレクトリなし」
IAM ロール:「なし」
シャットダウン動作:「停止」
停止 - 休止動作:「チェックなし」
終了保護の有効化:「チェック入れる」
モニタリング:「チェックなし」
テナンシー:「共有」
Elastic Inference:「チェックなし」
クレジット仕様:「チェックなし」
ファイルシステム:「空白」
4.ストレージの追加
初期設定で次へ
5.タグの追加
キー:「Name」
値:「アプリ名-instance」
6.セキュリティグループの設定
セキュリティグループの割り当て:「既存のセキュリティグループを選択する」
以前作成した「アプリ名-SecurityGroup」にチェック
「確認と作成」を選択する
「起動」を選択
すると「既存のキーペアを選択するか、新しいキーペアを作成します」というポップアップが表示されます。
選択ボックスから「新しいキーペアの作成」を選択し
空白のキーペア名に「アプリ名」を入力
「キーペアのダウンロード」を選択
すると「アプリ名.pem」がダウンロードされます。
そして「確認と作成」を選択します。
Elastic IPを作成して紐付ける
画面左から「Elastic IP」を選択して、「Elastic IP アドレスの割り当て」を選択
以下の様に記述 ※初期設定のままで良い
ネットワークボーダーグループ: 「ap-northeast-1」
IPv4 アドレスプール:「Amazon の IPv4 アドレスプール」
「割り当て」を選択
次にElastic IPをインスタンスに紐付けします。
先ほど作ったElastic IPを選択して「アクション」ボタンをクリックします。
その後「アドレスの関連付け」を選択します。
以下の様に記述
リソースタイプ:「インスタンス」
インスタンス:「アプリ名-instance」
プライベート IP:クリックして表示されるIPを選択
再関連付け:チェック入れる
「関連付ける」をクリックしてください
##EC2にログインする準備
作成したインスタンスが起動している事を確認します。
「インスタンス」をクリックして作成したインスタンスがrunningになっていることを確認する
ここでElastic IPアドレスをメモしておいてください
EC2にログインするために、ここからはコンソール画面を使います。
下準備としてこれらをインストールします。
- python
- pip
- awscli ※awsをPCのコンソール上から扱うためのもの
ターミナルで以下のコマンドを入力します
brew install python
sudo easy_install pip
sudo easy_install nose
sudo easy_install tornado
sudo -H pip install awscli --upgrade --ignore-installed six
これからEC2インスタンスへのログイン設定を行います。
AWSではec2-userという名前のユーザが用意されていてデフォルトになっています。
以下の手順で進めます。
1 . ec2-userでEC2へのログイン
2 . 新たなユーザを作成
3 . 作成したユーザにec2-userと同様の権限を与える
4 . 新たなユーザで再度ログインする
##キーペアの移動、権限の変更
pemファイルを~/.ssh/へ移動させる
$ mkdir .ssh/
$ mv {ダウンロードしたディレクリのパス}/アプリ名.pem .ssh/
キーペアの権限を変更してアクセス権を与えます。
$ cd .ssh/
$ cdmod 600 アプリ名.pem
EC2へログイン
公開鍵を利用してec2-userとしてログインします。
先ほどメモしたElastic IPを使います。
$ ssh -i アプリ名.pem ec2-user@{Elastic IP}
yesかnoを聞かれたら、yesと入力してください
これでログイン成功です。
新規ユーザー登録
[ec2-user@ip-10-0-0-246 ~]$ sudo adduser ユーザ名
新規ユーザのパスワード登録
[ec2-user@ip-10-0-0-246 ~]$ sudo passwd ユーザ名
作成したユーザーにマスター権限を与える
viを使って設定を編集します。visudo
コマンドを使って行います。
※viでファイルを指定しても良いがvisudo
の方が簡単
[ec2-user@ip-10-0-0-246 ~]$ sudo visudo
ファイルの中で以下の様になっている部分を探し作成したユーザに権限を与える記述をします。
#ここを探す
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
ユーザ名 ALL=(ALL) ALL ←ここを追加
shift
+ZZで保存して終了します。
##ユーザーの切り替え
[ec2-user@ip-10-0-0-246 ~]$ sudo su - ユーザ名
[ユーザ名@ip-10-0-0-246 ~]
##SSH通信でインスタンスへログイン
続いてSSH通信を使ってインスタンスにログインします。
以下の流れで行います。
1 . ローカルで鍵の生成
2 . その鍵をどの通信の認証時に使用するか等を設定
3 . サーバーとの認証処理を行う。
4 . 実際に新ユーザーでログイン
###1.ローカルで鍵の作成
ローカルで作業するので新しくターミナルを開きます。
$ cd .ssh
$ ssh-keygen -t rsa
------------
以下のメッセージが表示されたら、「アプリ名_key_rsa」と入力
Enter file in which to save the key ():{アプリ名}_key_rsa
そのままEnter ※passは指定しない
Enter passphrase (empty for no passphrase):
そのままEnter
Enter same passphrase again:
これで「アプリ名_key_rsa」と「アプリ名_key_rsa.pub」が生成される
$ ls
アプリ名_key_rsa アプリ名_key_rsa.pub
##2.鍵をどの通信の認証時に使用するか等を設定
viで設定ファイルを編集する
$ vi config
以下の様に編集する
Host アプリ名_key_rsa
Hostname Elastic IP #自分の設定に合わせる
Port 22
User ユーザ名 #作成したのユーザー名
IdentityFile ~/.ssh/アプリ名_key_rsa #秘密鍵の設定
shift
+ ZZ
で保存して終了
鍵の中身をターミナル上に出力、ssh-asa〜localまで全文コピーしておく
$ cat アプリ名_key_rsa.pub
ssh-rsa ~
~
~
~.local
###3.サーバーとの認証処理
次はサーバー側で作業をします。
サーバーにログインしていたターミナルに移ります。
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ vi authorized_keys
ここで「アプリ名_key_rsa.pub」でコピーしたssh-rsa ~~~ .localを貼り付けます。
ssh-rsa ~
~
~
~.local
shift
+ ZZ
で保存して終了します。
以下を入力して新ユーザーに権限を与えます
$ chmod 600 authorized_keys
これで権限が付与されました。
##新ユーザでログインする
$ ssh アプリ名_key_rsa
ログインできればユーザー設定は終了です。
##参考