LoginSignup
1
3

More than 3 years have passed since last update.

デプロイ方法①(AWS/EC2)

Last updated at Posted at 2020-08-05

※デプロイの方法の手順① 今後の自分のメモ用に

EC2インスタンスを作成

AWSアカウントにログイン。トップページに遷移したら、左上の「サービス」から「EC2」を選択。
1.png

操作画面を旧バージョンに切り替えるため、左上のスイッチのアイコンをクリック。「New EC2 Experience」
2.png

アンケート用のダイアログが開くのでキャンセルを選択。
3.png

以下の画像の「インスタンスの作成」をクリック。
4.png

AMIの選択

AMIとは、「Amazon Machine Image」の略語で、サーバのデータをまるごと保存したデータのこと。
この中には、OSやWEBサーバなどが事前にインストールされているものもあり、自分でゼロからインストールする手間を削減することができます。

「 Amazon Linux AMI 」という、AWSが独自にカスタマイズしたAMIを利用しましょう。

5.png
・「AMIの選択」になっていることを確認
・「クイックスタート」を選択
・Amazon Linux AMIを選択
※「 Amazon Linux2 AMI 」ではなく、「 Amazon Linux AMI 」を選択

EC2インスタンスのタイプ選択

EC2ではさまざまなインスタンスタイプが用意されており、CPUやメモリなどのスペックを柔軟に指定することができます。無料枠で利用できる「t2.micro」を選択。
6.png
・「インスタンスタイプの選択」になっていることを確認
・「t2.micro」になっていることを確認
・「確認と作成」をクリック

7.png
・起動をクリック

キーペアのダウンロード

内容を確認する際に、「キーペア」をダウンロードすることが出来ます。こちらはインスタンスにSSHでログインする際に必要となる「秘密鍵」です。これがないとEC2インスタンスにログインできないので、必ずダウンロードしてパソコンに保存しておきましょう。また、間違って他人に渡さないよう気をつけてください。

キーペアの名前はご自身で決めて大丈夫です。

※キーペアの名前にスペースが含まれているとこの後の作業でエラーが発生する可能性があります。 スペースを含まない名前の秘密鍵を作成するようにしましょう!
8.png
・「新しいキーペアを作成」を選択
・キーペア名の名前を入力(App名)
・「キーペアのダウンロード」クリック

・キーペアのダウンロードが完了すると、クリック出来ない状態になっていた「インスタンスの作成」が、クリックできるように変更されます。そちらをクリックして、EC2インスタンスを作成。

インスタンスの作成

インスタンス一覧画面に戻り、作成した「インスタンスID」をコピーしてメモしておきましょう。

Elastic IPの作成と紐付け

作成したEC2インスタンスには、作成時にIPアドレスが自動で割り振られています。これをパブリックIPと言います。
しかし、サーバーを再起動させるたびにこのパブリックIPが変わってしまうという欠点を持っています。IPが変わってしまうということは、設定ファイル等をその都度書き換えなければいけません。これを解決してくれるのが、Elastic IPです。

Elastic IP

Elastic IPとは、AWSから割り振られた固定のパブリックIPアドレスのこと。
このパブリックIPアドレスをEC2インスタンスに紐付けることで、インスタンスの起動、停止に関わらず常に同じIPアドレスで通信をすることが可能になります。

9.png

・Elastic IPを取得するために、「Elastic IP」を選択し、「新しいアドレスの割り当て」をクリック

10.png
・Amazonプールを選択
・「割り当て」をクリック
・ELAstic IPを確認し、「閉じる」をクリック

次に、取得したElastic IPアドレスを、作成したEC2インスタンスと紐付け
先ほど、取得したElastic IPアドレスを選択し、「アクション」から「アドレスの関連付け」へ
11.png

12.png

インスタンスを選択すると、その下にあるプライベートIPアドレスが自動で選択されます。
再びインスタンス一覧画面に戻り、作成したインスタンスの「パブリック IP」と「Elastic IP」が同じものに設定されていることを確認しましょう。

以降、このIPアドレスはあなたの所有物のようになり、意図的にAWSに返却しない限り、変更されることはありません。

13.png

ポートを開く

立ち上げたばかりのEC2インスタンスはSSHでアクセスすることはできますが、HTTPなどの他の接続は一切つながらないようになっています。そのため、WEBサーバとして利用するEC2インスタンスは事前にHTTPがつながるように「ポート」を開放する必要があります。

セキュリティグループとは

ポートの設定をするためには、「セキュリティグループ」という設定を変更する必要があります。
セキュリティグループとは、EC2インスタンスが属するまとまりのようなもので、複数のEC2インスタンスのネットワーク設定を一括で行うためのものです。

セキュリティグループのポートを設定する

セキュリティグループのポートを設定。
EC2インスタンス一覧画面から、対象のインスタンスを選択し、「セキュリティグループ」のリンク(図中では「launch-wizard-1」)をクリック。
14.png

インスタンスの属するセキュリティグループの設定画面に移動するので、「インバウンド」タブの中の「編集」をクリック。
15.png

モーダルが開くので、「ルールの追加」をクリック。
タイプを「HTTP」、プロトコルを「TCP」、ポート範囲を「80」、送信元を「カスタム / 0.0.0.0/0, ::/0」に設定。
「0.0.0.0」や「::/0」は「全てのアクセスを許可する」という意味
16.png

※必ず「ルールの追加」を行い、元の「ssh」の設定がなくならないよう注意してください

以上で、ポートの開放が完了です。

この作業が終わっていないと、WEBサーバを起動した時にアクセスできなくなるので注意してください。

EC2インスタンスへのログイン

EC2インスタンスを作成すると、ec2-userというユーザーと対応するSSH秘密鍵が生成されました。
本来はこのec2-userではなく、サービスを稼働させるためにより権限を小さくしたユーザーを作成して運用していきますが、ここでは簡易化のためにこのec2-userを使って作業を進めていきます。

ec2-userでログイン

  1. 以下の「ダウンロードした鍵の名前」の部分は、直前にご自身がダウンロードした.pemというファイルの名前に置き換えてください。
  2. pemキーが本当にDownloads以下に存在するかFinderで確認しましょう ※存在しなければ他のディレクトリを確認しましょう
$ cd ~

$ mkdir ~/.ssh
# .sshというディレクトリを作成
# File existsとエラーが表示されたとしても、.sshディレクトリは存在しているということなので、そのまま進みましょう。

$ mv Downloads/ダウンロードした鍵の名前.pem .ssh/
# mvコマンドで、ダウンロードしたpemファイルを、ダウンロードディレクトリから、.sshディレクトリに移動します。

$ cd .ssh/

$ ls
# pemファイルが存在するか確認しましょう

$ chmod 600 ダウンロードした鍵の名前.pem

$ ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP
#(例えばElastic IPが123.456.789であれば、ssh -i ダウンロードした鍵の名前.pem ec2-user@123.456.789 というコマンドになります)
#(ダウンロードした鍵を用いて、ec2-userとしてログイン)

Elastic IP は、AWSアカウントから確認してください。

以下の様なメッセージが表示されることがありますが、「yes」と入力して下さい。

$ ssh -i aws_key.pem ec2-user@52.68.~~~~~~
The authenticity of host '52.68.~~~~~~ (52.68.~~~~~~)' can't be established.
RSA key fingerprint is eb:7a:bd:e6:aa:da:~~~~~~~~~~~~~~~~~~~~~~~~.
Are you sure you want to continue connecting (yes/no)? 

ターミナルのコマンド待ちの際の左側の表示が、
[ec2-user| ...

となればログイン成功。

1
3
0

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
1
3