EC2周りのメモ
インスタンスタイプ
m5.xlarge
、c5d.xlarge
みたいなインスタンスタイプがある。
c
が種類、5
が世代、d
が追加機能、xlarge
がサイズ。
EC2インスタンスをインターネットに接続するには
- インスタンスにパブリックIP(グローバルIP)が設定されている
- セキュリティグループに許可ルールが設定されている
- インスタンスが設置されているサブネットのルートテーブルに、IGWへの接続が定義されている
ことが必要
セキュリティグループ
インスタンスの通信を遮断する目的で作られる仮想ファイアウォール。
- 1つのVPC内で複数定義できて、1つのインスタンスに対して最大5つまで関連付けられる
- 1つのセキュリティグループには、複数のアクセス許可ルールを設定できる
- 拒否ルールの設定はないので、許可ルールに一致しない通信はすべて遮断される
- インスタンスへ入ってくる通信(インバウンドトラフィック)と、インスタンスから出ていく通信(アウトバウンドトラフィック)を別々に設定できる
- インバウンドルールに一致したインバウンドトラフィック戻りのアウトバウンドトラフィックは、アウトバウンドルールの設定にかかわらず許可される
EC2インスタンス上のアプリに外部からアクセスできるようにしたい時は、
HTTP / TCP / 80 / 0.0.0.0/0
、HTTPS / TCP / 443 / 0.0.0.0/0
みたいなインバウンドルールを設定する。
アウトバウンドルールを設定しなかった場合、アプリは普通に動く? 動かない?
Elastic IP
インスタンス作成時に(設定によって)割り当てられるパブリックIP(グローバルIP)は、インスタンスを再起動するたびに変化してしまう。
Elastic IPを割り当てることで、固定IPになる。
ネットワークACL
サブネットに属するすべてのインスタンスに対して適用されるファイアウォール。
セキュリティグループと機能がかぶるので、使わない場合も多い。
許可と拒否のルールを定義できるところがセキュリティグループとの違いの1つ。
SSH接続するときのキーペア
デフォルトだと、インスタンス作成時にキーペアが作成され、秘密鍵をダウンロードする仕様。
ローカルでキーペアを作成して(or すでにあるキーペアを利用して)、公開鍵をアップロードすることもできる。
EC2にアタッチして使うストレージ
「Amazon EBS」「インスタンスストア」「Amazon EFS」の3種類があって、通常Amazon EBSがアタッチされている。
基本的にEBSにはソースコードとちょっとした画像くらいを置いて、
重たいデータとか、ユーザーがアップロードするデータとかは、EBSじゃなくてS3に置く。
ステータスチェック
AWSは、実行中のEC2インスタンスに対して、定期的に以下の2種類のステータスチェック(監視)を行っている。
システムステータスチェック
EC2インスタンスをホストしているハードウェア側の障害。AWSが悪い。
- ネットワーク接続の喪失
- システム電源の喪失
- 物理ホストのソフトウェアの問題
- ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題
など。システムステータスチェックが失敗した時、インスタンスを再起動させるAuto Recoveryという機能がある。
インスタンスステータスチェック
EC2インスタンス内部で発生している障害。ユーザーが修復する必要がある。
- 誤ったネットワーク設定や起動設定
- メモリの枯渇
- ファイルシステムの破損
AMI(Amazon Machine Image)
インスタンスを起動するのに必要なOSやボリュームの情報、アプリケーションなどを含むインスタンスの起動テンプレートのこと。インスタンスを立ち上げる際は必ずAMIを指定して起動する。
0からEC2インスタンスを立ち上げたい時
AWSが用意しているAMIから1つを選択する。
(Amazon Linux2など)
既存のEC2インスタンスをコピーしたい時
既存のインスタンスを元にAMIを作成 → 作ったAMIを、新規インスタンスを作る時に選択すると、中身のファイルまで保持されたインスタンスが出来上がる。
AMI = EBSスナップショット + α(管理情報)
起動テンプレート
EC2インスタンス作成時に使用する
AMI、インスタンスタイプ、セキュリティーグループ
等のセットをテンプレートとして登録しておくことができる。
既存のインスタンスを別のサブネット、アベイラビリティーゾーン、または VPC に移動することができまない。
代わりに、ソースインスタンスから新しい Amazon マシンイメージ (AMI) を作成して、手動でインスタンスを移行する。