【AWSサービス 基礎編】 Amazon EC2 でインスタンスを起動しSSH接続する

Amazon EC2 でインスタンスを起動しSSH接続する
目次

概要

Amazon EC2(Elastic Compute Cloud)は、AWSが提供する仮想サーバーサービスです。物理サーバーを購入・管理することなく、必要なときに必要な分だけコンピューティングリソースを利用できます。

クラウド上でアプリケーションを動かすためには、まずサーバーが必要です。EC2はAWSのもっとも基本的なサービスの1つであり、Webサーバー、アプリケーションサーバー、開発環境など多くのユースケースで利用されています。この記事では、EC2インスタンスを起動してSSHで接続するまでの基本操作を体験します。

この記事のメリット

  • Amazon EC2の基本概念(インスタンス、AMI、インスタンスタイプ、キーペア、セキュリティグループ)を理解できる
  • AWSマネジメントコンソールからEC2インスタンスを起動する手順を習得できる
  • キーペアを使ったSSH接続の仕組みと手順を理解できる
  • インスタンスの状態管理(起動・停止・終了)の違いを把握できる

執筆者とキャラクター紹介

執筆者:土肥(とひ)

株式会社ジェニュインの代表であり元エンジニア。これまでオンプレミスと AWS 環境のインフラ業務を担当。AWS 認定資格の学習で得た知識を、ハンズオンとともに解説するのが得意。直近では新人の教育も行っており、これから技術を学ぶ方が納得できる解説を心がけています。基礎編・Cloud Practitioner の記事では、解説役としても登場します。

土肥

クラウドおさる

クラウドおさる

はじめましてでござる。弊猿はクラウドおさる。IT インフラが異常に発達した猿山から、雲に乗って地上の AWS を学びに降りてきたのでござる。

クラウドおさる

基礎編や Cloud Practitioner の記事では、とひさんに素朴な疑問をぶつける役でござるな。Security - Specialty などの記事では、要所でワンポイントや注意点をひとこと添えるでござる。

クラウドおさる

猿山にもデータセンターや監視当番があって、地上で起きることはだいたい猿山にも同じ仕組みがあるのでござる。例え話がつい猿山に寄るのは、弊猿の癖でござる。

技術解説

EC2インスタンスとは

クラウドおさる

とひさん、EC2インスタンスってよく聞くんですけど、具体的にはどういうものなんですか?

土肥

簡単に言うと、AWS上で動く仮想マシンのことだよ。物理サーバーのハードウェアリソースを仮想化技術で分割して、1台1台が独立したサーバーとして使えるんだ。

クラウドおさる

自分専用のサーバーがクラウド上にあるようなイメージですか?

土肥

そうそう、まさにそのイメージ。しかも数分で起動できるし、不要になったら即座に削除(終了)もできる。物理サーバーだと購入から設置まで何週間もかかるけど、EC2なら数クリックでサーバーが手に入るんだよ。

クラウドおさる

すごく手軽なんですね!

インスタンスを構成する主要要素

クラウドおさる

EC2インスタンスを起動するときって、何を設定すればいいんですか?

土肥

大きく4つの要素を指定するよ。まず1つ目がAMI(Amazon Machine Image)。これはインスタンスの起動に使うテンプレートで、OSの種類(Amazon Linux、Ubuntu、Windowsなど)やプリインストールされたソフトウェアの構成が含まれているんだ。

クラウドおさる

パソコンを買うときにWindowsかMacかを選ぶような感じですか?

土肥

いいたとえだね!まさにそんな感じ。で、2つ目がインスタンスタイプ。これはインスタンスに割り当てるCPU、メモリ、ストレージ、ネットワーク性能の組み合わせだよ。用途に応じていくつかのファミリーから選べるんだ。まとめるとこんな感じだよ。

ファミリー例特徴
汎用t3.micro, t3.smallバランスの取れたリソース配分。開発環境やWebサーバーに適する
コンピューティング最適化c6i.largeCPU性能を重視。バッチ処理や科学計算に適する
メモリ最適化r6i.largeメモリ容量を重視。データベースやキャッシュに適する
ストレージ最適化i3.large高速なローカルストレージ。データウェアハウスに適する
クラウドおさる

用途に合わせてスペックを選べるんですね!残り2つは何ですか?

土肥

3つ目がキーペア。インスタンスにSSH接続するための認証に使う公開鍵と秘密鍵のペアだよ。公開鍵はインスタンス内に配置されて、秘密鍵はユーザーがローカルに保持するんだ。家の鍵に例えると、公開鍵がドアの鍵穴で、秘密鍵が自分だけが持つ鍵、というイメージだね。

クラウドおさる

なるほど、秘密鍵をなくしたらログインできなくなっちゃうんですね。

土肥

その通り!だから秘密鍵の管理はとても大事だよ。そして4つ目がセキュリティグループ。これはインスタンスへのネットワークアクセスを制御するファイアウォールで、インバウンド(受信)とアウトバウンド(送信)のトラフィックルールを定義するんだ。

クラウドおさる

誰がアクセスできるかをコントロールする仕組みなんですね!

EC2インスタンスの構成要素(AMI、インスタンスタイプ、キーペア、セキュリティグループの関係図)

インスタンスのライフサイクル

クラウドおさる

EC2インスタンスって、起動したらずっと動いてるんですか?

土肥

いい質問だね。インスタンスにはいくつかの状態があって、ライフサイクルとして管理されているんだ。主要な状態をまとめるとこうなるよ。

状態説明
pending起動処理中
running稼働中。課金が発生する
stopping停止処理中
stopped停止済み。インスタンスストアのデータは消失するが、EBSボリュームのデータは保持される。コンピューティング料金は発生しない
shutting-down終了処理中
terminated終了済み。すべてのリソースが解放される
クラウドおさる

「停止」と「終了」って何が違うんですか?似てるようで違う気がするんですけど…

土肥

ここは大事なポイントだね。「停止」はインスタンスを一時的に止める操作で、再起動して使い続けることができるんだ。パソコンのスリープに近いかな。一方「終了」はインスタンスを完全に削除する操作で、元に戻すことはできないよ。

クラウドおさる

「終了」は取り消せないんですね…間違えたら大変だ。

土肥

そうなんだ。だから操作するときは「停止」なのか「終了」なのか、しっかり確認してからクリックするようにしようね。ちなみに停止中はコンピューティング料金が発生しないから、使わないときは停止しておくとコスト節約になるよ。

クラウドおさる

使わないときは停止、もう要らなくなったら終了、と使い分ければいいんですね!

新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方を募集しています。プログラミング未経験から入社して活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます

実践

ここでは、EC2インスタンスを1台起動し、SSH接続してコマンドを実行するまでの手順を体験します。

前提条件

  • リージョン: ap-northeast-1(東京)
  • AWSマネジメントコンソールにログイン済み
  • VPC/サブネットが存在する状態
リソース種別リソース名用途
EC2インスタンスmy-first-instanceハンズオン用インスタンス
キーペアmy-first-keypairSSH接続用

キーペアの作成

  • 上部の検索バーに EC2 と入力し、表示された「EC2」を選択します
  • 左側ナビゲーションの「ネットワーク&セキュリティ」→「キーペア」を選択します
  • 「キーペアを作成」をクリックします
  • 以下を設定します
  • 名前: my-first-keypair
  • キーペアタイプ: RSA
  • プライベートキーファイル形式: .pem(Linux/macOSの場合)
  • 「キーペアを作成」をクリックします
キーペアの作成画面

秘密鍵ファイル my-first-keypair.pem が自動的にダウンロードされます。このファイルはSSH接続に必要なため、安全な場所に保管してください。

ターミナルで秘密鍵のパーミッションを変更します。

chmod 400 my-first-keypair.pem

インスタンスの起動

  • 左側ナビゲーションの「インスタンス」→「インスタンス」を選択します
  • 「インスタンスを起動」をクリックします
  • 以下を設定します

名前とタグ

  • 名前: my-first-instance

AMI(Amazon マシンイメージ)

  • Amazon Linux 2023 AMI を選択します(デフォルトで選択されています)
  • アーキテクチャ: 64ビット (x86)
AMIの選択画面(Amazon Linux 2023が選択された状態)

インスタンスタイプ

  • インスタンスタイプ: t3.micro

キーペア

  • キーペア名: my-first-keypair(先ほど作成したキーペアを選択)

ネットワーク設定

  • 「編集」をクリックします
  • VPC: 作成済みのVPCを選択
  • サブネット:作成済みの パブリックサブネットを選択
  • パブリックIPの自動割り当て: 有効化
  • ファイアウォール(セキュリティグループ): 「セキュリティグループを作成する」を選択
  • セキュリティグループ名: my-first-instance-sg
  • インバウンドセキュリティグループのルール:
  • タイプ: ssh
  • ソースタイプ: 自分のIP
ネットワーク設定画面(セキュリティグループの設定)

その他の項目はデフォルトのままにします。

  • 「インスタンスを起動」をクリックします

起動成功のメッセージが表示されます。

インスタンスの起動成功画面

インスタンスへのSSH接続

  • インスタンス一覧画面で、my-first-instance の状態が「実行中」になるまで待ちます
  • my-first-instance を選択し、下部の「詳細」タブで「パブリック IPv4 アドレス」を確認します
インスタンス詳細画面(パブリックIPアドレスが表示された状態)

ターミナルから以下のコマンドでSSH接続します。{パブリックIP} は確認したIPアドレスに置き換えてください。

ssh -i my-first-keypair.pem ec2-user@{パブリックIP}

初回接続時にホスト鍵の確認メッセージが表示されるため、yes と入力します。

接続に成功すると、Amazon Linux のプロンプトが表示されます。以下のコマンドでインスタンスの情報を確認できます。

# OSの情報を確認
cat /etc/os-release

# インスタンスメタデータからインスタンスタイプを確認
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-type

確認が完了したら exit でSSH接続を終了します。

インスタンスの状態確認

  • インスタンス一覧画面で my-first-instance を選択します
  • 「インスタンスの状態」ドロップダウンから、インスタンスの停止や終了が可能であることを確認します
インスタンスの状態メニュー(停止・終了などの選択肢が表示された状態)

まとめ

  • Amazon EC2は、必要なときに必要な分だけ利用できる仮想サーバーサービスである
  • インスタンスの起動にはAMI(OSテンプレート)、インスタンスタイプ(スペック)、キーペア(認証)、セキュリティグループ(ファイアウォール)の設定が必要
  • キーペアの秘密鍵はダウンロード後に再取得できないため、紛失に注意が必要
  • セキュリティグループのインバウンドルールでSSHを許可する際は、ソースを「自分のIP」に限定してセキュリティを確保する
  • インスタンスの「停止」は一時停止(再起動可能)、「終了」は完全な削除であり、用途に応じて使い分ける

参照先

キャリア相談
クラウドおさる

独学の先に、AWS の仕事がある ── ジュニアおさるのキャリア相談

CLF には受かったけれど、次に何をすればいいのか分からない。独学で AWS を学ぶジュニアおさるの相談に、株式会社ジェニュイン代表の土肥が答えています。

  • ✓資格はゴールか、CLF の次に何から手を付けるか
  • ✓EC2 の次に作ってみる構成と、IaC・コスト管理
  • ✓実務経験ゼロでも、面接で話せる「これまで」の作り方
新卒・未経験の方へ
クラウドおさる

AWS を仕事にしたい方へ ── 新卒・未経験から

この記事を書いているのは、AWS の設計・構築を仕事にしている現役エンジニアです。運営元の株式会社ジェニュインでは、新卒・未経験の方を募集しています。プログラミング未経験から入社して活躍しているメンバーもいます。

  • ✓システム開発・WEB エンジニア / インフラ構築などの職種で、未経験から応募できます
  • ✓未経験から入社した社員の声を含む社員アンケートを掲載
  • ✓応募フォームから 1 分で応募できます
Amazon EC2 でインスタンスを起動しSSH接続する

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社ジェニュイン(https://genuine-pt.jp)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した株式会社Luxyを引き継ぎ、代表に就任。
その後アガルートグループ内の株式会社ジェニュインと合併。
合併後同社代表に就任。

目次