LoginSignup
0
0

More than 3 years have passed since last update.

⑤AWS仮想サーバを利用する、AWSアカウント作成 + EC2インスタンス作成(2020.4時点)

Last updated at Posted at 2020-04-17

ローカルでDocker、docker-composeを使用して開発環境を整えてきました。

これから、Docker+Railsアプリを本番環境に上げていきたいと考えています。
今回は、まず、AWSサービスを利用開始する+試しにEC2インスタンス作成してSSHログインする過程を記事にします。

おさらい

ローカルRails+MYSQLアプリ開発中に、Dockerを実装する内容です。
[過去の記事]
①Dockerを初めて導入して基本操作する (2020.4時点)
②Dockerを初めて導入してRails sする (2020.4時点)
③Docker MYSQLにデモデータ(seed_fu)を投入する(2020.4時点)
④ローカルDocker環境でデータ永続化、entrypointでseed_fuをやり直しする(2020.4.時点)

前提

・クレジットカードを持っている
・AWSの使用感を得る練習
・AWSアカウント作成からEC2インスタンス作成とSSHログインの練習
・セキュリティネットワークについては、この後に記事にする予定

1.AWSのアカウントを作成する

リンク→ AWS アマゾンウェブサービスにいきます。

トップページはこんな感じです。
image.png
アカウントを作成します。
※クレジットカード支払い情報を登録します。
※無料のベーシックプランを選びます。
image.png
ルートユーザーでサインインします。
image.png
サインインして、AWSマネジメントコンソールページに遷移します。
image.png
ヘッダー右上のリージョンを アジアパシフィック(東京) ap-northeast-1 に設定します。
image.png
これでアカウント作成は完了です。

2.EC2インスタンスを作成する

”サービス”を開き、コンピューティングのところにある ”EC2” 選択します。
image.png

左側にある ”インスタンス” を押します。
image.png

青色のインスタンスの作成ボタンを押します。
image.png

AMI(アマゾンマシンイメージ)のページに移ります。
今回は、無料枠の一番上にあります、Amazon Linux2 AMI(HVM),SSD Volume Type 64ビット(×86)を選択します。
image.png

当方、既に 無料枠のt2.microを利用していますので、今回はt3.microを使用します。

皆さまにおかれては、1年間無料のt2.microをお勧めします。

選択したら、青色の[確認と作成]ボタンを押します。

<参考になる記事>改めてAWSの「無料利用枠」を知ろう
https://dev.classmethod.jp/articles/overall-summary-about-aws-free-tier/
image.png

t3.microを利用するコスト
EC2の料金を日本円で計算 ざっくりAWS さんでを試算。 ひと月 1,100円くらい請求がありそうです。
image.png

青色の起動ボタンを押します。
image.png

3.キーペア(秘密鍵)を作成する

・EC2インスタンスにSSHログインするためのキーペアを作成します。

※キーペア情報(秘密鍵)は第三者に見せないよう秘匿する必要があります。
 もし盗用された場合はEC2サービスを悪用されますので、取り扱いには十分に注意してください。

・
「新しいキーペアの作成」を選択し、キーペア名は任意につけます。
  ただし、空白(スペース)を入れるとエラーになるようなので、空白(スペース)のない名前を設定します。
・
キーペアのダウンロードを押して、PCにキーペアの情報をダウンロードします。
「任意のキーペア名.pem」というファイルがダウンロードディレクトリに入りますので、そのままにしておいてください。
image.png

キーペアのダウンロードができたら、完了です。
青色のインスタンスの表示ボタンを押します。
image.png

インスタンス一覧に表示がされました。(塗り潰しはご容赦ください)

インスタンスIDをコピーしておきます。(あとでコピペします)
image.png

4.Elastic IPの作成と紐付けをする

EC2インスタンスにはパブリックIPというIPアドレスが自動で割り振られ、サーバー起動のたびにアドレス値が変化してしまいます。
これだと都合が悪いので、AWSが割り振る固定されたパブリックIPアドレスを、Elastic IPに紐付けて使用します。

左下の Elastic IP を押して、ページに移ります。
オレンジ色の[Elastic IPアドレスの割り当て]を押します。
image.png

このまま、割り当てボタンを押します。
image.png
続いて、Elastic IP アドレスの関連付け を押します。

インスタンスのフォームに、先ほどコピーしておいた"インスタンスID" を貼り付けます。
プルダウンになっていて、選択することもできます。

プライベートIPアドレス、再関連付け許可チェックボックスは空欄のまま、関連付けるボタンを押します。
image.png

インスタンス一覧に戻ると、インスタンスの説明の右下にある Elastic IP にアドレスが設定されています。
image.png

5.ポートを開く

HTTP接続できるように、「ポート」を開放します。

EC2インスタンス一覧画面で「セキュリティグループ」のリンクをクリックします。
今回の例だと、「launch-wizard-3」をクリックします。
image.png
セキュリティグループ設定ページに遷移しました。

今回の例だと、「launch-wizard-3」になります。
下の詳細ビューを引き上げて、「インバウンドルール」を押して、「インバウンドルールの編集」ボタンを押します。
image.png
このページに遷移したら、「ルールの追加」をクリックします。
image.png
タイプ : HTTP 
プロトコル : TCP
ポート範囲 : 80 
ソース : カスタム  / 0.0.0.0/0, ::/0  に設定します。
「0.0.0.0」「::/0」は「全てのアクセス許可」になります。
image.png
ルールの保存ボタンを押すと、このようになります。

※インバウンドルールのデフォルトのSSHを消してしまわないように注意してください。
image.png

6.EC2インスタンスにSSHログインする

ターミナルで以下のコマンドを実行します。

ターミナル

      #cdコマンドで ローカルPCのホームディレクトリに移動
cd ~
      #mkdir(メイクディア)コマンドで.sshというディレクトリを作成
      # もしFile exists(存在します)とエラーがでた時は、そのままでOK

mkdir ~/.ssh

      /# mvコマンドでキーペア作成時にダウンロードしたpemファイルをダウンロードディレクトリから、.sshディレクトリに移動
      #mv Downloads/ダウンロードした鍵の名前.pem .ssh/

mv Downloads/nomadcafe.pem .ssh/

      # .sshディレクトリに移動

 cd .ssh/

      #lsコマンドで .sshディレクトリのファイル一覧を表示
      # pemファイルの移動ができたか確認
 ls

      # chmod(チェンジモード)コマンドで、パーミッション(アクセス権限) 600 -rw- --- ---  を設定
      #所有者権限 (6 読込・書込み可能)・グループ権限(0 権限なし)・その他のユーザーの権限(0 権限なし)
      #chmod 600 ダウンロードした鍵の名前.pem

chmod 600 nomadcafe.pem

      #ダウンロードした鍵を用いて、ec2-userとしてログイン
      # ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP

ssh -i nomadcafe.pem ec2-user@**.****.****.**

こんな感じになります。(関係の無いところは塗り潰ししています)
image.png
途中で以下のような確認があります。

ターミナル
The authenticity of host '18.178.170.12 (18.178.170.12)' can't be established.
ECDSA key fingerprint is SHA256:GJUmS2jQThkOYf3YtxgSHI3OMCJE0tA6v7eEHNxmizw.
Are you sure you want to continue connecting (yes/no)? 

ホスト'18 .178.170.1218.178.170.12 'の信頼性を確立できません。
ECDSAキーフィンガープリントはSHA256GJUmS2jQThkOYf3YtxgSHI3OMCJE0tA6v7eEHNxmizwです。
接続を続行してもよろしいですか(はい/いいえ)?

これに yes で応えます。

ターミナル
 ssh -i *****.pem ec2-user@**.****.****.**

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-****-**-**-**~]$ 

このように表示されたら、EC2インスタンスにSSHログイン完了です!

7. 参考にさせていただいた記事(ありがとうございます!)

AWS EC2インスタンスにdockerとdocker-composeをインストールして簡単なWEBサービスを立ち上げる方法
AWS EC2 ハンズオン
EC2要点まとめ

8.最後に

当方、
実務未経験+初学者+テッ○キャンプ卒業+転職活動中であります。

EC2インスタンス作成は一番初めにやることでは無いかもしれませんが、
今回、複数のEC2インスタンスを利用する状況になり、復習を兼ねて進めました。
ゼロスタートからAWSやります、という方には参考にはなると思います。

この先も、本番環境でのdocker実装を進めつつ、その過程をわかりやすい記事で寄稿していきたいと考えています。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0