0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2入門 — インスタンス起動からSSH接続まで(Javaエンジニア向け)

0
Posted at

EC2入門 — インスタンス起動からSSH接続まで(Javaエンジニア向け)

はじめに

AWS入門シリーズ2回目。今回は EC2(Elastic Compute Cloud)

前回「AWSの3種の神器」で軽く触れましたが、AWSでまず最初に触るべきサービスです。触ったことがあるかないかで、案件の選択肢が大きく変わります。

Javaエンジニアへの橋渡し
EC2は「AWS上でオンプレサーバーを1台借りている感覚」。Tomcat を動かしていた昔ながらのサーバーが、クラウド上に置き換わっただけと考えると分かりやすいです。


1. EC2とは何か

EC2 = クラウド上の仮想サーバー

  • クリック数回で、Linux / Windows のサーバーが立ち上がる
  • CPU / メモリ / ストレージを自由に選べる
  • 使った時間だけ課金される(従量課金)
  • 不要になったら停止 or 削除で課金停止

必要な時だけ借りる仮想サーバー」というシンプルな理解でOKです。

用途の例

  • Web アプリ(Spring Boot、Next.js など)のホスト
  • バッチ処理サーバー
  • 検証環境・ステージング環境
  • ML の GPU 計算(GPU付きインスタンスも選べる)
  • 社内ツールの実行環境

2. 用語を最初におさえる

EC2を触る前に、この5つは覚えておきましょう。

用語 意味
インスタンス EC2で起動する仮想サーバー1台のこと
AMI サーバーのテンプレート(OS + 初期設定)
インスタンスタイプ CPU/メモリの組み合わせ(t3.micro など)
キーペア SSH接続に使う秘密鍵/公開鍵
セキュリティグループ ファイアウォール(どのポートを開けるか)

AMI(テンプレート)を選んで、タイプ(スペック)を決めて、キーペア(鍵)とセキュリティグループ(壁)を設定して起動」——これが基本の流れ。


3. 起動までのステップ(GUI編)

初回はマネジメントコンソール(GUI)から起動するのが安全です。

Step 1: EC2 ダッシュボードへ

  1. AWSマネジメントコンソールにログイン
  2. サービス一覧から EC2 を選択
  3. 左メニュー「インスタンス」→「インスタンスを起動

Step 2: 名前と AMI を選ぶ

  • 名前: my-first-ec2 など任意
  • AMI: Amazon Linux 2023(初心者おすすめ、無料枠対象)
  • または Ubuntu Server(Linux 系で書き慣れているならこちら)

Step 3: インスタンスタイプ

  • t3.micro を選択(無料枠の対象、1年間実質無料)
  • スペック: 2 vCPU、1 GiB メモリ
  • 「動作確認だけしたい」なら十分

Step 4: キーペアの作成

  • 「新しいキーペアを作成」
  • 名前: my-key(任意)
  • タイプ: ED25519(推奨、新しい暗号方式)
  • 形式: SSH接続なら .pem、Windows PuTTY を使うなら .ppk

ダウンロードした .pem ファイルは絶対に紛失しないこと。これ以外の方法でサーバーに入れなくなります。

Step 5: ネットワーク設定

  • VPC / サブネット: デフォルトのままでOK
  • セキュリティグループ: 新規作成
    • SSH (22番ポート): 自分のIPアドレスのみ許可(Anywhere は本番でも避ける)
    • HTTP (80番) や HTTPS (443番) は必要になったら追加

Step 6: ストレージ

  • 8 GiB gp3(デフォルト)で十分
  • 実運用で足りなくなったら後から増やせる

Step 7: 「インスタンスを起動」

  • ボタンを押す → 数十秒後に 状態が "running" になれば起動成功

4. SSH接続する

起動後、実際にサーバーに入ってみます。

macOS / Linux / WSL の場合

# キーペアのファイル権限を制限(必須)
chmod 400 ~/Downloads/my-key.pem

# インスタンスのパブリック IPv4 アドレス を EC2 コンソールで確認
# Amazon Linux 2023 の場合、ユーザー名は ec2-user
ssh -i ~/Downloads/my-key.pem ec2-user@xx.xx.xx.xx

初回接続時に「未知のホストですが接続しますか?」と聞かれるので yes

接続成功すると、Amazon Linux のプロンプトが出ます:

   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
[ec2-user@ip-xx-xx-xx-xx ~]$

これで「クラウド上のサーバーに入った」状態。あとは通常のLinuxと同じように操作できます。

Windows(PuTTY) の場合

  • .pem.ppk に変換(PuTTYgen使用)
  • PuTTYで接続情報を入力(Host: ec2-user@xx.xx.xx.xx、Port: 22、SSH → Auth → 秘密鍵)

最近は WSL があるので、Windows の人も WSL 経由で ssh コマンド の方がラクです。


5. サーバーで簡単な確認

接続できたら、いくつか動作確認:

# OS 確認
cat /etc/os-release

# CPU情報
lscpu | head

# メモリ確認
free -h

# Java を入れてみる
sudo dnf install -y java-21-amazon-corretto

# バージョン確認
java --version
# openjdk 21.x.x

AWSが提供している Amazon Corretto(AWS版OpenJDK) が数分で入ります。Spring Boot の jar を SCP で送って java -jar すれば、世界に公開できる Java サーバー が完成。


6. 料金の話(ここが一番大事)

AWSで最も事故りやすいのが料金。EC2は特に「立ちっぱなし → 高額請求」の温床です。

料金体系

  • 起動している間だけ課金(1秒単位)
  • 停止中は EBS(ストレージ)代のみ
  • 終了(削除)すればストレージ代も無料

無料枠(1年間)

  • t3.micro または t2.micro月750時間まで
  • 1台なら丸1ヶ月起動しっぱなしでも無料
  • 2台起動すると片方の時間から課金開始

事故らないためのコツ

  1. 使い終わったら「停止」する(削除じゃなくてOK、あとで再起動できる)
  2. 完全に不要なら「終了(Terminate)」する(削除、復元不可)
  3. 請求アラームを設定:月$1超えたら通知、みたいな設定
  4. 無料枠の期間を把握:AWSアカウント作成から12ヶ月

「気づいたら$100請求されてた」は本当にあるあるなので、Billing ダッシュボードを定期的に見る習慣を付けましょう。


7. EC2 vs Vercel / Fargate — 何を選ぶ?

「Web アプリなら EC2 じゃなくてもよくない?」と思う人も多いはず。

サービス 得意な用途
EC2 汎用サーバー、自由度最大、ML/バッチ/常駐プロセス
Vercel Next.js 特化、フロントエンド中心
AWS Fargate Docker コンテナ、常駐サーバー、EC2より管理ラク
AWS Lambda サーバーレス、イベント駆動、リクエスト単位課金
AWS App Runner Web/APIサーバー、EC2より自動化

Web アプリだけなら Vercel / Fargate / App Runner の方が楽ですが、「サーバーを自分で組める」経験は EC2 で1回積んでおく価値があります

面接や案件で「AWS触ったことある?」と聞かれた時、"EC2 起動して SSH で入って Java 動かしたことあります" と言えるだけで、印象が全然違います。


8. Java エンジニア視点での使い所

パターン1: Spring Boot の実行環境

# ローカルでビルド
./gradlew bootJar

# EC2 にアップロード
scp -i my-key.pem build/libs/myapp.jar ec2-user@xx.xx.xx.xx:~/

# EC2 で実行
ssh -i my-key.pem ec2-user@xx.xx.xx.xx
java -jar myapp.jar

パターン2: バッチ処理サーバー

  • 日次バッチ を cron で動かす
  • 巨大なCSVを処理する短命ジョブ用

パターン3: 検証環境

  • 開発チームで共通の動作確認用サーバー
  • 本番と同じLinuxで動くか確認

9. 削除の手順(大事)

学習で立てたインスタンスは、必ず削除して習慣化しましょう。

  1. EC2 ダッシュボードで対象のインスタンスを選択
  2. アクション → 「インスタンス状態」 → 「インスタンスを終了」
  3. 「終了」を実行

「終了」した瞬間から、時間課金もストレージ代も止まる

「停止」だけだとストレージ代(月数十円)が残るので、勉強で使ったら躊躇なく Terminate してOK。


まとめ

項目 ポイント
EC2 クラウド上の仮想サーバー
起動 AMI→タイプ→キーペア→SG→起動
SSH ssh -i xxx.pem ec2-user@IP
料金 起動中のみ課金、無料枠は t3.micro 月750時間
事故防止 使い終わったら停止 or 終了、請求アラーム設定
Java 用途 Spring Boot / バッチ / 検証環境

おわりに

EC2 が触れる = AWS で "サーバーを自分で用意できる" 状態

これができるだけで、履歴書やスキルシートに「AWS(EC2)」と書ける実績が1つできます。案件応募でも「クラウド未経験」に見えないためのミニマム条件です。

無料枠内で1回起動して、SSHで入って、削除する。この一連の流れを一度体験しておくと、次の S3 / RDS / IAM がスッと入ってきます。

次回は S3入門。ファイルアップロードとアクセス制御の基本を、実務でハマるポイントとセットで解説します。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?