PyCharmでAmazon EC2上のPythonコードをデバッグする
今まで、Amazon EC2(Amazon Linux)上に格納されているPythonのアプリケーションコードを、Visual Studio Codeを使用して修正していました。
Visual Studio Codeでも問題ないのですが、他のエディタやIDEも使ってみたくなったので、今回はPyCharmを使ってEC2上のPythonコードをデバッグできるか試してみることにしました。
※ 以下2024年6月の情報で、macで操作しています。
PyCharmの価格
2024年6月時点では、学生・教員・コミュニティは無料、
個人利用の場合、PyCharm Professional
は年間(1年目)税込 14,157 JPYのようでした。初回30日間は体験版を無料で使えるようです。
詳細は以下公式サイトをご覧ください。
Amazon EC2へSSH接続する
では、早速PyCharmをmacへインストールします。
インストール後、PyCharmを開くと以下の画面が表示されます。
Remote Development機能はBeta版でした。
左側のRemote Development
の下のSSH
を選択し、New Project
を選択します。
Connection
欄の右側の歯車マークを選択します。
開いたSSH Configurations
画面の左側の+
を選択すると以下の画面が表示されます。
Host
に、対象のEC2インスタンスのパブリック DNSをコピーして貼り付けます。
Username
にec2-user
、Authentication type
にKey pair
を選択して、SSHのキーペアの秘密鍵の格納場所を選択します。
Test Connection
ボタンを押して接続テストしてみます。
成功しました。
SSH Configurations
画面で、Authentication type
にOpenSSH config and authentication agent
を選択する場合、
~/.ssh/config
の設定ファイルに以下を記載し、
SSH Configurations
画面のHost
に、対象のEC2インスタンスのパブリック DNSの値を設定すると、接続できました。(Username
やPort
は、設定ファイルに記載済みのため、自動で設定されました。)
Host <パブリック DNS>
User ec2-user
Port 22
IdentityFile <秘密鍵のパス>
OKボタンを押して、次の画面のConnection
欄を上記で設定したものに変更し、Check Connection and Continue
ボタンを押して、EC2インスタンスへ接続してみます。
EC2のインスタンスタイプがt2.micro
だったので、以下の警告メッセージが表示されました。
以下の公式サイトにリモート開発のシステム要件が記載されてました。
最小要件は、
- x86_64 または arm64 アーキテクチャの 4 つの vCPU。また、コア数を増やすよりも、クロック周波数を高くすることをお勧めします。
- 8GB の RAM。
- IDE がすでにインストールされている場合でも、少なくとも 500MB の空きディスク容量。
とのことなので、(上記以外にも要件があるため、詳細は公式サイトをご覧ください。)
EC2インスタンスタイプをt2.xlarge
に変更して、改めて接続してみます。
※ 私の環境はElastic IP アドレスを割り当てていないので、EC2インスタンスを停止するとパブリック DNSが変わります。SSH Configurations
画面でAuthentication type
がKey pair
の場合、Host
を変更後のパブリック DNSに変更して再接続しています。
接続に成功しました。
Project directory
を選択して、Start IDE and Connect
ボタンを押します。
無事、Amazon EC2へSSH接続できました。
PyCharmでAmazon EC2へSSH接続すると、初回はmain.py
のsample Python scriptが自動で生成されるようです。
デバッグしてみる
任意の場所にブレイクポイントを付与してデバッグ実行してみます。
デバッグ実行することができました。
まとめ
今回は、PyCharmでAmazon EC2へSSH接続して、EC2上のPythonコードをデバッグできるか試してみました。
まだBeta版とのことですが、リモート開発のシステム要件を満たしていれば、問題なくEC2インスタンスへSSH接続し、EC2上のPythonコードをデバッグすることができました。
PyCharmで、EC2上のDockerコンテナ内のPythonコードをデバッグできるか確認できていないので、引き続き試していこうと思います。
Discussion