最近はAWSは実機で試すのからソリューションアーキテクトアソシエイト(以下、SAA)に向けた机上勉強に切り替え気味です。
さて、実機での学習は多少やってきましたが、資格に向けた勉強にはフォーカスおらず、無料枠でのりきることを意識していたのでSAA用の参考書を読んでみてもよくわからない部分も多かったので少しまとめます。
説明というよりは実機学習で足りなかった部分の備忘録の側面が強いです。
レベル的には個人無課金レベルとかでAWSサービスに触ったことはあるけど本格的にSAAの勉強対策はまだしていないぐらい、つまり私が対象です。
問題演習はまだあまりしていないので、演習後に追記した方がより実践的かな。
EC2(Amazon Elastic Compute Cloud)
EC2の状態遷移と課金対象
状態遷移図は上記記事の再掲です。
課金の対象となるのは「running」のときのみ。状態遷移中も含めて他の状態では課金対象とはならない。
課金は秒単位(Amazon)または時間単位となる。
インスタンスの配置とストレージ
・マルチテナンシー
EC2は仮想ソフトウェア上に配置されるが、デフォルト設定では利用者はEC2を起動するホストコンピュータを指定できない。また、ホストコンピュータは他のユーザと共有することになる。
・インスタンスストア
ホストコンピュータに備えられたディスクのこと。(実機学習のときは全く意識したことがなかった)
インスタンスを再起動すると、インスタンス自体は別のホストコンピュータ上で起動される可能性があるがインスタンスストアはホストコンピュータに備え付けなので、移動することはない。
・ストレージ
永続ストレージにはEBSが使用される。
EBSはEC2から独立しホストコンピュータ外に配置されるため、インスタンスの再起動に影響されることはない。
詳細は後述。
ハードウェアタイプの選択
ハードウェアの占有タイプは以下から選択する。無力枠の実機学習では意識することがなかった。
・マルチテナンシー
デフォルト。
前述のとおり、他のアカウントと共用する。
・ハードウェア占有インスタンス
当該アカウント専用のホストコンピュータが割り当てられる。
が、配置されるコンピュータ自体は選択することはできない。
課金はインスタンス単位。
・Dedicated Hosts
当該アカウント専用のホストコンピュータが割り当てられる。
そして、ユーザがIDを指定してコンピュータ自体も選択することができる。
課金はホストコンピュータ単位。
EC2のIPアドレス
EC2に付与できるIPアドレスは3種類ある。
・Elastic IP
付与することで課金対象になるアドレス。
EC2を再起動してもアドレスが維持され、利用していないときに課金される。
・パブリックIPアドレス
無課金のデフォルト。
ランダムにIPが割り振られ、再起動時にIPアドレスが変更される。
割り当てないことも可能(どんなときにそうする?)、VPC内でインスタンスを起動した場合はその範囲内で割り振られる。
VPCのサブネットでデフォルトの付与設定が可能。
・プライベートIPアドレス
EC2インスタンスには必ず割り当てられ、再起動してもIPアドレスは維持される。
普通のプライベートアドレスと同じ感覚と思っていいのかな?
ENI(後述する)により、プライマリ以外にも割り振ることもできる。
★ENI(Elastic Network Interface)
仮想ネットワークインターフェース。
物理でいうところの≒NICでいいんですかね?
★外部DNSホスト名
パブリックIPが付与されている場合に付与される。
マネジメントコンソールかメタデータのクエリにより取得することができる。
メタデータはインスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用する。
ホスト名やAMI、インスタンスタイプなどの情報を取得することができる。
参考:コマンド
curl http://[IPアドレス]/latest/meta-data/
AMI(Amazon Machine Image)
OSのテンプレート。ディスクイメージみたいに思っておけばいいのかな?
自身で生成したEC2からAMIを作成することもできる(カスタムAMI)。
カスタムAMIを用いることで、同様の環境を複数生成したり、別のリージョンや別ユーザが使用することもできるらしい。
別リージョンに生成する場合は移行のような感じでしょうか。
ちなみにカスタムAMIのスナップショットはEBSに保管され、カスタムAMIを削除しないとスナップショットが削除できない。
課金のタイプ
無料枠以外の課金制度については現状ではかなり疎い。
・オンデマンドインスタンス
通常の従量課金制。利用した時間に応じての支払い。
・リザーブドインスタンス
利用期間は1~3年で指定して前払いすることにより、割引を受けることができる。
・スポットインスタンス
AWSの未使用分を需要に応じた価格で提供する。
AWSのキャパシティ次第でスポット料金がきまる。
ユーザが設定した上限料金よりスポット料金が高い場合にスポット料金で利用が可能になる。
課金制度部分はなじみがなく覚えるしかないのかなぁ。
その他ちょっとメモ
・キーペア
EC2インスタンスは公開鍵暗号により接続を行う。
インスタンスが生成されたときにキーペアも生成される。クライアントに秘密鍵を保持しておき、公開鍵はEC2に保持される。
・セキュリティグループ
実践的には試験的にも重要ではあるが、無課金でも十分に使用してきたのであっさり。
ホワイトリスト方式の仮想ファイアウォール。
ポートやIPアドレスで指定するが、他のセキュリティグループを許可対象にすることもできる。
・プレイスメントグループ
勉強し始めて初めて聞いた。
単一のアベイラビリティゾーンに所属する複数のインスタンスを論理的にグループ化したもの。
インスタンス間の通信が最適かされるため、インスタンス間で大量の通信が行われる場合などに用いられる。
・SLA
SLAは99.99%の可用性が定義されている。
EBS(Amazon Elastic Block Store)
EBSのアーキテクチャ
EC2インスタンスにアタッチして使用するブロックレベルのストレージサービス。
EBSは単一のEC2のみにアタッチすることができる。
一つの最大サイズは16TBで、EC2が起動中であってもサイズの変更をすることができる。
EBSは別のアベイラビリティゾーンに存在するEC2インスタンスにアタッチすることはできない。
図のつくりがEC2の説明と同じで分かりにくいですが「インスタンスストア」と比較すると、EC2は再起動により、起動するホストコンピュータは変わるが、アベイラビリティゾーンは同一なので、EBSでは永続的にデータを保持することができる。
また、別のアベイラビリティゾーンにアタッチする場合にはバックアップとして取得されるS3のスナップショットから復元すればよい。
ついでにスナップショットについて。
スナップショットは前述のとおり、S3に保管される。
バックアップの形式は増分バックアップである。※差分ではない
増分なので、最初にフルバックアップを行い、そのあとは常に前回のバックアップから変更点のみをバックアップし、一回のバックアップにかかる時間が短かったりバージョン管理が容易である(ユーザは意識する必要はないが)。
EBSスナップショットの特徴としては「あるの世代」を削除した場合に他の世代から参照されていないブロックのみを削除するため、当該世代以外の復元は可能である。
EBSの課金方式
Amazon EBS では、実際に使用した分のみ料金が発生する。アタッチしているEC2インスタンスを削除してもEBSボリュームが残っている限り、課金は行われる。
タイプごとに容量当たりの料金は異なる。SSDの方が高め。
・汎用 SSD (gp2) ボリューム
・プロビジョンド IOPS SSD (io1) ボリューム
・スループット最適化 HDD (st1) ボリューム
・Cold HDD (sc1) ボリューム
※IOPSはたまに見かけるので
IOPSとは、ハードディスクなどの記憶装置の性能指標の一つで、ある条件の元で1秒間に読み込み・書き込みできる回数のこと。
引用元:IOPS(Input/Output Per Second)とは - IT用語辞典 e-Words
「プロビジョニング=準備」なので、IOPSを予め確保できるようにしておく⇒高性能みたな感じでしょうか。
タイプごとの性質がどの程度重要になってくるか未知なので若干スルー。
Amazon EBS-最適化インスタンス
最適化された設定スタックを使用し、Amazon EBS I/O に対して追加の専用の容量を提供します。この最適化は、Amazon EBS I/O とその他のインスタンスからのトラフィック間の競合を最小化することで、EBS ボリュームの高パフォーマンスを提供します。
簡単に言えば、通常はEBSや他のサービスにも使用される帯域をEBS専用の帯域を設けてEBSとEC2との通信を高速化する。
設定はオプションにより行う。
Amazon EBS ボリュームの初期化
新しい EBS ボリュームは、利用可能になるとすぐに最大のパフォーマンスを発揮し、初期化 (以前は事前ウォーミングと呼ばれました) を必要としません。
スナップショットから復元されたボリューム上のストレージブロックは、アクセスする前に Amazon S3 からプルダウンしてボリュームに書き込む必要があります
スナップショットから復元したボリュームは初めてアクセスする際にパフォーマンスが悪い。初期化によってデータのあるすべてのブロックにアクセスすることによって、最大パフォーマンスを発揮できるようになる。
まぁこんなところまで、結構時間かかるのでどこまでやるかは未定。