MENU

AWS開発環境構築|EC2+Visual Studio Code+Django

EC2+Visual Studio Code+Django開発環境構築

これまでCloud9で開発してきましたが、新規アカウント発行が停止されたので、その代替策を検討し、AWSのEC2インスタンスに開発環境を立てて、ローカルMacのVSCodeから接続する方法にしました。以下で、その手順を説明していきます。この構成にしたのは、今後、VSCodeにGitHub CopilotやAIアシスタントClineを搭載することを視野に入れたためです。

  • 開発サーバ:AWS EC2
  • 開発ツール:ローカルMacのVSCode(Visual Studio Code)
  • フレームワーク:Django
  • デプロイ:Heroku
  • バージョン管理:Git + GitHub
目次

設定手順

ステップ1:ネットワーク構築

まずはネットワークの構築です。AWS VPCダッシュボードから設定いきましょう。(※事前にAWSクラウドのアカウントを作成してください。)

1-1 VPCを作成する

「お使いのVPC」→「VPCを作成」とクリックしていきます。以下の設定をしたら「VPCを作成」をクリック。なお、リージョンは米国バージニア北部(us-east-1)で作成しています。

  • 名前タグ:infra-vpc
  • IPv4 CIDR:192.168.0.0/16

1-2 サブネットを作成する

次にサブネットです。「サブネット」→「サブネットを作成」と進んでいきます。以下の設定をしたら「サブネットを作成」をクリック。

  • VPC ID:infra-vpc
  • サブネット名:infra-public-subnet-ue1
  • IPv4 サブネット CIDR ブロック:192.168.10.0/24

1-3 インターネットゲートウェイを作成する

開発環境にはローカルMacから接続しますのでインターネットゲートウェイが必要です。「インターネットゲートウェイ」→「インターネットゲートウェイの作成」と進みます。以下の設定をしたら「インターネットゲートウェイの作成」をクリック。

  • 名前タグ:infra-igw

インターネットゲートウェイを作成したら「VPCにアタッチ」でinfra-vpcを設定します。

1-4 ルートテーブルを作成する

最後にルートテーブルを作成します。「ルートテーブル」→「ルートテーブルを作成」と進みます。

  • 名前:infra-public-route

ルートテーブルを作成したら、サブネットinfra-public-subnet-ue1に関連付けて、ルートに以下を追加します。これでネットワーク構築は完了です。

  • 送信先:0.0.0.0/0
  • ターゲット:infra-igw

ステップ2:サーバ構築

2-1 EC2インスタンスを作成する

次にAWS EC2コンソールから開発サーバを構築していきます。「インスタンス」→「インスタンスを起動」と進みます。以下を設定して「インスタンスを起動」をクリックします。

  • 名前:infra-dev-<project> ※<project>にはプロジェクト名を入れてください
  • AMI:Amazon Linux 2023 AMI
  • インスタンスタイプ:t2.micro
  • キーペア:infra-ssh-key ※以下で補足
  • ネットワーク設定
    • VPC:infra-vpc
    • サブネット:infra-public-subnet-ue1
    • パブリックIPの自動割り当て:有効化
    • セキュリティグループ:セキュリティグループを作成
      • セキュリティグループ名:infra-dev
      • インバウンドセキュリティグループのルール ※以下で補足
    • 高度なネットワーク設定
      • ネットワークインターフェイス 1 – プライマリ IP:192.168.10.11

画面途中、キーペア (ログイン) で「新しいキーペアの作成」をクリックします。キーペア名をinfra-ssh-keyにしてキーペアを作成します。作成後、プライベートキーファイルがダウンロードされるので取っておいてください。

セキュリティグループのインバウンドセキュリティグループのルールはデフォルトのままで大丈夫ですが、すべての IP アドレスからのアクセスが許可される設定のため、ローカルMacのIP アドレスに限定した方が安全です。

2-2 IPアドレス固定する

EC2インスタンスのパブリック IPv4 アドレスは設定しないと起動ごとに変わってしまうため、IPアドレスを固定するための設定を行います。EC2コンソールの「Elastic IP」→「Elastic IPアドレスを割り振る」に進みます。ネットワークボーダーグループがus-east-1であることを確認して、特に何も変更せず「割り振る」ボタンをクリックします。Elastic IPアドレスが作成されたら「Elastic IP アドレスを関連付ける」に進み、以下を設定して「関連付ける」をクリックします。これで開発サーバの構築は完了です!

  • インスタンス:infra-dev-<project>
  • プライベート IP アドレス:192.168.10.11

ステップ3:VSCodeからEC2に接続

3-1 ターミナルでSSH接続を確認する

VSCodeから接続する前に、ターミナルからSSH接続を試します。まずは、キーペア作成でダウンロードしたプライベートキーファイルを~/django-dev/infra-ssh-key.pemに配置します。django-devフォルダの作成もお願いします。

次に、プライベートキーファイルのパーミッションを400に変更して、SSH接続できるかを確認します。以下のように表示されたらSSH接続が問題なくできています。

# ターミナル
chmod 400 ~/django-dev/infra-ssh-key.pem
ssh -i ~/django-dev/infra-ssh-key.pem ec2-user@<Elastic IPで設定したパブリックIPv4アドレス>

3-2 VSCodeから接続する

VSCodeをダウンロードしたら「Extensions」をクリックして、以下のExtensionをインストールして、再起動してください。

  • Japanese Language Pack for Visual Studio Code
  • Remote – SSH

再起動したら次に以下のようにConfigファイルのディレクトリを指定します。

  • Command Palette(Cmd + Shift + P)を呼び出す
  • Remote-SSHと入力して「Remote-SSH: Settings」をクリック
  • Remote.SSH: Config Fileのディレクトリを「~/django-dev/config」に変更

django-devフォルダにconfigファイルを作成して、以下の内容を記述します。

# django-dev/config
Host infra-dev-<プロジェクト名>
  HostName <Elastic IPで設定したパブリックIPv4アドレス>
  IdentityFile ~/django-dev/infra-ssh-key.pem
  User ec2-user

VSCodeに戻って「Remote Explore」をクリックするとSSHの下にinfra-dev-<プロジェクト名>が表示されますので、クリックします。左下にinfra-dev-<プロジェクト名>(ここではinfra-dev-taskup)が表示されれば、SSH接続完了です!

参考資料

Udemy
Wix Django APIシステム開発講座【AWS Python 3 PostgresSQL Django 4】 AWSを覚えてリモートワークしたい人のポートフォリオ超速作成術!Webシステム開発にも応用できます
IT自習室
MacからVSCodeでEC2の中身を操作する方法!簡単手順を紹介 今回は、VScodeでEC2に対してSSH接続する方法を手順に合わせて紹介しています。 このような方法は、日々の作業効率を格段に上げてくれるものなので、ぜひ参考にしてくださ...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

霞ヶ関を経て、現在はメガベンチャーのBtoBマーケティング組織の部長
筑波大学ビジネス科学研究科博士課程修了(博士(経営学))
得意分野は、施策効果の検証、インセンティブ最適化、セールス生産性の改善といったデータサイエンス活用

コメント

コメントする

目次