AWS EC2 をMacから使ってみよう! 

## 〜宣伝〜

:::note info
個人開発でエンジニア専門マッチングサービスを開発しましたので、是非未経験からエンジニア目指している人！現役エンジニアで教えたい人！使ってみてください！

β版リリース記念キャンペーン中です！

10名様限定、抽選でお好きな技術本1冊プレゼント！
🎉当選者にはメッセージ差し上げます(送付の際に住所はお聞きしません)
詳しくはこちらから↓

https://x.com/dokupro01/status/1796837336145436846
:::
https://dokupro.dev/

# 目的

- AWSのEC2の無料枠でサーバを借りる方法をざっくりと紹介する
- セキュリティ面の設定よりとにかくEC2を使えることを目的として説明する
- EC2 のAmazon Linux 2 インスタンスのみを用いてApacheでhtmlファイルを表示する

# 実施環境

- AWSのEC2の無料枠でサーバを借りる方法をざっくりと紹介する
- セキュリティ面の設定よりとにかくEC2を使えることを目的として説明する
- EC2 のAmazon Linux 2 インスタンスのみを用いてApacheでhtmlファイルを表示する

# 実施環境

- ハードウェア環境

| 項目 | 情報 |
| --- | --- |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

# 前提条件

- MacOSでの使用を前提として紹介する。
- 下記、または下記に準ずる方法でAWSのアカウントが作成されていること。
    - [AWSのアカウント作成方法](https://miriwo.hatenablog.com/entry/2020/06/03/122128)

# 免責事項

- 無料枠での使用を前提としてサーバを借りる方法を紹介するが、何らかの費用が発生した場合、筆者は責任を負いかねます。ご了承ください。
- もちろん現状での無料枠のでの使用と費用が発生思想になった時のアラートメールなどの設定も説明します。
- 2020/06/03現在のAWSの無料利用枠の概要を下記に記載する。
    - [無料利用枠詳細](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc)

        ![AWS_クラウド無料利用枠___AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/6f4a8423-78e7-56d0-03b9-4660a9ac466f.png)

# 前提知識

- 料金について
    - EC2はAWSのアカウント新規登録時から12ヶ月間、毎月750時間までの利用なら無料で利用できる。
    - ひとつきの最大の使用でも24時間×31日で744時間となりAWSアカウント取得日から12ヶ月連続で24時間、EC2のサービスを利用しても無料で使用できる。(現状の条件での計算上なのでプランが変更になり料金が発生する場合もある。)

# 概要

1. ログイン 
1. イメージの設定
1. 請求アラートの設定(重要)
1. 作成されたインスタンスの確認と接続
1. 必要物のインストール
1. htmlファイルの表示


# 詳細

1. ログイン
    1. 下記のリンク先にアクセスする。
        - [https://aws.amazon.com/jp/console/](https://aws.amazon.com/jp/console/)
    1. 「コンソールにサインイン」をクリックする。

        ![AWS_マネジメントコンソール___AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/e55ab719-467e-b129-1ef3-2eee11a22e19.png)

    1. アカウント登録時に入力したメールアドレスを入力し「次へ」をクリックする。

        ![Amazon_Web_Services_Sign-In.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/1c41d0fd-fd3d-e47c-67c9-d67eabdfe87c.png)

    1. アカウント登録時に入力したパスワードを入力し「サインイン」をクリックする。

        ![Amazon_Web_Services_Sign-In.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/3211fd84-2863-ede5-3186-9f5d7b0a7782.png)
1. イメージの設定
    1. サインイン後、下記のようなページが開かれることを確認する。

        ![AWS_マネジメントコンソール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/14e7774c-2d22-54e7-63a2-9a9706329513.png)

    1. 「仮想マシンを起動する」をクリックする。

        ![AWS_マネジメントコンソール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/c47ed4de-c716-eb8f-4223-19fe7ac5b5d6.png)

    1. 画面左側の「無料利用枠のみ」にチェックマークを入れる。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/2228c54b-7a6c-ac95-add9-9d6d61a408b0.png)

    1. イメージ(マシン)一覧に表示されている「Amazon Linux 2 AMI (HVM), SSD Volume Type」の「選択」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/d584cb76-da97-758c-6a68-3829329f8f55.png)

    1. インスタンスタイプ（マシンスペック）一覧に表示されているタイプが「t2.micro(無料枠の対象)」が選択されていることを確認して「次のステップ: インスタンスの詳細の設定」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/b28e772b-4f52-c3d4-bb64-ee1d3b738994.png)

    1. 本ページは特に設定をいじらず「次のステップ: ストレージの追加」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/7a4ffb4e-3f44-68a2-052d-eddc32a3f227.png)

    1. ストレージ設定では「終了時に削除」にチェックが入っていることを確認して「次のステップ: タグの追加」をクリックする。(本番環境などで本仮想マシンを使用する場合はチェックを外すが、データのみ残っており課金されることを防ぐためにお試し程度ならチェックを入れることをおすすめする。)

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/5aad2ea8-4751-a713-b9eb-1768ae4c7217.png)

    1. 「タグの追加」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/a2d55a3f-54dc-b1d8-cf53-5b822368f273.png)

    1. キーに「Name」と入力、値に「MyWebServer」と入力して「次のステップ: セキュリティグループの設定」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/0a24d6ea-0168-7d45-2586-6b0def5c4fc2.png)

    1. 「ルールの追加」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/07b97c1c-5228-b973-d9ea-b5ac3383cf20.png)

    1. タイプで「HTTP」を選択して「確認と作成」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/12348a67-036b-b9aa-1cab-79ea248f521b.png)

    1. 各種設定にミスがないか確認して「起動」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/cc119143-d739-de85-07c9-d305ed338212.png)

    1. EC２のターミナルにお手持ちのPCからログインする際に使用するキーファイルの作成を行う。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/13b37fa7-0759-7dc8-c8fc-24fd847654a1.png)

    1. 「新しいキーペアの作成」を選択し「キーペア名」に「MyWebServer」と入力し「キーペアのダウンロード」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/4affd110-6760-19af-4c75-5d145820a3f1.png)

    1. 現在操作中のPCのダウンロードフォルダに「MyWebServer.pem」というファイルがダウンロードされる。
    1. 「インスタンスの作成」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f9a59339-2d0c-00f2-6020-6c2ba8dd26a0.png)
    1. 下記の画面が表示されたことを確認する。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f825c1c6-9dec-37fc-ce1b-603eea52dea3.png)

1. 請求アラートの設定(重要)
    1. 「請求アラートの作成」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/d8d9eaf8-c12d-8d0d-9e24-019a594bd9c4.png)

    1. 「E メールで PDF 版請求書を受け取る」「無料利用枠の使用のアラートの受信」「請求アラートを受け取る」全てにチェックを入れる。「Eメールアドレス:」には無料枠が終わりそうな場合に送信されるアラートメールの受信アドレスを記載する。(捨てメールアドレスではなく一年後でも確実に使用しており、確実に受信することができるメールアドレスを入力すること。AWSのアカウント登録の際に使用したメールアドレス以外でも入力、設定することができる。)

        ![Billing_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/7807ce8c-696d-1281-ced7-08ae03a6c37d.png)

    1. 記入内容を確認して「設定の保存をクリックする。」

        ![Billing_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/883f6249-98f6-fbd8-98f2-a9b04f2ac0d8.png)

1. 作成されたインスタンスの確認と接続
    1. 「インスタンスの表示」をクリックする。

        ![インスタンスウィザードを起動___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/f3171a14-4be2-ca15-a1b2-b23264621446.png)

    1. インスタンスの状態が「running」になっていることを確認する。

        <img width="1439" alt="インスタンス___EC2_Management_Console.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/fdbe3c39-983d-6998-104c-0acd75cfcc52.png">

    1. 下記コマンドをお手持ちのMacのターミナルで実行して`~/`ディレクトリ直下に先に作成したキーファイル(MyWebServer.pem)をコピーする。

        ```terminal
        cd
        cp -a Downloads/MyWebServer.pem .
        ```
    1. インスタンス一覧の上部にある「接続」をクリックする。

        <img width="1439" alt="インスタンス___EC2_Management_Console.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/81cd75ae-66c4-7f87-ad0f-5b7c8ed2c27a.png">

    1. 「スタンドアロン SSH クライアント」が選択されていることを確認する。

        ![インスタンス___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/1b6baba3-e501-3a4b-867a-268351e20cba.png)

    1. 表示されている手順に記載されている下記コマンドをお手持ちのMacのターミナルで実行する。

        ```terminal
        chmod 400 MyWebServer.pem
        ```

        ![インスタンス___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/9e224e56-bffc-9e66-e6a9-348883e56b35.png)

    1. 表示されている手順に記載されている下記コマンドをお手持ちのMacのターミナルで実行して先に作成したインスタンスにSSH接続する。(このコマンドは実際の皆さんの画面に表示されているコマンドと異なる可能性がある。皆さんの画面に表示されているコマンドを実行していただく。)

        ```terminal
        ssh -i "MyWebServer.pem" ec2-user@ec2-13-59-146-25.us-east-2.compute.amazonaws.com
        ```

        ![インスタンス___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/0d1e9ba9-507f-ca29-fb77-deebd69feb2e.png)

    1. 下記の出力があったら「yes」と入力してEnterを押下する。

        ```terminal
        Are you sure you want to continue connecting (yes/no/[fingerprint])?
        ```
    1. 下記のように出力されれば先に作成したインスタンスにSSH経由でログインすることができている。

       ![ec2-user_ip-172-31-2-50__.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/5fa95c65-df2d-eda8-69b0-e7c94be8a162.png)

1. 必要物のインストール
    1. SSH経由でのログイン後、インスタンス内で下記コマンドを実行する。

        ```terminal
        sudo yum update
        ```
    1. インスタンス内で下記コマンドを実行してApache(httpd)をインストールする。

        ```terminal
        sudo yum install httpd
        ```
    1. インスタンス内で下記コマンドを実行してApache(httpd)を起動する。

        ```terminal
        sudo service httpd start
        ```
    1. インスタンス内で下記コマンドを実行してApache(httpd)が正常に起動しているか確認する。(activeになっていることを確認する)

        ```terminal
        service httpd status
        ```
    1. インスタンス内で下記コマンドを実行してApache(httpd)がインスタンスの起動に合わせて起動する様にする。

        ```terminal
        sudo chkconfig httpd on
        ```

1. セキュリティグループの設定
    1. AWSにログインし、インスタンス一覧画面を開く。
    1. 今回立ち上げたインスタンスにチェックマークをつける。
    1. 下部のタブで「セキュリティ」を選ぶ。

        ![インスタンス___EC2___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/6b0887ef-5eb8-086f-523c-a8caaf43f50f.png)

    1. 「セキュリティグループ」の名前をクリックする。

        ![インスタンス___EC2___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/2c9b1981-2939-cecc-9156-9903845d7479.png)

    1. 遷移先の画面で「インバウンドルールを編集」をクリックする。

        ![EC2___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/7665ea84-7a71-f739-8fb9-77941a01ce3c.png)

    1. 「ルールを追加」をクリックする。
    1. 追加された入力フォームに下記のように設定して、「ルールを保存」をクリックする。
        1. タイプ → HTTP
        1. プロトコル → TCP
        1. ポート範囲 → 80
        1. ソース →　0.0.0.0/0!

        ![EC2___ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/7d485011-ab3f-7e21-b7fe-513e34607122.png)

1. htmlファイルの表示
    1. インスタンス内で下記コマンドをインスタンス内で実行して表示するhtmlファイルを開く。

        ```terminal
        sudo vi /var/www/html/index.html
        ```
    1. 開いたファイルに下記の内容を記載する。

        ```/var/www/html/index.html
        <html>
            <h1>hello Japan!!</h1>
        </html>
        ```
    1. ブラウザからAWSの下記のページ(コンソール)にアクセスする。

        ![インスタンス___EC2_Management_Console_と_ec2-user_ip-172-31-9-5__.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/4d28f293-9714-aaa9-3a2d-c837d3bb88d7.png)

    1. 「接続」をクリックする。

        ![インスタンス___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/9554b5ca-b65a-28b9-2913-5bdee5e59205.png)

    1. 下記画像の矢印が指しているURLをコピーして別のブラウザのURL入力欄に貼り付ける。

        ![インスタンス___EC2_Management_Console.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/dec6ce10-ec0d-5118-b69f-a6c7133c90d3.png)

    1. ブラウザで下記の様に表示されていることを確認する。

        ![Item-0_と_Item-0_と_Item-0_と_Item-0_と_Item-0_と_Item-0_と_AppleVPNExtra_と_AirPortExtra_と_BatteryExtra_と_AppleClockExtra_と_Item-0_と_NotificationCenter_と_Menubar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/0901799f-5ee8-12e3-2e96-c8dbcbe168ac.png)

# 参考文献

- [ドットインストール Amazon Web Services入門](https://dotinstall.com/lessons/basic_aws)