
「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 + X | nanoを終了する(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インスタンスを停止する方法
- AWSマネジメントコンソールにアクセス
- EC2 → インスタンス一覧を開く
- 該当のインスタンスを選択
- 「インスタンスの状態」→「停止」をクリック
これでOK!
🧪 再開時の手順
- AWSでインスタンスを「開始」する
- 新しいパブリックIPv4アドレスを確認する
- ターミナルやPowerShellでSSH接続
bash start_jupyter.sh
を実行して Jupyter を起動- 新しい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.token
や NotebookApp.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 スクリプト作成 | nano で start_jupyter.sh を作成し自動化 |
✅ ブラウザからJupyterにアクセス | http://[IPアドレス]:8888/tree でアクセス成功 |
✅ 停止・再開ルールを理解 | 無駄な課金を防ぐための運用ルールも把握 |
👣 この先やっていきたいこと
今回つくった「Jupyter環境」は、今後のAI処理のベースです。
特に👇
- WhisperX を使った音声の文字起こし
- 話者分離済み2音声からの同時トランスクリプト
- VADやタイムスタンプ補正による精度向上
- GPTによる構造化とレポート生成
- 自動化フローのn8n連携(ローカル or AWS)
こういった処理が、自前環境&自分のタイミングで、しかも激安で!回せるようになります。
🧭 非エンジニアの私でもここまでできた
コマンドやLinuxが分からなくても大丈夫。
迷ったときは一つずつ確認すれば、着実に進めます。
そして「また分からなくなったら ChatGPT に聞けばいい!」
この安心感こそが、次のステップへ進む最大の味方です。
✨ 最後に
この記事は、将来の自分のための道しるべとして書きました。
- 「また環境をつくりたくなったとき」
- 「別のインスタンスを立てたとき」
- 「他の人に手順を教えるとき」
いつでもこの記録に戻ってこれるように、保存・共有しておくのがおすすめです。