EBSの設定を勉強するためにチュートリアルをやってみました。
知らないLinuxコマンドもいろいろあって勉強になりました。
こういう自分が知識が浅い分野のチュートリアルは得るものが多くて非常に良いですね。
作業内容はこちらの動画を参考にさせてもらってます。
公式ドキュメントはこちらをじっくり読んだほうが良さそうです。
以下作業内容のメモです。
すでにパブリックなVPCとサブネットが作成済みの状態から始めます。(インターネットゲートウェイ、ルートテーブルなどアタッチ済み)
EC2のマネジメントコンソールからインスタンスの作成画面に移動し、Step 1 AMIはAmazon Linux 2を選択します。
Step 2 Instance Typeはt2.microを選択します。
Step Configure Instance DetailsはパブリックなVPCとサブネットを選択し、Auto-assign Public IPはEnableにします。
Step 4: Add Storageが今回一番勉強したい箇所なのでいろいろ調べました。
最終的には以下の内容でストレージを追加します。
Volume Type: EBS
Device: /dev/sdb
Size(GiB): 2
Volume Type: General Purpose SSD(gp2)
IOPS: 100/3000
Throughput: N/A
Delete on Termination: false
Encrypted: Not Encrypted
Deviceの項目は/dev/sdb以外にも画像のようにオプションがありました。
こちらは自分はまだよくわかってないのですが、AWSで定義されているようなものではなくてLinux標準のデバイスのパターンがあるようです。
Snapshotの説明は以下の文言がありました。
A snapshot is a backup of an EC2 volume that's stored in S3. You can create a new volume using data stored in a snapshot by entering the snapshot's ID. You can search for public snapshots by typing text in the Snapshot field. Descriptions are case-sensitive.
スナップショットとはEC2のバックアップでS3に保存されていて、スナップショットを使用して新規ボリュームを作成することができるようです。
Sizeの説明には以下の文言がありました。
Volume size must be greater than zero or the size of the snapshot used. Provisioned IOPS SSD volumes must be at least 4 GiB in size.
ボリュームサイズは0以上かスナップショットで使用されているサイズ以上でないといけないとのこと。確かにスナップショットからボリューム作ろうとした時にスナップショットより少ない容量しかなかったら無理な感じがしますね。
Volume TypeはAWS SAAの試験問題でも良く出てくる印象です。
画面で確認すると以下のようなオプションがありました。
試験問題でよくEBSのボリュームタイプについて問われるのでしっかり勉強しておきたいところ。
ここでボリュームタイプをいろいろ変更してみるとその他の項目の値が変わったりN/Aになったりしていました。
IOPSはボリュームタイプがGeneral Purpose SSD(gp2)だと100/3000固定ですが、ボリュームタイプを変更するとN/Aになったりテキストボックスになって値を変更可能になったりしていました。
ThroughputもIOPSと同じくボリュームタイプによって値が変わっていました。
Delete on TerminationはEC2を削除する時にEBSボリュームを削除するか維持するか決める設定。
試験問題でも良く出てくるので内容は覚えましたが、設定する画面がこの画面とは知らなかったのでより明確にイメージしやすくなりました。
EncryptionはEBSのデータを暗号化する設定(たぶん)
まだ詳しくは調べられていないですが、KMSというサービスが絡んでくることまでをざっくり理解しています。
Step 5: Add TagsではNameにEBSDemoと設定します。
Step 6: Configure Security Groupでは0.0.0.0/0からのSSHを許可するよう設定します。
上記設定でEC2インスタンスを作成すると、作成完了後ストレージに二つのボリュームがあることが確認できます。
Volumeの画面を見ると、EBSDemoのボリュームが二つ作成されていることが確認できます。
lsblkコマンドでEBSボリューム設定したボリュームがアタッチされていることが確認できます。
しかし正直lsblkコマンドというものを初めて知ったので調べてみました。
「lsblk」(list block devices)は、現在利用できるブロックデバイスを一覧表示するコマンドです ※1。
各ブロックデバイスをツリー状に表示するので、パーティションの状態を視覚的に把握でき、ストレージの構成やデバイス番号を確認したいときに役立ちます。
※1 LinuxではHDDやモデムなどの装置を、/dev/sdaのようなデバイスファイルとして管理している。デバイスファイルのうち、アクセス時に文字単位ではなく、ブロック単位でデータを転送するものを「ブロックデバイス」と呼ぶ。HDDやCD-ROMなどがブロックデバイスだ。「ls -al /dev」を実行したとき、ブロックデバイスは先頭に「b」と表示される。
なるほど、サーバーの状態を調べる時に重宝しそうなコマンドですね。
さて、EBSを追加したxvdbのMOUNTPOINTを見ると何も表示されていないのでマウントする必要があるようです。
以下のコマンドを実行します。
sudo file -s /dev/xvdb
/dev/xvdb: dataと表示されているのでデバイスにファイルシステムがないため、作成する必要があるようです。
ファイルシステムを作成するため以下のコマンドを実行します。
sudo mkfs -t ext4 /dev/xvdb
すると以下のように結果が返ってきました。
ファイルシステムができたので以下のコマンドでdataディレクトリにマウントします。
sudo mkdir /data sudo mount /dev/xvdb /data
改めてlsblkコマンドを実行するとxvdbが/dataディレクトリにマウントされていることが確認できます。
/dataに移動してHello.txtを作成します。
Hello.txtに文字を入力しておきます。
以下のコマンドでバックアップをとります。
sudo cp /etc/fstab /etc/fstab.orig
fstabにデバイスの情報などを入力しておきます。
以下のコマンドを実行して状態を確認(?)します。
以下のコマンドで一度ボリュームをアンマウントします。
sudo umount /data
lsblkコマンドを実行すると/dataにマウントされていたボリュームが解除されていることが確認できます。
suto mount -aで再度マウントできます。
雑感
EBSは使用経験がなく、Linuxのコマンドでデバイスの設定を確認なども初めてコマンド実行したので新しい知識が得られて新鮮でした。
AWS SAAの試験問題でEBS関係はなかなか理解できていませんでしたが、今後はもう少し具体的にイメージしやすくなりそうです。