LoginSignup
0
0

More than 3 years have passed since last update.

EC2の用語とハンズオン

Posted at

EC2とは

Elastic Compute Cloud(EC2)とは、Amazonが提供している仮想サーバを構築するサービスです。
そもそも仮想サーバとは、1台のサーバ上に仮想上複数のサーバを運用させる仕組みです。

用語

インスタンス

EC2上で稼働する仮想サーバのこと。

インスタンスタイプ

インスタンスのマシンスペック。CPU・メモリのタイプを決める。
例えば、無料枠のインスタンスタイプt2.microではtがファミリー名(テスト向きか、メモリ最適化等の用途)、数字が世代番号、microはインスタンスのサイズ(CPU・メモリのスペック)。世代番号は数字が大きいほど最新。

インスタンスタイプの種類

t3系・・・テスト向き。CPUバーストが特徴。バーストとはCPUのパワーを使っていないとき、そのパワーを溜めることができること。

M系・・・汎用タイプ。CPU・メモリのバランスに優れている。どんなアプリケーションにも合うようなインスタンスタイプ。

C系・・・コンピューティング最適化。CPUスペックの高いインスタンスタイプ。

R系・・・メモリ最適化。パフォーマンスの高いデータベースの処理に向いている。

P系・・・高速コンピューティング最適化。GPUがついている。
参考サイト:GPUとは

H系・・・ストレージ最適化。大容量のHDDを使用することができる。

AMI(Amazon Machine Image)

インスタンスの作成に必要な情報のこと。仮想サーバのOSにあたる。Amazon LinuxやwindowsなどのOSを選択できる。wordpress等のソフトウェアが搭載しているAMIも存在する。

キーペア

インスタンスに接続する際に、認証のために使用する秘密鍵、公開鍵のペア。秘密鍵の拡張子はpem形式。

EBS

AWS内で使用できるストレージ。EC2にアタッチして使用する。SSDやHDDにあたる。スナップショットが取得できる。
参考サイト:クローンとスナップショットの違い

Elastic IP

静的なIPv4アドレス。静的は変わらないという意味。

User data

EC2が初回起動する際、任意のスクリプトを実行するサービス。スクリプトは簡単に言えばコマンドのことを指す。再起動する際はスクリプトを実行しない。実行権限はroot権限。

Instance Meta Data

インスタンスの中に埋め込まれたデータ。EC2のIPアドレス、ホストネーム、AMIのID番号などが埋め込まれている。

ハンズオン

今回はEC2にEBSをアタッチし、EC2にSSH接続後、マウントする。それをAMIに保存してバックアップをとる。そしてAMIからEC2を起動するところまでやってみる。

EC2作成

EC2を検索

スクリーンショット 2021-02-02 21.50.05.png

左からインスタンスをクリック

スクリーンショット 2021-02-02 21.51.07.png

インスタンスを起動をクリック

スクリーンショット 2021-02-02 21.51.42.png

ステップ1:Amazon マシンイメージ(AMI)
今回はAmazon Linux2 AMIを選択

スクリーンショット 2021-02-02 21.55.21.png

ステップ2:インスタンスタイプの選択
今回は無料利用枠のt2.microを選択

スクリーンショット 2021-02-02 21.56.04.png

ステップ3:インスタンスの詳細の設定
ネットワークをデフォルトVPC、サブネットをap-northeast-1a、自動割り当てパブリックIPを有効にする。

スクリーンショット 2021-02-02 22.01.06.png

下にスクロールするとユーザーデータの欄が存在する。
ラジオボタンに「テキストで」を選択
下記のコマンドを記載する。
「yum -y install httpd」はApacheのインストール。-yで自動的にyesを選択。
「systemctl start httpd.service」はApacheの起動。
「systemctl enable httpd.service」は再起動後もApacheを起動するように設定。
echo から始まる最後のコマンドはインスタンスIDを取得したものを/tmp/testに書き出しする。

参考サイト:#!/bin/shの意味

#!/bin/bash
yum -y install httpd
systemctl start httpd.service
systemctl enable httpd.service
echo $(curl http://169.254.169.254/latest/meta-data/instance-id) >> /tmp/test

スクリーンショット 2021-02-02 22.02.49.png

ステップ4:ストレージの追加
今回はデフォルトのままにしておく。終了時に削除のチェックが入っているか確認する。EC2を削除するときにEBSを自動で削除する設定なので、チェックが入っていないとEC2を削除してもそのままEBSが残ってしまい、無駄な料金が発生してしまう。

スクリーンショット 2021-02-02 22.05.36.png

ステップ5:タグの追加

今回はキー:Name、値:EC2-TEST-1としておく

スクリーンショット 2021-02-02 22.07.29.png

ステップ6:セキュリティグループの設定
今回はSSHに加えて、HTTPを追加する。ルールの追加ボタンを押すと追加できる。

スクリーンショット 2021-02-02 22.08.39.png

ステップ7:インスタンス作成の確認

スクリーンショット 2021-02-02 22.19.30.png

今回は過去にキーペアを作成しているので、既存のキーペアを選択する。
キーペアの作成に関しては下記のリンクを参照。
キーペアの新規作成

スクリーンショット 2021-02-02 22.20.36.png

スクリーンショット 2021-02-02 22.20.36.png

インスタンスの作成終了

スクリーンショット 2021-02-02 22.20.58.png

インスタンスの状態が「実行中」、ステータスチェックが「2/2のチェックに合格しました」となっていればインスタンス作成完了。

スクリーンショット 2021-02-02 22.24.54.png

Macのターミナル等でEC2にSSH接続後、cat /tmp/testのコマンドを実行すると
i-08e962dc4de3bafffが表示されているか確認。
また、下記のコマンドを実行するとactive(running)になっていれば正常にユーザーデータに入力したコマンドが実行されている。

systemctl status httpd.service

スクリーンショット 2021-02-07 13.53.52.png

ユーザーデータのログを確認したい場合、下記のコマンドを実行すると良い。

cat /var/log/cloud-init-output.log

赤線のパブリックIPをブラウザのURL欄に貼り付けて実行するとApacheのテストページが表示させる。

スクリーンショット 2021-02-07 13.39.16.png

EBSの作成

左からボリュームを選択

スクリーンショット 2021-02-02 22.36.51.png

ボリュームの作成をクリック

スクリーンショット 2021-02-02 22.38.22.png

ボリュームタイプはスループット最適化 HDD(st1)、アベイラリティーゾーンはap-northeast-1aを選択し、ボリュームの作成をクリック。

スクリーンショット 2021-02-02 22.39.32.png

ボリュームの作成が終了

スクリーンショット 2021-02-02 22.40.18.png

新規で作成した500GBのEBSが作成されているか確認

スクリーンショット 2021-02-02 22.40.46.png

Nameの右端にぺンマークがでるのでクリックすると名前を追加できる。

スクリーンショット 2021-02-02 22.41.40.png

EBSをインスタンスにアタッチ

アクションからボリュームのアタッチを選択

スクリーンショット 2021-02-02 22.42.15.png

インスタンスに先ほど作成したインスタンス(EC2-TEST-1)を選択

スクリーンショット 2021-02-02 22.42.54.png

デバイスはデフォルトで/dev/sdfが入力されている(のちほど確認するので覚えておく)。右下のアタッチをクリック

スクリーンショット 2021-02-02 22.43.36.png

インスタンスに作成したEBSがアタッチされているか確認

スクリーンショット 2021-02-02 22.45.22.png

デバイス名に/dev/sdfがあればOK。

スクリーンショット 2021-02-02 22.46.04.png

マウント手順

ここからはターミナルでコマンド操作

root権限に変更

sudo su -

/dev/sdfを確認
xvdfにリンクされているのが確認できる

ls -l /dev/sdf

lrwxrwxrwx 1 root root 4 Feb  7 04:36 /dev/sdf -> xvdf

lsblkコマンド実行

参考サイト:lsblkコマンド

lsblk

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    8G  0 disk 
└─xvda1 202:1    0    8G  0 part /
xvdf    202:80   0  500G  0 disk 

df -hでファイルシステムの一覧が表示されるが、現状500GBのものが確認できない。

参考サイト:dfコマンド

df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  508K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.4G  6.7G  18% /
tmpfs            99M     0   99M   0% /run/user/1000

file -sでファイルの種類を表示。/dev/sdfはシンボリックリンクであることが確認できる。

参考サイト:fileコマンド
参考サイト:シンボリックリンクとは

file -s /dev/sdf

/dev/sdf: symbolic link to `xvdf'

file -s /dev/xvdfで確認する。dataになっている。

file -s /dev/xvdf

/dev/xvdf: data

ファイルシステムを作成するmkfsコマンドを実行する
参考サイト:mkfsコマンド

mkfs -t ext4 /dev/xvdf

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
32768000 inodes, 131072000 blocks
6553600 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2279604224
4000 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

再度file -s /dev/xvdfで確認する。先ほどと表記が変更している。
こちらのUUIDはのちほど使用するのでコピーしておく。

file -s /dev/xvdf

/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=e688e4eb-ce76-4c69-b9e5-b430daa1de25 (extents) (64bit) (large files) (huge files)

logディレクトリを作成し、lsで確認

mkdir /log

ls -l /

total 16
lrwxrwxrwx   1 root root    7 Jan 26 04:14 bin -> usr/bin
dr-xr-xr-x   4 root root 4096 Jan 26 04:15 boot
drwxr-xr-x  15 root root 2860 Feb  7 04:36 dev
drwxr-xr-x  81 root root 8192 Feb  2 13:21 etc
drwxr-xr-x   3 root root   22 Feb  2 13:21 home
lrwxrwxrwx   1 root root    7 Jan 26 04:14 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Jan 26 04:14 lib64 -> usr/lib64
drwxr-xr-x   2 root root    6 Jan 26 04:14 local
drwxr-xr-x   2 root root    6 Feb  7 07:30 log ←作成したlogファイルがある。
drwxr-xr-x   2 root root    6 Apr  9  2019 media
drwxr-xr-x   2 root root    6 Apr  9  2019 mnt
drwxr-xr-x   4 root root   27 Jan 26 04:15 opt
dr-xr-xr-x 124 root root    0 Feb  7 04:36 proc
dr-xr-x---   3 root root  124 Feb  7 06:53 root
drwxr-xr-x  28 root root  960 Feb  7 04:36 run
lrwxrwxrwx   1 root root    8 Jan 26 04:14 sbin -> usr/sbin
drwxr-xr-x   2 root root    6 Apr  9  2019 srv
dr-xr-xr-x  13 root root    0 Feb  7 04:36 sys
drwxrwxrwt   9 root root  261 Feb  7 05:16 tmp
drwxr-xr-x  13 root root  155 Jan 26 04:14 usr
drwxr-xr-x  20 root root  280 Feb  2 13:21 var

mountコマンドで/dev/xvdfを作成した/logにマウントする。
マウント後、dfコマンドで確認する。
/logがマウントされている。

mount /dev/xvdf /log

df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  508K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.4G  6.7G  18% /
tmpfs            99M     0   99M   0% /run/user/1000
/dev/xvdf       493G   73M  467G   1% /log

EC2のバックアップ

/logにtestlogfile.logを作成。lsコマンドで確認。

touch /log/testlogfile.log

ls -l /log/testlogfile.log

-rw-r--r-- 1 root root 0 Feb  7 07:39 /log/testlogfile.log

EC2が再起動した際も、/dev/xvdfが/logにマウントされるように自動マウントの設定を行う。
viコマンドで/etc/fstabファイルを編集する。入力後:wqで保存して終了。
※UUIDはご自身のものに置き換えてください。

参考サイト:viコマンド

vi /etc/fstab

#
UUID=518d317e-9b1a-43aa-8b7c-850dd3510341     /           xfs    defaults,noatime  1   1
UUID=e688e4eb-ce76-4c69-b9e5-b430daa1de25     /log           ext4   defaults          1   1 ←こちらを入力                                                                                                                                                                                                          
#

umountでマウントを外し、df -hで確認。/logがない状態。

umount /log

df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  508K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.4G  6.7G  18% /
tmpfs            99M     0   99M   0% /run/user/1000

rebootコマンドで再起動する。接続が切れるので再度ssh接続し、root権限にする。

reboot

dfコマンドで/dev/xvdfが自動でマウントされていることが確認できる。

df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  416K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.4G  6.7G  18% /
/dev/xvdf       493G   73M  467G   1% /log
tmpfs            99M     0   99M   0% /run/user/1000

EC2のバックアップ

インスタンスをいったん停止する。インスタンスの状態からインスタンスを停止を選択。

スクリーンショット 2021-02-07 17.26.59.png

停止を押す

スクリーンショット 2021-02-07 17.27.23.png

正常に停止しましたと表示されれば成功

スクリーンショット 2021-02-07 17.28.41.png

次にイメージを作成する。アクションからイメージとテンプレート→イメージを作成を選択

スクリーンショット 2021-02-07 17.34.03.png

イメージ名、イメージの説明はTESTAMIとしておく。
右下のイメージを作成をクリック

スクリーンショット 2021-02-07 17.41.22.png

無事にイメージを作成できた。

スクリーンショット 2021-02-07 17.45.53.png

こちらのAMIは2つのスナップショットと紐づいている状態。

スクリーンショット 2021-02-07 17.52.37.png

スナップショットを確認してAMIと紐づいているものが作成されているのか確認できる

スクリーンショット 2021-02-07 17.54.26.png

これでバックアップは完了。

作成したAMIからEC2を作成し、/log/xvdfがあるか確認する。
インスタンスからインスタンスを起動

スクリーンショット 2021-02-07 18.00.46.png

マイAMIから作成されたAMIがあるか確認できる。そちらを選択し、EC2を作成していく。

スクリーンショット 2021-02-07 18.01.21.png

EC2作成後、新規作成したEC2のパブリックIPアドレスをコピーし、SSH接続する。
root権限にしておく。

df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  416K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.4G  6.7G  18% /
/dev/xvdf       493G   73M  467G   1% /log
tmpfs            99M     0   99M   0% /run/user/1000

ls -l /log/testlogfile.log

-rw-r--r-- 1 root root 0 Feb  7 07:39 /log/testlogfile.log

/dev/xvdfが/logにマウントされ、/logにtestlogfile.logがあれば成功!

以上です!お疲れ様でした〜

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