1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【AWS】EC2をまとめてみた

Posted at

EC2とは

AWSの仮想サーバーサービスです。

まずサーバーとは?

業務用コンピューターです。

クライアントからのリクエストに対して、
サーバーからレスポンスを返します。

仮想サーバーとは?

OS+CPU+Memory+SSD+NIC(Network Interface Card)などが構成要素となっている。

これがAWSでは、
OS→AMI(Amazon Machine Image)
CPU, Memory→インスタンスタイプ(t2nano, t3microなど)
SSD→EBS(Amazon Elastic Block Store)
NIC→ENI(Elastic Network Interface)
となっています。
これらが纏まったのが、Amazon EC2です。

AMIとは?

AMIはインスタンスの作成に必要な情報です。
EC2作成時に使用するAMIの指定が必要です。

スクリーンショット 2021-04-30 12.29.08.png

インスタンスタイプ

無料利用枠の対象となっているt2.microを例に説明します。
tはファミリー名です。
2は世代番号です。
世代番号に関しては、数字が大きいものほど新しいので、できるだけ数字が大きいものを使う方がいいです。
microはインスタンスのサイズを表しています。

T系

主な用途は、テストです。

インスタンス vCPU CPU メモリ(GB)
t3.nano 2 6 0.5
t3.micro 2 12 1
t3.small 2 24 2
t3.medium 2 24 4
t3.large 2 36 8
t3.xlarge 4 96 16
t3.2xlarge 8 192 32

M系

バランスの取れたCPUとバランスの取れたメモリ数のため、どんな仕様にも使えます。

インスタンス vCPU メモリ(GB)
m5.large 2 8
m5.xlarge 4 16
m5.2xlarge 8 32
m5.4xlarge 16 64
m5.8xlarge 32 128
m5.12xlarge 48 192
m5.16xlarge 64 256
m5.24xlarge 96 384

C系

CPUに優れたインスタンスです。
用途はWEBサーバーなどです。

インスタンス vCPU メモリ(GB)
c5.large 2 4
c5.xlarge 4 8
c5.2xlarge 8 16
c5.4xlarge 16 32
c5.9xlarge 36 72
c5.12xlarge 48 96
c5.18xlarge 72 144
c5.24xlarge 96 192

R系

メモリに優れたインスタンスです。
用途はビッグデータなどDBなどです。

インスタンス vCPU メモリ(GB)
r5.large 2 16
r5.xlarge 4 32
r5.2xlarge 8 64
r5.4xlarge 16 128
r5.8xlarge 32 256
r5.12xlarge 48 384
r5.16xlarge 64 512
r5.24xlarge 96 768

簡単にまとめると、
開発時にはT系を使用し、
特別な用途などがない限りはM系で十分です。

スクリーンショット 2021-04-30 12.35.59.png

EBS

外付けディスクのことを指します。
種類に応じて性能が異なってきます。
また、バックアップ(スナップショット)が取得できます。

EBSの特徴は以下の3つです。
①EC2とEBSは外部でアタッチされる
②同一のAZ内でしかEC2とEBSはアタッチできない
③1つのEBSに対して複数のEC2をアタッチできない(1EBS→1EC2、1EC2→複数のEBSはOK)

AWS_EC2EBS.png

種類

タイプ 名前 特徴
SSD 汎用 SSD 特別な要件がない限りこれで OK。
SSD プロビジョンド IOPS SSD 汎用 SSD よりも高スペック、特別な要件がある時はこれ。
HDD スループット最適化 HDD(st1) データをひたすらにためる時に使う、ビッグデータとか。
HDD Cold HDD(sc1) データを保管するだけ、あんまり使わないでデータを保持する時。

スナップショット(バックアップ)

バックアップを差分のみ行ってくれる仕様です。

例えば、
1MBのファイルがあり、そのファイルに更新をしていくものとします。
①1MBの更新を行う
②2MBの更新を行う
③1MBの更新を行う

このように3回の更新を行うケースを考えてみましょう。

通常のコピーの場合

1MB
①2MB+2MB(コピー①)
②4M+2MB(コピー①)+4MB(コピー②)
③5MB+2MB(コピー①)+4MB(コピー②)+5MB(コピー③)
計16MBの容量が必要となります。

スナップショットの場合

1MB
①2MB+2MB(スナップショット①)
②4M+2MB(スナップショット①)+2MB(スナップショット②)
③5MB+2MB(スナップショット①)+2MB(スナップショット②)+1MB(スナップショット③)
計10MBの容量が必要となります。
6MBの削減となりました!!

EC2が作成されるまでの流れ

①AMI(Amazon Machine Image)の選択
②インスタンスタイプの選択
③Amazon EC2が起動→User dataを起動
④EBSをEC2にアタッチ
⑤ENIをEC2にアタッチ(ここでセキュリティグループなども決定する)

User data

EC2が初回起動する際に実行するスクリプトです。
実行権限はrootユーザー権限のみです。

■よく使われる内容
・パッケージのアップデート → yum update -y
・ソフトウェアのインストール → yum install httpd -y
・設定ファイルの取得

スクリーンショット 2021-04-30 13.54.15.png

2つの形式が使える
・シェルスクリプト形式(1行目が#!で始まる)
・cloud-init形式(1行目が#cloud-configで始まる)

Instance Meta Data

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

キーペア

EC2へログインするために使用する秘密鍵、公開鍵のペアのことを指します。

それでは実際にEC2を使ってみましょう!

EBSをEC2にアタッチしてマウントしましょう

■場所
EC2>ボリューム

スクリーンショット 2021-04-30 15.03.36.png

スクリーンショット 2021-04-30 15.05.04.png

この後、
アクション>アタッチを行う

ターミナルでアタッチされているか確認する。

ターミナル
// root権限に移動
$ sudo su -
 
$ ls -l /dev/sdf
lrwxrwxrwx 1 root root 4 Apr 30 06:05 /dev/sdf -> xvdf

// 中を調べる
$ df -h
/dev/xvda1      8.0G  1.5G  6.6G  18% /

// ファイルを確認
$ file -s /dev/sdf
/dev/sdf: symbolic link to `xvdf'

// 中に何もない
$ file -s /dev/xvdf
/dev/xvdf: data

// ファイルを作成するコマンド
$ mkfs -t ext4 /dev/xvdf

// 中に追加された
$ file -s /dev/xvdf
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=XXXXXXXXXXXXXXXX (extents) (64bit) (large files) (huge files)

// logフォルダを作成
$ mkdir /log

// フォルダを確認
$ ls -l /
total 16
lrwxrwxrwx   1 root root    7 Apr 24 09:37 bin -> usr/bin
dr-xr-xr-x   4 root root 4096 Apr 24 09:38 boot
drwxr-xr-x  15 root root 2860 Apr 30 06:05 dev
drwxr-xr-x  81 root root 8192 Apr 30 05:47 etc
drwxr-xr-x   3 root root   22 Apr 30 05:47 home
lrwxrwxrwx   1 root root    7 Apr 24 09:37 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Apr 24 09:37 lib64 -> usr/lib64
drwxr-xr-x   2 root root    6 Apr 24 09:37 local
drwxr-xr-x   2 root root    6 Apr 30 06:15 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 Apr 24 09:38 opt
dr-xr-xr-x 108 root root    0 Apr 30 05:46 proc
dr-xr-x---   3 root root  103 Apr 30 05:47 root
drwxr-xr-x  28 root root  960 Apr 30 05:47 run
lrwxrwxrwx   1 root root    8 Apr 24 09:37 sbin -> usr/sbin
drwxr-xr-x   2 root root    6 Apr  9  2019 srv
dr-xr-xr-x  13 root root    0 Apr 30 05:46 sys
drwxrwxrwt   9 root root  261 Apr 30 05:47 tmp
drwxr-xr-x  13 root root  155 Apr 24 09:37 usr
drwxr-xr-x  20 root root  280 Apr 30 05:47 var

// マウントされているかを確認(EBSはアタッチしてマウントしてようやく使える)
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        482M     0  482M   0% /dev
tmpfs           492M     0  492M   0% /dev/shm
tmpfs           492M  468K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.5G  6.6G  18% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0

// 上記にないのでされていない、だからマウントしましょう
$ 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  468K  492M   1% /run
tmpfs           492M     0  492M   0% /sys/fs/cgroup
/dev/xvda1      8.0G  1.5G  6.6G  18% /
tmpfs            99M     0   99M   0% /run/user/1000
tmpfs            99M     0   99M   0% /run/user/0
/dev/xvdf       123G   61M  117G   1% /log →あった

EC2インスタンスが再起動した時に、EBSが自動的にマウントされるように設定する

ターミナル
// ①ファイル作成完了
$ touch /log/testlogfile.log
$ ls -l /log/testlogfile.log
-rw-r--r-- 1 root root 0 Apr 30 06:21 /log/testlogfile.log

// ②マウントしたいファイルシステムのUUIDを取得する
$ file -s /dev/xvdf
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, UUID=edc2cbbe-XXXX-XXXX-8883-909522484c6d (needs journal recovery) (extents) (64bit) (large files) (huge files)

// ③viで/etc/fstabにUUIDを追記する
$ vi /etc/fstab
UUID=edc2cbbe-XXXX-XXXX-8883-909522484c6d     /log        ext4   default           1   1

これで自動的にマウントされるようになりました。

スナップショット

①インスタンスの停止
アクション>インスタンスの停止

②イメージの作成
アクション>イメージを作成

スクリーンショット 2021-04-30 15.43.19.png

③イメージの確認
ブロックデバイスが2つあることを確認できました。
008b9ff
04e3d35
スクリーンショット 2021-04-30 15.45.32.png

④スナップショットを確認
スナップショットが2つあることを確認できました。
008b9ff
04e3d35
スクリーンショット 2021-04-30 15.46.40.png

これで完了です。

ではこのスナップショットを使ってEC2を起動してみましょう!

スナップショットを使ったEC2の起動方法

①インスタンスを起動
マイAMI内にイメージがあります。

スクリーンショット 2021-04-30 15.49.08.png

②EC2にログインする

ターミナル
// ログイン(パブリックIP)
$ ssh -i test-keypair.pem ec2-user@(パブリックIP)

// バックアップが取れているか確認
$ sudo su -
$ df -h
/dev/xvdf       123G   61M  117G   1% /log →あった
1
4
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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?