エンジニアを目指す日常ブログ

日々勉強したことのメモ。間違っていたら教えてください。

【AWSに入門】EC2でサーバを立ち上げて、SSHでサーバに入る方法メモ

はじめに

今回の記事の目的

EC2サーバ(Linux)を構築し、サーバにログイン(SSHアクセス)する。

最終的に目指したいところ

最終的には、ECS(Fargate)を使ってdockerコンテナを立ち上げ、自分のWebアプリを起動したい。

そのためには、まずローカルでdockerの環境を整える必要がある。vagrant等でローカルLinux環境を構築しても良いが、せっかくなので勉強がてら、EC2でサーバを立ち上げ、それを疑似的にローカル環境とみなしてdocker環境を構築する。

前提

  • AWSマネジメントコンソールにアクセスできること。
  • IAMユーザに対し、必要なAWSサービスの利用を許可するIAMロールが紐づいていること。

EC2を利用したサーバの構築手順

VPCを作成

VPCを作成する。

AWSコンソール画面の「VPC」から「VPCを作成」を選択。

vpc作成
vpc作成画面

CIDRブロックは10.0.0.0/24とした。
意味としては

  • プライベートIPアドレス
  • IPアドレスのネットワーク部が24ビット(10.0.0 までの部分)
  • ネットワーク全体を表すIPアドレスホスト部を0としたアドレス(最後の0の部分)
  • ホスト部には、 32-24=8 ビット分、256個のアドレスを利用可能。10.0.0.1~10.0.0.254IPアドレスが利用可能。(10.0.0.255はブロードキャストアドレス)

CIDRブロックに関する記事
IPv4 CIDRブロック - Qiita CIDRブロックを計算できるサイト
CIDRをIPアドレスに展開ツール v2.0.3 -IPv46 – IPアドレス(CIDR)の範囲確認・変換・国判定サイト

サブネットを作成する

同じVPCコンソールから、サブネットタブを選んで「サブネットを作成」を選ぶ。

VPC IDは先ほど作ったVPCを設定する。

サブネット作成画面
サブネット作成画面

今回サブネットにはインターネットゲートウェイとの通信を設定して、インターネットからアクセスできるようにしたいので、名前はパブリックサブネットを表すpublic-1aとした。1aアベイラビリティゾーン(AZ)がap-northeast-1aであることを表す。(東京リージョンの1個目のAZ)

インターネットゲートウェイを作成する

同じVPCコンソールから、インターネットゲートウェイを選んで「インターネットゲートウェイの作成」を選ぶ。

インターネットゲートウェイの作成
インターネットゲートウェイの作成

次に、作成したインターネットゲートウェイにチェックマークを入れ、「アクション」→「VPCにアタッチ」。先ほど作成したVPCにアタッチする。

ルートテーブルの作成・設定

VPCコンソールから、ルートテーブルを選んで「ルートテーブルの作成」を選ぶ。 VPCは先ほど作ったVPCを選ぶ。

ルートテーブルの作成
ルートテーブルの作成

作成したルートテーブルを選び、「ルートを編集」→「ルートを追加」で、0.0.0.0/0(フルオープン)から、インターネットゲートウェイへのアクセスルートを追加する。

ルートテーブルの設定
ルートテーブルの設定

ルートテーブルを選択し、「サブネットの関連付け」→「サブネットの関連付けを編集」から、先ほど作ったサブネット(public-1a)を関連付ける。※この操作で、サブネットがいわゆる「パブリックサブネット」となる。

EC2インスタンスを起動する

マネジメントコンソールからEC2のコンソール画面に飛ぶ。「インスタンスを起動」を選ぶ。

AMIの選択

AMI選択画面では「Amazon Linux」を選択。

AMIの選択
AMIの選択

AMIとは、サーバを立ち上げるときの設定ファイルのようなもので、自分で作成することもできるし、AWS側が用意しているものを使うこともできる。また、サードパーティー製のものを買って使うこともできる。

インスタンスタイプの選択

インスタンスタイプの選択。t2.microを選んでおく。

インスタンスタイプの選択
インスタンスタイプの選択

インスタンスタイプとは、起動するサーバのスペックを表すもの。(詳細は「インスタンスタイプ」「インスタンスファミリー」で検索)

詳細を設定する

インスタンス詳細の設定
インスタンス詳細の設定

  • ネットワーク:先ほど作ったVPC
  • サブネット:先ほど作ったパブリックサブネット
  • 自動割り当てパブリックIP:有効(自動でパブリックIPアドレスをふってくれる)

ストレージの追加

デフォルト設定とする。

ストレージの追加
ストレージの追加

タグの追加

今回はNameタグのみつけておく。

タグの追加
タグの追加

セキュリティグループの設定

SSHとHTTPのポートに対し、0.0.0.0/0(フルアクセス)の権限を与えておく。おそらく実際の業務システムでは、フルアクセス設定はNG。

セキュリティグループの設定
セキュリティグループの設定

キーペアの作成

キーペアを作成し、秘密鍵をダウンロードしておく(EC2アクセス時に使用する)。

キーペアの作成
キーペアの作成

設定完了

しばらく待つとインスタンスが起動する。

EC2インスタンスへのSSHアクセス

マネジメントコンソールから、起動したEC2のパブリックIPアドレスを確認する。

パブリックIPアドレス確認
パブリックIPアドレス確認

teratermを起動し、ホストに先ほど設定したIPアドレスを入れる。

teraterm
teraterm

  • ユーザ名:ec2-user
  • RSA/DSA/・・・・鍵を使う にチェックを入れる。
  • 秘密鍵に、EC2作成時にダウンロードしておいた秘密鍵を設定する。

これでサーバにアクセスできる。 実際の業務では、こんなふうにインターネット経由で誰でもアクセスできては問題なので、違うアクセス方法を考える必要があると思われる。。

おわりに

今回はEC2インスタンスを準備し、起動した上で、SSHアクセスを行なった。 次はサーバ上にdocker環境を構築して、コンテナをEC2上に立ち上げる方法をメモする。