EC2
AMIを検索
CLIで確認。
表示される結果が多いのでマネジメントコンソールで探したほうがいいか。
aws --output table --profile [profile] ec2 describe-images \
--filters "Name=architecture,Values=x86_64" \
"Name=root-device-type,Values=ebs" \
"Name=virtualization-type,Values=hvm"
ec2を作成・起動する
成功すれば、dry-runオプションを消して実行。
aws --region us-west-2 --profile [profile] ec2 run-instances \
--image-id [AMI Id] \
--key-name [key name] \
--instance-type t2.micro \
--user-data file://PATH/my_script.txt \
--subnet-id [Subnet Id] \
--dry-run
ユーザーデータはインスタンス作成時に実行するシェルスクリプトのファイル。
デフォルトだと作成したEC2インスタンスは停止して起動するたびに物理ホストが変わる。
インスタンスからメタデータへのアクセス
インスタンス内からそのメタデータを参照できる。
ユーザーデータなどの初期化スクリプトで参照するのに便利。
取得先は下記。
http://169.254.169.254/latest/meta-data
例えば、instance-idは下記で取れる。
http://169.254.169.254/latest/meta-data/instance-id
参考: http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
起動時のStatusチェック
下記の2つのチェックが行われる。
- System Status Checks: インフラ側
- Instance Status Checks: OS側
T2系のCPUクレジット
ベースライン性能以上のCPU利用率時にバーストする。
ベースライン性能は
- t2.nano 5%
- t2.micro 10%
- t2.small 20%
- t2.medium 40%
と低い値。
参考: http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/t2-instances.html
仮想化方式
- 準仮想化(Paravirtual, PV)
- 完全仮想化(Hardware-assisted VM, HVM)
VM Import/Export
VMWareやVirtualBoxのイメージからインポートできる。
http://dev.classmethod.jp/cloud/aws/vm-import-image-import/
HVMのみ対応。
AWS Marketplace
AWS上で実行されるソフトウェアやサービスを見つけて購入し、すぐに使用開始できるオンラインソフトウェアストア。
ボリューム
- インスタンスストア
EBSと異なり無料。
揮発性で停止すると、書き込んでいた内容は消える。
利用するには対応するインスタンスタイプを使用する必要がある。
下記表のInstance Storageで"EBS only"になっていないインスタンスタイプで利用可。 タイプによって、利用できるインスタンスストアのサイズ等は決まっている。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/InstanceStorage.html
スワップ領域としても活用可能。
CloudWatchで確認するときはEC2のDisk Metricを確認する。 - EBS
CloudWatchで確認するときはEBSのDisk Metricを確認する。
intance-store-backedインスタンスとEBS-backedインスタンス
intance-store-backedインスタンスはルートボリュームにインスタンスストアを指定したもの、
EBS-backedインスタンスはルートボリュームにEBSを指定したもの。
intance-store-backedインスタンスはs3-backedインスタンスとも呼ばれる。
intance-store-backedインスタンスは再起動と終了しかできない。
ルートボリュームはAMIの時点で決まっているので、intance-store-backedインスタンスを利用するにはそれ専用のAMIを利用する必要がある。
その他
- EBS最適化インスタンス
EBSとの接続時はDiskI/OよりNetworkのI/Oがボトルネックになる。(Provisioning EBS)
これを解決するオプションで有効可していると帯域が確保される。
m4, c4といった最近のタイプだとデフォルトオン。
- プレイスメントグループ
インスタンス間のネットワーク接続を高速化する。
同一AZで使用できる。 - Dedicatedインスタンス, EC2 Dedicated Host
物理ホストを他者と共存させない仕組み。 - Private IP
VPCであれば、Stop/StartしてもIPは変わらない。 - EC2が利用するIPアドレスレンジ
http://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-ip-ranges.html
EC2の価格変更時にSNSで変更通知を受け取ることができる。
参考: http://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/price-notification.html
EBS
EBSはAZサービス。そのためあるAZ用に作成したEBSは別のAZからは利用できない。
別のAZから利用するためには一度Snapshotにしてから、別のAZ用に復元する。(別のリージョンで使用するときも同様)
EBSスナップショット
EBSのバックアップをとること。
結果はS3に保存する。(ただし、保存先を見ることはできない。EC2のダッシュボードから確認できる)
取得の際、I/Oを停止する必要があり、対象のEBSボリュームをアンマウントしてから取得開始することが推奨されている。
ただし、開始後はそれ以降の書き込みはキャプチャ対象外となるため、完了を待たずに再マウントして使用できる。
作成を指示し、レスポンスが返ってきたらその時点で開始されている。この時点でI/Oを再開して問題なし。
1世代目は実データをすべてバックアップ。2世代目以降は差分バックアップ。
ちなみに、復元の際はもとのボリュームのサイズを大きくすることも可能。
データボリュームの暗号化
暗号化を指定するとAES-256によって暗号化される。(Snapshotも同様)
暗号/復号にはハードウェア機能が用いられるため、パフォーマンスへの影響は極めて小さいとのこと。
その他
EC2はタイプごとにサポートできるIOPSが決まっている。EBSもIOPSが決まっている。ボトルネックの解決はそこに注意。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSOptimized.html
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EBSVolumeTypes.html