📚 つくる力の育て方

黒い画面にビビった非エンジニアが、AWSでJupyterを動かすまでの全記録

黒い画面にビビった非エンジニアが、AWSでJupyterを動かすまでの全記録

「Jupyter NotebookをAWSで動かしてみたいけど、黒い画面って何?」

「Colabは使えるけど、SSH?chmod?って何??」

この記事は、そんな“非エンジニア代表”の私が、AWS EC2でJupyter Notebookを立ち上げるまでにやったこと全部を、実際にハマったポイント込みでまとめたものです。

環境は Windows、ターミナル恐怖症気味。

それでもできました!

同じように迷っている人の助けになれば嬉しいです。

🚀 なぜColabを卒業してAWSに移行したのか?

Colabは便利。特にPythonやJupyter Notebookに慣れていない人にとっては、「ブラウザで動くし、無料でGPUも使える」という最強の環境です。

私も長らくColabでAI関連の開発をしていました。

でもある時、こう思ったんです。

  • Whisper API の料金が地味に痛い…
  • Colab だとファイルの保存や自動処理が不便…
  • 毎回の環境準備がちょっと面倒…

さらに、こんなことをやりたくなってきました。

  • AWSに保存した音声を自動で処理したい
  • WhisperXを使って、話者分離+高精度の文字起こしをしたい
  • Pythonコードを「本番環境」で回したい

そんな中で知ったのが「AWS EC2でJupyter Notebookを自前で立ち上げる方法」でした。

正直、「AWS?黒い画面??なにそれこわい」状態。

でも、自分の環境で自由に処理できて、API代も浮いて、学習としても超アリだと気づきました。

🧱EC2って何?黒い画面が怖くても最初の一歩を踏み出す方法

AWSの「EC2」は、簡単に言うと クラウド上に自分だけのパソコン(サーバー)を持てるサービスです。

ブラウザからポチポチ操作するだけで、仮想マシンを数分で立ち上げられます。

でもここで初心者に立ちはだかる壁が…

🧱 壁①:インスタンスって何?

「インスタンス」というのは、EC2で立ち上げた1台の仮想サーバーのこと。

例えるなら、

「AWSの世界に仮想のノートPCを1台つくる」みたいなイメージです。

起動したり、停止したり、削除したりができるので、本当に“物理PCを借りている感覚”に近いです。

🧱 壁②:黒い画面(SSH接続)が怖い

この画面のことです👇

[ec2-user@ip-xxx-xxx-xxx-xxx ~]$

SSH接続」といって、自分のPCからAWS上のサーバーにアクセスして操作できる状態。

でも、非エンジニアからすればただの謎の呪文の世界ですよね…。

私も「何をどうすればいいの?」と立ち尽くしました。

✅ 実際にやったこと(ざっくり)

  • EC2で「t3.medium」インスタンスを選ぶ
  • OSは「Amazon Linux 2」を選択
  • 「キーペア(.pemファイル)」を作成・ダウンロード
  • WindowsのPowerShellからSSH接続(黒い画面)に挑戦
  • sudo yum install python3 などでPython環境構築

ここで覚えておくと安心なのは👇

  • 停止すればお金はかからない(ストレージ代は除く)
  • 黒い画面で今何が起きてるか分からなくなっても、Ctrl + C でとりあえず止められる
  • 消してしまっても、もう一度作ればOK

「黒い画面が怖い」という気持ちの正体は、

“何を打てば何が起きるのか分からない” という不安。

それさえ1つずつ解消できれば、意外と怖くなくなります。

📝start_jupyter.shって何?謎の「nano」コマンドと初めての保存体験

黒い画面で無事にログインできて、Python や pip、Jupyter のインストールまで完了。

いよいよ次は「Jupyter Notebook を起動するコマンド」を準備します。

🧩 .shファイルってなに?

.sh ファイルというのは、一連のコマンドをまとめたスクリプトファイルです。

いちいち1行ずつ打たなくても、このファイルを実行すればまとめて動いてくれる、という超便利なやつ。

私が作ったのはこんなファイル👇

```bash
#!/bin/bash

source ~/.bashrc
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --NotebookApp.token='' --NotebookApp.password=''

これは、Jupyter Notebook をインスタンス上で起動し、自分のPCからブラウザでアクセスできるようにする設定です。

🧠 「nano」ってなに?

黒い画面で .sh ファイルを作るには、「nano」というエディタを使いました。

例えば👇

nano start_jupyter.sh

と打つと、黒い画面が切り替わってテキスト編集モードになります。

はじめて見ると、「どこに何を打つの?」「保存ってどうするの?」とプチパニックになりますが、やることはこれだけです👇

💾 nanoでの保存・終了方法(めちゃ大事)

操作意味
Ctrl + Oファイルの保存(Oは“Output”のO)
Enter保存ファイル名の確定(そのままでOK)
Ctrl + Xnanoを終了する(Xは“Exit”のX)

これで、無事に start_jupyter.sh というファイルが保存されました。

最後に実行権限をつけて、起動!

保存した .sh ファイルはそのままでは実行できないので、以下のコマンドで「実行できる状態」にします。

chmod +x start_jupyter.sh

そして、いよいよJupyterを起動!

bash start_jupyter.sh

🌐Jupyterが開いた!でもURLが分からない?黒い画面との付き合い方

.sh ファイルを使って Jupyter Notebook を起動したあと、黒い画面には何やら長い文字列がズラズラと表示されます。

最初は「で、どこにアクセスすればいいの…?」と途方に暮れました。

でも、よく見ると、ちゃんとそれっぽいURLが表示されていたのです。

🧭 黒い画面に出てくるこの表示👇がすべて

Jupyter Server 2.16.0 is running at:
    http://127.0.0.1:8888/tree?token=●●●
    http://ip-172-31-25-224.ec2.internal:8888/tree?token=●●●

127.0.0.1 というのは「自分自身(localhost)」という意味で、EC2の中でJupyterが自分自身に対して開いているアドレスです。

でも、これ そのままクリックしても開けません。

なぜなら、それは「EC2(AWSの中)から見た世界」だから。

自分のPC(ローカル)からアクセスするには、別のアドレスに変換する必要があります。

🌍 使うのは「パブリックIPv4アドレス」

AWS EC2のインスタンスには「パブリックIPv4アドレス」という、自分のPCからアクセスできるグローバルなアドレスが割り当てられています。

EC2の管理画面で確認できます👇
(例:23.22.150.153

このIPを使って、下記のようにURLを組み立てます:

http://[パブリックIP]:8888/tree

👇

http://23.22.150.153:8888/tree

🪄 パスワードやトークンがない理由は?

実は、さっき .sh ファイルで起動するときに以下のオプションをつけていました👇

--NotebookApp.token=''
--NotebookApp.password=''

これにより、ログイン時にトークンやパスワードの入力を省略しています。

開発用ならこれでOK。

ただし、セキュリティ的には危険なので、公開用途では絶対に避けましょう。

アクセスできないときのチェックリスト

  • EC2インスタンスが 「停止」されていないか
  • セキュリティグループで ポート8888が開放されているか
  • ブラウザでアクセスするとき http://IPアドレス:8888 になっているか(httpsではない)

これで、ようやくJupyter Notebookが 自分のAWSインスタンス上で使えるようになります!

作業が終わったらどうする?インスタンスの「停止」と「再開」のやり方

Jupyter Notebookで作業が終わったあと、「このインスタンス、どうすればいいの?」と手が止まりますよね。

「消すの?停止するの?また明日使いたいけど…?」

ここでは、インスタンスの正しい“しまい方”について解説します。

🧯 基本ルール:削除しない。停止すればOK!

操作内容おすすめ度
停止(Stop)今の状態を保存したまま電源を切るイメージ。ストレージは残る。⭐️⭐️⭐️⭐️⭐️
終了(Terminate)完全に削除。もう元には戻せない。ストレージも消える。⚠️初心者には非推奨

「停止」しておけば明日また使える!

  • Jupyterのインストールや設定はそのまま残る
  • 起動すれば、また同じ環境にアクセスできる
  • 保存した .ipynb ファイルも残ってる
  • インスタンスはストレージ代(数円/日)だけが発生するだけ

注意点としては、「パブリックIPが変わる」ことがあります。

停止→再起動すると、前と違うIPアドレスになる可能性があるので、再確認しましょう。

💡 EC2インスタンスを停止する方法

  1. AWSマネジメントコンソールにアクセス
  2. EC2 → インスタンス一覧を開く
  3. 該当のインスタンスを選択
  4. 「インスタンスの状態」→「停止」をクリック

これでOK!

🧪 再開時の手順

  1. AWSでインスタンスを「開始」する
  2. 新しいパブリックIPv4アドレスを確認する
  3. ターミナルやPowerShellでSSH接続
  4. bash start_jupyter.sh を実行して Jupyter を起動
  5. 新しいIPでブラウザからアクセス

「停止」で維持しておけば、再設定の手間なしで使い続けられます。

そして、不要になったら削除すればOK。とてもシンプルです。

🌀毎回同じコマンドを打つのが面倒?.shファイルでJupyter起動を自動化!

ここまでで、Jupyter Notebook を起動するには、黒い画面(SSH)で毎回このようなコマンドを打っていました👇

jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --NotebookApp.token='' --NotebookApp.password=''

正直めんどくさいし、毎回忘れそう…。

そこで登場するのが、シェルスクリプト(.shファイル)です。

.shファイルって要するに「まとめて実行できるメモ帳」

スクリプトというと難しく聞こえますが、要するにこうです👇

「やることをメモ帳にまとめておいて、1発で実行できるようにする」

例えば、次のような内容を start_jupyter.sh というファイルに書いて保存します

#!/bin/bash

source ~/.bashrc
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --NotebookApp.token='' --NotebookApp.password=''

🧪 作り方(おさらい)

黒い画面(SSH)で、以下のように入力👇

nano start_jupyter.sh

そして上記の内容を貼り付けて、

  • Ctrl + O(保存)
  • Enter
  • Ctrl + X(終了)

で完了。

🛠 実行前に「実行権限」を与えるのを忘れずに!

chmod +x start_jupyter.sh

これで実行可能になります。

🚀 あとはこれを打つだけで起動!

bash start_jupyter.sh

これだけで、面倒な起動コマンドが 一発で実行できます。

💡 応用:毎日やることをまとめた .sh にしておくと最強

たとえば今後、WhisperXで文字起こしを自動で回すようになったら👇

#!/bin/bash

# Jupyter起動
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser &

# WhisperXの処理フォルダに移動して、処理開始
cd ~/whisperx_project
python transcribe.py

みたいに、複数の作業をまとめて自動化できます。

明日また作業を再開するには?Jupyter起動メモを1枚にまとめよう

せっかく頑張って構築したJupyter環境。

でも、1日経つと「どうやって起動したっけ?」「どこにアクセスするの?」と忘れがちです。

そんな未来の自分のために、「明日またやるときの手順メモ」をここに残しておきます!

再開手順まとめ(Windowsの場合)

🔌 1. EC2インスタンスを起動する

AWSマネジメントコンソールにアクセスし、EC2 → インスタンス → dev-jupyter を「開始」する。

🌐 2. 新しい「パブリックIPv4アドレス」を確認

インスタンス詳細から新しいIPアドレスをメモする。
(例:23.22.150.153

🖥 3. PowerShellを開いて、キーがあるフォルダへ移動

powershell
cd "C:\Users\aziso\OneDrive\Desktop\Actloop\キーペア"

🔐 4. SSH接続する

ssh -i "dev-jupyter-key.pem" ec2-user@[新しいIPアドレス]

🚀 5. Jupyterを起動する

黒い画面(SSH)で以下を実行👇

bash start_jupyter.sh

🌍 6. ブラウザからアクセス

以下のようなURLでアクセス(※ポートは 8888

http://[新しいIPアドレス]:8888/tree

ログイン画面は出ません(パスワード無し設定済み)。

※本番用途では NotebookApp.tokenNotebookApp.password を適切に設定することで、安全にアクセス管理できます。

🛑 7. 作業が終わったらインスタンスを「停止」する!

これを忘れると、無駄に課金されます!

💡 補足:Jupyter Notebookが起動してるか確認したいとき

黒い画面に以下のような表示が出ていれば成功👇

Jupyter Server is running at:
    http://127.0.0.1:8888/tree

📦 このメモはどこかに保存しておこう

OneNote、Notion、スプレッドシート、テキストファイルなんでもOK。

「明日も同じように開ける!」という安心感は、何より大事です。

🎯まとめ:黒い画面は怖くなかった!AWSでColab級の環境を自力で構築

ここまで読んでくださったあなた、本当にお疲れ様でした!

「黒い画面怖い…」

「コマンドとか全然わからない…」

そんな非エンジニアの私が、AWS上にJupyter Notebookを構築できた記録をまとめてきました。

💡 今回やったことまとめ

ステップ内容
✅ EC2インスタンス作成t3.medium(Amazon Linux 2023)を選択
✅ SSH接続.pemキーを使ってPowerShellから接続
✅ Python & pipの確認必要な環境が入っていることをチェック
✅ Jupyter Notebookのインストール黒い画面でコマンドを使って導入完了
✅ 起動用 .sh スクリプト作成nanostart_jupyter.sh を作成し自動化
✅ ブラウザからJupyterにアクセスhttp://[IPアドレス]:8888/tree でアクセス成功
✅ 停止・再開ルールを理解無駄な課金を防ぐための運用ルールも把握

👣 この先やっていきたいこと

今回つくった「Jupyter環境」は、今後のAI処理のベースです。

特に👇

  • WhisperX を使った音声の文字起こし
  • 話者分離済み2音声からの同時トランスクリプト
  • VADやタイムスタンプ補正による精度向上
  • GPTによる構造化とレポート生成
  • 自動化フローのn8n連携(ローカル or AWS)

こういった処理が、自前環境&自分のタイミングで、しかも激安で!回せるようになります。

🧭 非エンジニアの私でもここまでできた

コマンドやLinuxが分からなくても大丈夫。

迷ったときは一つずつ確認すれば、着実に進めます。

そして「また分からなくなったら ChatGPT に聞けばいい!」

この安心感こそが、次のステップへ進む最大の味方です。

最後に

この記事は、将来の自分のための道しるべとして書きました。

  • 「また環境をつくりたくなったとき」
  • 「別のインスタンスを立てたとき」
  • 「他の人に手順を教えるとき」

いつでもこの記録に戻ってこれるように、保存・共有しておくのがおすすめです。

  • この記事を書いた人

SHIRAN

「コードは知らない。でも作れる。」AIとツールで便利を生む非エンジニア。挫折も経験しながら、今は作る楽しさを発信中。詳しくはこちら

-📚 つくる力の育て方
-, ,