3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EC2 で仮想サーバーを構築してみた

Posted at

はじめに

学習用途で使える仮想サーバーが欲しいと思い、色々と調べていたところ、AWSにも仮想サーバーを構築できる「EC2」というサービスがあると知り、迷わずこちらを使うことに決定。
他にも良さげなVPSやクラウドサービスはいくつかありましたが、従量課金で学習用にちょこっと使うにはちょうど良さそう。
そして何より、AWSに触れてみたかったというのが大きな理由です。

正直、AWSに触れたことがなく何も知らない状態で、「クラウドといえばAWS」みたいなふんわりしたイメージだけは持っていました。
そんな技術を学ばない理由は無いし、どうせなら今のうちに触っておこうということで今回EC2を試してみることにしました。

概要

本記事では、AWSの仮想サーバーサービス「EC2」を使って、学習用のサーバーを構築し、おまけとして簡単なWebアプリを公開するまでの手順をまとめています。

具体的な内容は以下の通りです

  • AWSアカウントの作成
  • EC2インスタンスの立ち上げ
  • SSH接続および VS Code からの接続
  • Python + Flask による簡単なWebアプリの作成と公開

「とりあえずEC2を触ってみたい」「ローカル以外の環境でWebアプリを試したい」「具体的にやりたいことは無いけどAWSに触れてみたい」といった方に向けた、はじめの一歩として参考になれば幸いです。

AWSアカウントの作成

1. AWS公式サイトへアクセス

2. アカウント情報の入力

  • 公式手順に沿ってアカウントを作成

AWS アカウント作成の流れ【AWS 公式】

3. サポートプランの選択

  • 無料の「ベーシックサポート」を選択

    image.png

4. AWSマネジメントコンソールへアクセス

  • 登録完了後、AWSマネジメントコンソールにログインできるようになる

image (1).png

SSHキーの作成と登録(EC2)

1. EC2サービスに移動

  • AWSマネジメントコンソール左上の「サービス」メニューから「EC2」を選択

    image (2).png

2. 「キーペア」を開く

  • 左側メニューの「ネットワーク&セキュリティ」 > 「キーペア」をクリック

    image (3).png

3. キーペアを作成

  • 「キーペアを作成」をクリック

    image (4).png

4. SSHキーの情報を入力

image (5).png

  • 名前: 任意
  • キーペアのタイプ: RSA
  • プライベートキーファイ形式: .pem

5. 秘密鍵を保存

  • 自動的にダウンロードされる .pem ファイルを以下に保存
    • C:\Users\username\.ssh\

EC2インスタンスの作成

1. インスタンスを起動

  • EC2ダッシュボードから「インスタンスを起動」をクリック

    image (6).png

2. インスタンス名を入力

  • 任意の名前を入力

    image (7).png

3. OSイメージを選択

  • 今回は無料利用枠の対象である Ubuntu 24.04 LTS を選択

    image (8).png

4. インスタンスタイプを選択

  • こちらも無料利用枠の対象であるt2.microを選択

    image (9).png

5. ネットワーク設定

  • 以下の項目にチェック:

    • インターネットからのHTTPSトラフィックを許可
    • インターネットからのHTTPトラフィックを許可

    image (10).png

6. ストレージ設定

  • デフォルトの8GBを設定

    image (11).png

7. インスタンスを起動

  • 「インスタンスを起動」をクリック
    • 成功と表示されればOK

      image (12).png

SSHでインスタンスに接続

1. インスタンス一覧を表示

  • 起動確認画面の「すべてのインスタンスを表示」を選択

  • 一覧が表示されたら、先ほど作成したインスタンスのインスタンスIDをクリック

    image (13).png

2. インスタンスに接続

  • 画面右上の「接続」ボタンをクリック

    image (14).png

3. SSHコマンドをコピー

  • 画面下部に表示されている ssh -i で始まるコマンドをコピー

    image (15).png

4. コマンドをPowerShellから実行

  • -i の後に指定されているパスは、実際の .pem ファイルのパスに書き換える

    ssh -i ".ssh/aws-ec2-ymtdir.pem" ubuntu@ec2-13-115-162-51.ap-northeast-1.compute.amazonaws.com
    
  • 初回接続時に確認が表示されるので yes を入力:

    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    
    • 以下のようなログイン後のメッセージが表示されれば接続成功

      Last login: Sat May 24 01:14:10 2025 from 150.249.252.141
      To run a command as administrator (user "root"), use "sudo <command>".
      See "man sudo_root" for details.
      
      ubuntu@ip-172-31-0-245:~$
      

VS Code から接続

1. 拡張機能のインストール

  • Remote - SSH をインストール

    image (16).png

2. 拡張機能の設定

  1. アクティブバーに追加された「リモートエクスプローラー」を選択

    • ※Docker下のディスプレイのアイコン

      image (17).png

  2. SSH欄の右にある「+」をクリックして、先ほど入力したSSHコマンドを入力

    image (18).png

  3. 接続設定を保存するSSH構成ファイル(config)を選択

    • 秘密鍵と同じディレクトリ内の構成ファイルを選択
      • C:\Users\username\.ssh\config

3. インスタンスに接続する

  1. SSH欄に、インスタンスのホスト名が追加されたことを確認し、右側の「ウィンドウ」アイコンを選択

    image (19).png

  2. プラットフォームの選択画面が表示されたら、接続先がLinuxであるため「Linux」を選択

    image (20).png

4. リモート上のフォルダーを開く

  1. アクティブバーからエクスプローラーを開く

  2. 「フォルダーを開く」を選択

  3. 接続先サーバー内のパス /home/ubuntu/ を入力して「OK」をクリック

    image (21).png

    • 「この作成者を信頼しますか?」と表示されたら「はい」を選択
  4. サーバーのファイルが表示される

    • 以下のように表示されていれば成功

      image (22).png

FlaskでWebサイトを表示してみる

1. ターミナルを開く

  • ホームディレクトリにいることを確認
ubuntu@ip-172-31-0-245:~$

2. ホームディレクトリに Flask アプリ用ディレクトリを作成

mkdir flask_app

3. 仮想環境を作成

  1. venvパッケージをインストール

    sudo apt update
    sudo apt install python3.12-venv -y
    
  2. 仮想環境を作成

    python3.12 -m venv flask_app/venv
    
  3. 仮想環境を有効化

    source flask_app/venv/bin/activate
    
  4. Flaskをインストール

    pip install flask
    

4. Flaskアプリを作成

  • flask_app/main.py を作成し、以下の内容を記述:

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello, World!"
    
    if __name__ == "__main__":
        app.run(host="0.0.0.0", port=80)
    

5. アプリケーションを起動

sudo ~/flask_app/venv/bin/python ~/flask_app/main.py
  • 冗長なコマンドとなっていますが、検証用としてご了承ください

6. ブラウザにアクセスする

  • EC2のパブリックIPにアクセス
    • http://<パブリックIP>/

    • ブラウザへのアクセスが成功し、Hello,World!と出力されていれば成功

      image (23).png

      • ※パブリックIPが分からない場合は、インスタンス概要から確認

        image (24).png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?