# はじめに
自分はこの前、EC2でサーバを立ててApache入れてWEBサーバを作る…といったことを、動画を参考にしながらやりました。
やったこと自体はいい経験になったし後悔はないんだけど、それって〇〇使ったほうが良くね?って学んでいくうちに気づいたりしました。
AWSは、EC2使わなくてもアプリケーション実行できたりとか色々できます。ただ、EC2でもできますが。
要するに、EC2たててApacheインストールして〜〜とかを、全てAmazonが担当して、こっちはそれ以降のことをするだけでいい、ってな感じ。時短。
その時短サービスに各名前がついてるから覚えるしかない、って感じ
大体略されてるだけだからそんなに難しくはないけど…なんかこういうまとめみたいなやつほしいよね…笑
## EC2
仮想サーバのこと。Running、stopped、terminatedの3つの状態がある。
terminatedは、そのサーバ解約的なイメージ。
課金はRunningのときのみされる。停止ボタン押したら停止中になり、停止完了しようがしまいが、課金は止まる。
なお、OS上で再起動しても、インスタンスは再起動されない。OSが再起動されるだけ。
要するにインスタンス再起動したい場合は、マネジメントコンソールからしかできない。中に入ってshutdown -r nowとかやってもOS再起動のみ。
## EC2の基盤
大きなホストコンピュータ。要するに物理。この上にいろんな人のAWSアカウントからEC2が作られる。一つのサーバを区切ってみんなで使ってるよってこと。マルチテナンシーって言う。
デフォルトでは、どのホストコンピュータにしようか選ぶことができない。
ホストコンピュータに内蔵されたディスクをインスタンスストアという。
ストレージみたいなものだけど、これはホストコンピュータ依存。
EC2は再起動すると、違うホストコンピュータで起動されるが、インスタンスストアは一緒に移動してくれない。
よって、もともとのインスタンスストアを見ることができなくなってしまう。一緒に移動してくれればいいのに。ホストコンピュータ依存だから仕方ないね。。。
言ってしまえば不便オブ不便。使いみちあるこれ?
## EC2のストレージ
- インスタンスストア
前述の通り、ホストコンピュータが一緒なら使えるストレージ
- EBS
ブロックストア、要するにストレージです。
インスタンスからは、ディスクとして扱ってくれる。
これは仮想ネットワークディスクであり、ホストコンピュータには配置されていない。そしてEC2の状態がどうなろうとこいつには関係ない。
つまり、独立してて永続性がある!この子がいればインスタンスストアはいらない子だね…
この子はスナップショットっていう写真をS3ってところに残してます。なぜかってS3には安く大量に保存できるから。詳しくは後述
## ハードウェア占有インスタンスとdedicated hosts
マルチテナンシーと違い、ホストコンピュータを自分一人で使えるパターン。
EC2作成時にテナンシーを選択するが、そこで共有を選ぶとマルチテナンシーに。専用、占有ホストを選ぶとこの2つになる。
この2つは何が違うかというと、ハードウェア占有の方は、ホストコンピュータを選べません。dedicated hostsは選べます。アフィニティって設定を使えば、再起動時のホストコンピュータも選べちゃう!インスタンスストアの存在意義ができたね!
上記2つは課金形態がちがいます。
どちらも、物理的なサーバ独り占めですが、ハードウェア占有はインスタンス当たりの課金が必要ですが、dedicated hostsはホストコンピュータ当たりの課金です。
占有よりもdedicated hostsのほうが融通利いて使いやすそう。占有は占有したい人向きだがだったらホストコンピュータ選べるほうがよくね?占有するってことはいっぱい建てたいんだろうし。ならホスト単位での課金のほうが有利な気がする。もしや中途半端…?
IPアドレス
- EIP
再起動してもIPが継続される、いわば固定IP。使用時は基本無料。
しかし、利用していないときに課金される。AWS側の、使ってない貴重なIPは開放しやがれってメッセージだと思ってる。
ここでいう使用していない時とは、EIP取得はしたけどインスタンスに紐づけていないときや、紐づいてるけどインスタンスがstopped状態のとき。
また、二つ目のEIPを割り当てた場合は課金される。状態問わず。一人一個までだな。
外部インターネットからの接続を想定している。
- パブリックIP
ランダムに割り当てられるIPであり、再起動時にIPが変わってしまう。
これを自動で割り当てないことも可能。
インターネットとのやり取りに使用。要するにEIPの無課金版。無課金なので固定IPにできない。。。
- プライベートIP
インスタンス作成時に必ず割り当てられるIP。作成時に任意のIPにもできる。
再起動しても同じIP。EIPの必須版でありプライベート版みたいな感じ。VPC内で使用される。
最初に付与するプライベートIPを、プライマリプライベートIPという。PPIP。
プライマリプライベートIPを指定しない場合、自動でプライベートIPは割り振られる。
PPIPは、インスタンスを削除しない限り保持され、変更不可。インスタンス停止しても保持される。
ただし、ENIってのを使えば、セカンダリプライベートIPをつけることもできる。
インターネットとのやりとりは直接はしない?
ENI
インスタンスに割り当てられるIPアドレスたちは、ENIに関連付けられる。NIC(LANアダプタ)のようなもの。要するにこれがたくさんあれば、たくさんのセグメントでたくさんのIP持てるよってこと。
いくつもてるかはインスタンスタイプによってかわる。
外部DNSホスト名
パブリックIPをもつインスタンスは、外部DNSからホスト名を割り当てられます。
これの確認方法は二通りあり、
- AWSマネジメントコンソールにて確認
- EC2インスタンスのメタデータをクエリ(要求)して確認
の二通りです。
下のほうでする場合、実行中のインスタンスからHTTP経由で取得できる。
SLA
99.99%の可用性らしい。守れない場合、サービスクレジットと言って割引を受けることができる。なお、当たり前だがAWS起因の場合のみ。
AMI
OSのテンプレ。ハードディスク丸写し。
EC2のテンプレってよりは、EBSのスナップショットらしい。
ただのEBSのコピーではなく、OS起動のためのボリュームが追加されたEBSとのこと。
その後にEBSからインスタンス起動されるんだと。まあでも覚え方としてはOSのテンプレが一番早いかも?
別リージョンで使いたい場合は、S3で別リージョンにスナップショットコピーして復元する。EBSコピーだからS3って覚えたらスムーズかも。
インスタンスタイプ
苦手な暗記の領域。何か言い覚え方はないのか。。。
インスタンスタイプ | インスタンスファミリー | 特徴 |
---|---|---|
汎用 | A1/T3/T2/M5/M5a/M4/T3a | その名の通り一般的に使われるやつ。これ選んでおけば間違いない。 |
コンピューティング最適化 | C5/C5n/C4 | コンピューティング集約型ワークロード用 |
メモリ最適化 | R5/R5a/R4/X1e/X1/ハイメモリ/z1d | メモリ負荷の高いアプリケーション用 |
高速コンピューティング | P3/P2/G3/F1 | 汎用GPUコンピューティングアプリケーション用。コンピューティング最適化よりすごいって認識でいいんかね |
ストレージ最適化 | H1/I3/I3en/D2 | HDDベースのローカルストレージ。高いディスクスループット実現。 |
ATMから始まるやつは汎用、Cから始まるのはコンピューティング最適化、RXZはメモリ、PGFは高速コンピューティング、HIDがストレージ。
ATMとCは覚えれそう。それ以外はノリで。無理か。
ちなみにT3/T2はバーストできる。Tは特別のTだな!
バーストとは、CPUリソースが通常低負荷で急に高負荷になった場合、低負荷のときの貯金使っていいよってやつ。
バースト使い切っても高負荷のままでやばくなるパターンを想定して、Unlimitedっていうオプションもある(かっこいい)
たとえるなら、スマホの通信制限かかったら「〇〇円で1G追加しませんか?」みたいなメールくるじゃん。それ。
インスタンス購入オプション
-
オンデマンド
初期費用なしで使った時間に応じての支払い。スタンダード。 -
リザーブドインスタンス(RI)
一年もしくは三年の予約をすることで割引を受けれる。アマプラは月額300円だけど、一年で入るなら3000円にするよ!みたいなやつと同じ。使う期間がきまっててその間ずっと起動しっぱなしとかならいいんじゃない。
ちなみに期間中にインスタンスタイプを変更したくなった場合(メモリがもっと欲しい!とか)、差額を払えば変更可能になった。 -
スポットインスタンス
AWSが未使用のキャパを需要によって時価で提供。
要するに、ユーザが「500円までなら払うよ!」って宣言し、AWS側の料金が300円とかなら利用可能。
逆に、ユーザが「500円までなら払うよ!」って宣言し、AWS側の料金が600円とかなら使用不可に。使用不可期間は障害と同じ扱い。中断される。
なので、必要なログがインスタンス内にあるとかだと取り出せなくなるので停止前に別ストレージに移しておく必要がある。 -
ハードウェア占有インスタンス
-
Dedicated Hosts
上記二つは先述済み。どちらもHW占領できるがハードウェア占有はインスタンスごとの課金であり、しかもHW選べない。
インスタンスごとなので、支払い形態は上記のオンデマンド、リザーブド、スポットから選べる。
Dedicated HostsはHW自体の課金でどこにしようか選べる。
キーペア
インスタンス作成時に公開鍵と秘密鍵が作られる。作成時に秘密鍵を自分でダウンロードできる。SSHログインしたいとき等、この鍵を実行ディレクトリに置いておけば、認証してくれてログインできる。ただし権限変更しないと無理なパターンもあるのでchmodで変更してください。
とりあえずここまで。