Open12

EC2周りのメモ

ダン@HyperFormダン@HyperForm

インスタンスタイプ

m5.xlargec5d.xlargeみたいなインスタンスタイプがある。
cが種類、5が世代、dが追加機能、xlargeがサイズ。

ダン@HyperFormダン@HyperForm

EC2インスタンスをインターネットに接続するには

  • インスタンスにパブリックIP(グローバルIP)が設定されている
  • セキュリティグループに許可ルールが設定されている
  • インスタンスが設置されているサブネットのルートテーブルに、IGWへの接続が定義されている

ことが必要

ダン@HyperFormダン@HyperForm

セキュリティグループ

インスタンスの通信を遮断する目的で作られる仮想ファイアウォール。

  • 1つのVPC内で複数定義できて、1つのインスタンスに対して最大5つまで関連付けられる
  • 1つのセキュリティグループには、複数のアクセス許可ルールを設定できる
    • 拒否ルールの設定はないので、許可ルールに一致しない通信はすべて遮断される
  • インスタンスへ入ってくる通信(インバウンドトラフィック)と、インスタンスから出ていく通信(アウトバウンドトラフィック)を別々に設定できる
    • インバウンドルールに一致したインバウンドトラフィック戻りのアウトバウンドトラフィックは、アウトバウンドルールの設定にかかわらず許可される

EC2インスタンス上のアプリに外部からアクセスできるようにしたい時は、
HTTP / TCP / 80 / 0.0.0.0/0HTTPS / TCP / 443 / 0.0.0.0/0
みたいなインバウンドルールを設定する。

ダン@HyperFormダン@HyperForm

アウトバウンドルールを設定しなかった場合、アプリは普通に動く? 動かない?

ダン@HyperFormダン@HyperForm

Elastic IP

インスタンス作成時に(設定によって)割り当てられるパブリックIP(グローバルIP)は、インスタンスを再起動するたびに変化してしまう。
Elastic IPを割り当てることで、固定IPになる。

ダン@HyperFormダン@HyperForm

ネットワークACL

サブネットに属するすべてのインスタンスに対して適用されるファイアウォール。
セキュリティグループと機能がかぶるので、使わない場合も多い。
許可と拒否のルールを定義できるところがセキュリティグループとの違いの1つ。

ダン@HyperFormダン@HyperForm

SSH接続するときのキーペア

デフォルトだと、インスタンス作成時にキーペアが作成され、秘密鍵をダウンロードする仕様。
ローカルでキーペアを作成して(or すでにあるキーペアを利用して)、公開鍵をアップロードすることもできる。

ダン@HyperFormダン@HyperForm

EC2にアタッチして使うストレージ

「Amazon EBS」「インスタンスストア」「Amazon EFS」の3種類があって、通常Amazon EBSがアタッチされている。

基本的にEBSにはソースコードとちょっとした画像くらいを置いて、
重たいデータとか、ユーザーがアップロードするデータとかは、EBSじゃなくてS3に置く。

ダン@HyperFormダン@HyperForm

ステータスチェック

AWSは、実行中のEC2インスタンスに対して、定期的に以下の2種類のステータスチェック(監視)を行っている。

システムステータスチェック

EC2インスタンスをホストしているハードウェア側の障害。AWSが悪い。

  • ネットワーク接続の喪失
  • システム電源の喪失
  • 物理ホストのソフトウェアの問題
  • ネットワーク到達可能性に影響する、物理ホスト上のハードウェアの問題

など。システムステータスチェックが失敗した時、インスタンスを再起動させるAuto Recoveryという機能がある。

インスタンスステータスチェック

EC2インスタンス内部で発生している障害。ユーザーが修復する必要がある。

  • 誤ったネットワーク設定や起動設定
  • メモリの枯渇
  • ファイルシステムの破損
ダン@HyperFormダン@HyperForm

AMI(Amazon Machine Image)

インスタンスを起動するのに必要なOSやボリュームの情報、アプリケーションなどを含むインスタンスの起動テンプレートのこと。インスタンスを立ち上げる際は必ずAMIを指定して起動する。

0からEC2インスタンスを立ち上げたい時

AWSが用意しているAMIから1つを選択する。
(Amazon Linux2など)

既存のEC2インスタンスをコピーしたい時

既存のインスタンスを元にAMIを作成 → 作ったAMIを、新規インスタンスを作る時に選択すると、中身のファイルまで保持されたインスタンスが出来上がる。
AMI = EBSスナップショット + α(管理情報)

http://endok.hatenablog.com/entry/2014/06/15/193137

ダン@HyperFormダン@HyperForm

起動テンプレート

EC2インスタンス作成時に使用する
AMI、インスタンスタイプ、セキュリティーグループ
等のセットをテンプレートとして登録しておくことができる。