※デプロイの方法の手順① 今後の自分のメモ用に
#EC2インスタンスを作成
AWSアカウントにログイン。トップページに遷移したら、左上の「サービス」から「EC2」を選択。
操作画面を旧バージョンに切り替えるため、左上のスイッチのアイコンをクリック。「New EC2 Experience」
####AMIの選択
AMIとは、「Amazon Machine Image」の略語で、サーバのデータをまるごと保存したデータのこと。
この中には、OSやWEBサーバなどが事前にインストールされているものもあり、自分でゼロからインストールする手間を削減することができます。
「 Amazon Linux AMI 」という、AWSが独自にカスタマイズしたAMIを利用しましょう。
・「AMIの選択」になっていることを確認 ・「クイックスタート」を選択 ・Amazon Linux AMIを選択 ※「 Amazon Linux2 AMI 」ではなく、「 Amazon Linux AMI 」を選択####EC2インスタンスのタイプ選択
EC2ではさまざまなインスタンスタイプが用意されており、CPUやメモリなどのスペックを柔軟に指定することができます。無料枠で利用できる「t2.micro」を選択。
・「インスタンスタイプの選択」になっていることを確認
・「t2.micro」になっていることを確認
・「確認と作成」をクリック
####キーペアのダウンロード
内容を確認する際に、「キーペア」をダウンロードすることが出来ます。こちらはインスタンスにSSHでログインする際に必要となる「秘密鍵」です。これがないとEC2インスタンスにログインできないので、必ずダウンロードしてパソコンに保存しておきましょう。また、間違って他人に渡さないよう気をつけてください。
キーペアの名前はご自身で決めて大丈夫です。
※キーペアの名前にスペースが含まれているとこの後の作業でエラーが発生する可能性があります。 スペースを含まない名前の秘密鍵を作成するようにしましょう!
・「新しいキーペアを作成」を選択
・キーペア名の名前を入力(App名)
・「キーペアのダウンロード」クリック
↓
・キーペアのダウンロードが完了すると、クリック出来ない状態になっていた「インスタンスの作成」が、クリックできるように変更されます。そちらをクリックして、EC2インスタンスを作成。
####インスタンスの作成
インスタンス一覧画面に戻り、作成した「インスタンスID」をコピーしてメモしておきましょう。
#Elastic IPの作成と紐付け
作成したEC2インスタンスには、作成時にIPアドレスが自動で割り振られています。これをパブリックIPと言います。
しかし、サーバーを再起動させるたびにこのパブリックIPが変わってしまうという欠点を持っています。IPが変わってしまうということは、設定ファイル等をその都度書き換えなければいけません。これを解決してくれるのが、Elastic IPです。
###Elastic IP
Elastic IPとは、AWSから割り振られた固定のパブリックIPアドレスのこと。
このパブリックIPアドレスをEC2インスタンスに紐付けることで、インスタンスの起動、停止に関わらず常に同じIPアドレスで通信をすることが可能になります。
・Elastic IPを取得するために、「Elastic IP」を選択し、「新しいアドレスの割り当て」をクリック
・Amazonプールを選択 ・「割り当て」をクリック ・ELAstic IPを確認し、「閉じる」をクリック次に、取得したElastic IPアドレスを、作成したEC2インスタンスと紐付け
先ほど、取得したElastic IPアドレスを選択し、「アクション」から「アドレスの関連付け」へ
インスタンスを選択すると、その下にあるプライベートIPアドレスが自動で選択されます。
再びインスタンス一覧画面に戻り、作成したインスタンスの「パブリック IP」と「Elastic IP」が同じものに設定されていることを確認しましょう。
以降、このIPアドレスはあなたの所有物のようになり、意図的にAWSに返却しない限り、変更されることはありません。
#ポートを開く
立ち上げたばかりのEC2インスタンスはSSHでアクセスすることはできますが、HTTPなどの他の接続は一切つながらないようになっています。そのため、WEBサーバとして利用するEC2インスタンスは事前にHTTPがつながるように「ポート」を開放する必要があります。
###セキュリティグループとは
ポートの設定をするためには、「セキュリティグループ」という設定を変更する必要があります。
セキュリティグループとは、EC2インスタンスが属するまとまりのようなもので、複数のEC2インスタンスのネットワーク設定を一括で行うためのものです。
###セキュリティグループのポートを設定する
セキュリティグループのポートを設定。
EC2インスタンス一覧画面から、対象のインスタンスを選択し、「セキュリティグループ」のリンク(図中では「launch-wizard-1」)をクリック。
インスタンスの属するセキュリティグループの設定画面に移動するので、「インバウンド」タブの中の「編集」をクリック。
モーダルが開くので、「ルールの追加」をクリック。
タイプを「HTTP」、プロトコルを「TCP」、ポート範囲を「80」、送信元を「カスタム / 0.0.0.0/0, ::/0」に設定。
「0.0.0.0」や「::/0」は「全てのアクセスを許可する」という意味
#####※必ず「ルールの追加」を行い、元の「ssh」の設定がなくならないよう注意してください
以上で、ポートの開放が完了です。
この作業が終わっていないと、WEBサーバを起動した時にアクセスできなくなるので注意してください。
#EC2インスタンスへのログイン
EC2インスタンスを作成すると、ec2-userというユーザーと対応するSSH秘密鍵が生成されました。
本来はこのec2-userではなく、サービスを稼働させるためにより権限を小さくしたユーザーを作成して運用していきますが、ここでは簡易化のためにこのec2-userを使って作業を進めていきます。
####ec2-userでログイン
- 以下の「ダウンロードした鍵の名前」の部分は、直前にご自身がダウンロードした.pemというファイルの名前に置き換えてください。
- 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| ...
となればログイン成功。