AWSでは、「Amazon EC2(またはAmazon Elastic Compute)」と言うアンマネージドサービスを使って仮想サーバを構築します。
特徴
- 数分で起動して1時間または秒単位で課金さる。
- サーバーの追加、削除、設定変更も数分で可能。
- ミドルウェア(OSより上)は自由に設定可能。
AMI(Amazon Machine Image)
インスタンス起動に必要な情報が入ったOSのイメージです。サーバーのテンプレートになりOSのデータが入っています。
特徴
- AWSだけでなくサードパーティも提供している。
- 自前でカスタムAMIも作成が可能
- カスタムAMIから何台でもEC2インスタンスを起動可能
インスタンスの作成
Amazon EC2により構築された各サーバをインスタンスと呼び、インスタンスを構築する際は下記の項目を決めます。
- CPUのスペック
- ディスクの容量
- インスタンスタイプ
インスタンスタイプ
インスタンスタイプによりCPU、メモリ、ストレージ、ネットワーク帯域が異なり料金も異なります。もちろんスペックが高いほど料金は高くなります。基本的にはアクセス数の予測により必要なインスタンスタイプを決定します。
インスタンスファミリー
t2.microで言えば「t」にあたります。インスタンスの特徴を示しています。例えば、汎用的なものだったり、CPUを最適したインスタンス、メモリを最適化したインスタンスだったり、価格を最適化したインスタンスだったりです。ちなみに、tに関しては負荷の増減がある場合に負荷がある時だけCPUスペックを大きく発揮するタイプのインスタンスになります。
インスタンス世代
t2.microで言えば「2」にあたります。世代が新しい方が高性能でコストパフォーマンスもよくなります。
インスタンスサイズ
t2.microで言えば「micro」にあたります。small、large等がありmicroはCPUやメモリ等のスペックが最小になります。
インスタンスタイプの種類
t2.micro
契約してから1年間は無償利用範囲に含まれる。
ストレージ
EC2のストレージは2種類があります。
- EBS(Elastic Block Store)
- インスタンスストア
EBS
- 高い可用性と耐久性を持ちます。
- EC2とは独立したサービスのため他のインスタンスに付け替えれます。
- EC2インスタンスを止めても(Stop/Terminate)EBSはデータを保持できます。
- スナップショットを取得してS3に保存が可能です。
- EBSの費用が別途かかります。
- 通常はOSやDB等の貴重で永続化が必要なデータを配置します。
インスタンスストア
- インスタンス専用の一時的なストレージです。
- 他のインスタンスに付け替えることはできません。
- EC2インスタンスを止める(Stop/Terminate)とクリアされてしまいます。
- 無料です。
- 無くなったら困るデータは配置しません。
- 通常は、一時ファイルやキャッシュ等無くなっても問題ないファイルを配置します。
キーペア
インスタンスを作成する際に作成する認証用のファイル(pem)です。一度紛失してしまうとログインすることができなくなるので注意です。pemファイルは秘密鍵になりますので、公開鍵で暗号化されたデータはこれでしか開けることができません。
IPアドレス
パブリックIPアドレス
インスタンスにはパブリックIPアドレスが割り当てられますが起動停止する度に別のIPアドレスが割り当てられる「動的IPアドレス」になります。インターネット通信時に使う。
Elastic IP
IPアドレスを固定化したい場合はこちらの機能を使います。Elastic IPアドレスには下記の特徴があります。
- インスタンスを削除するまではずっとそのIPアドレスを使用できる。
- EC2インスタンスに紐づけられておりそのインスタンスが起動していれば無料、起動していないと課金されてしまいます。
プライベートIPアドレス
VPCの領域内での通信をする場合に使います。
ENI
仮想ネットワークインターフェースのことです。EC2にこれを付与して追加でIPアドレスを割り当てることが可能になります。
特徴
- EC2インスタンスのIPアドレスはENIに付与される。
- 同じAZのインスタンスにアタッチ/デタッチできる。
用途
- IPアドレスを増やして、SSL証明書をそれぞれのIPアドレスに割り当てて一つのインスタンスで二つのサイトを運用する。
- ネットワークのセグメントを分けたい場合(インターネット接続あり、なしで分ける場合等)
DNS
VPC側でDNSホスト名を設定することでEC2のDNSが使えるようになります。
パブリックDNS
インターネットから参照できるDNS名です。パブリックIPアドレスを割り当ててない時は空欄となります。
なお、パブリックDNSもElastic IPを用いて固定化しなければ毎回ランダムなパブリックDNSが生成されます。
プライベートDNS
VPC内でしか参照できないDNS名です。パブリックIPアドレスを設定していなくても使えます。
セキュリティグループ(AWSにおけるファイアウォール)
EC2のファイアウォール(パケットフィルタリング)機能です。IPアドレスとポート番号にてどのパケットを通過させるかを設定できます。許可の判断は累積的に行われます。
設定単位
EC2に設定されますが、正確に言えばENI単位で設定することになります。(たいていのネットワーク構成図ではそこまで表現することはあまりありません。基本はEC2に設定すると覚えておけば良いでしょう。)
インバウンド
外からこのインスタンスに接続する向きです。「誰かが接続しているのを排除する」という目的で使われます。
アウトバウンド
正直インバウンドに比べたらあまり使いません。(セキュリティレベルの高いシステムでは設定することがある程度です。)このインスタンスから外側に出ていく向き。「サーバーから他のコンピュータへの接続を防ぐ」という目的で使われます。デフォルトだと全てのトラフィックのアウトバウンドは許可されています。
アウトバウンドで許可されていてもインバウンドでNGだったら通信もNGになるの?
結論としては、アウトバウンドで戻ってくる通信に関してはインバウンドで禁止されていたとしても許可されます。これを「ステートフル・インスペクション型」と呼びます。
Network ACL
サブネット単位で設定するファイアウォールです。IPアドレスとポート番号で許可設定をします。
用途
○○の攻撃から防ぐためにサブネットまとめて設定しましょうという場合に使われます。基本的にはセキュリティグループで対策をすることにしてセキュリティグループで対策するのが面倒な場合は使います。あくまで補助的な対策の位置付けです。
デフォルト
インもアウトも全て許可設定されています。
評価方法
ルールごとにルール番号が設定されており小さい順から順番に評価されていきます。
アウトバウンドで許可されていてもインバウンドでNGだったら通信もNGになるの?
結論から言えば通信はNGになります。インバウンドでも明示的に通信許可する設定をする必要があります。これを「ステートレスインバウンド型」と呼びます。
この記事へのコメントはありません。