はじめに
完全にAWS初心者向けです。
私がAWS初心者です。。。プライベートではずっとGCP(Firebase)を使っているのですが、仕事ではAWSを使っています。
なので、まずはシンプルに
「AWSでWebアプリケーションを公開するにはどうしたらいい?」
という疑問を解消していきたいな〜っと思ってやってみました。
EC2とNginxについて
私は今までwebアプリケーションのデプロイにはFirebase hostingを使っていました。
なのでAWSでも「コマンド1つでパッとデプロイできるんかな〜?」とか思ってましたが、全く違いましたw
EC2とNginxについての解説はさまざまな所でされていると思うので、詳しい説明はここでは省きますがざっくり言うと
「EC2」と言う仮想サーバーの中に「Nginx」と言うWebサーバーを入れる
と言う感じでしょうか。
EC2とは
EC2とは「Amazon Elastic Compute Cloud」の略称で、AWSで利用できるシステムのひとつとなっています。伸縮性や弾力性を意味するElasticという言葉通り、ユーザーの必要に応じてスペックを変更できるのがEC2の魅力です。
https://www.wafcharm.com/blog/ec2-for-beginners/
Nginxとは
世界的に使用される著名なWebサーバソフト「Apache」のライバル的な存在となるのがNginx!!
つまり「Webサーバソフトの1つ」です。
EC2インスタンスを作成
AmazonのEC2はインスタンスという単位で、サーバー環境が構築できます。インスタンスとは簡単に言えば、OSを載せた仮想サーバーのことです。また、インスタンスは複数作成して実行することもできます。
例えば、アプリケーションサーバーとデータベースサーバーなど、合計で2つのサーバーが必要な場合は、インスタンスを2つ作成して対応できます。
このように、必要に応じて複数のインスタンスを立ち上げることで、柔軟なインフラ構築ができるのがAmazon EC2の強みです。
https://techplay.jp/column/537
👆がインスタンスです。
一応スクショを載せますが、こういったコンソール画面はコロコロとデザインが変わると思うので、参考程度のお気持ちで見るのがいいかと思います
インスタンスを起動
インスタンスを起動>Amazon Linux 2を選択>デフォルトで選択されているt2.micro
Amazon Linux 2を選択
t2.microにチェックをつけて次のステップ
詳細の設定はデフォルトで次のステップ
ストレージの追加もデフォルトで次のステップ
タグの追加もデフォルトで次のステップ
セキュリティグループの設定でhttpを追加
webサーバなのでhttpで入ってくる必要もある。なのでhttpを追加。
ソースが全て0なのは、「どこからでも受け付ける」みたいな意味(らしいです)
インスタンス作成の確認
Nginxをインストール
インスタンスが実行中になったら接続
(実行中になった段階から課金スタートっぽいです)
コマンド実行していく
// nginx1.12をインストール
sudo amazon-linux-extras install nginx1.12
// これでいいか聞かれる
Is this ok [y/d/N]: y
// nginx起動
sudo systemctl start nginx
// 起動しているか確認
systemctl status nginx
アクセスしてみる
終了する
// 切断する
exit
インスタンスの状態>インスタンスを停止
を選択
最後に
これで仮想マシンEC2を立ち上げてwebサーバNginxを立ち上げアクセス、と言う一連の流れがとりあえずはできました・・・・