AMI(Amazon Machine Image)とは
インスタンス軌道に必要なテンプレート情報が入ったOSのイメージ。サーバーのテンプレートのようなもの。
AWSやサードパーティのAMIの他、カスタムAMIを作ることも可能。
カスタムAMIから、複数のインスタンスを作ることも可能。
インスタンス
EC2から立てられたサーバーのこと。
以下はインスタンスを立てる時に必要な事項
インスタンスタイプ
サーバーのスペックを定義したもの。
「m5.xlarge」
- インスタンスタイプの名前の表記の意味
- 「m」 インスタンスファミリー(どのような特徴を持ったインスタンスかの種類を表したもの)
- 「5」 インスタンス世代(基本的に新しい世代がコスパが良い場合が多いので良い)
- 「xlarge」 インスタンスサイズ(スペックの高低)
ストレージ
サーバにくっつけるデータの保管場所。EC2には以下の2種類ある。
- EBS
- 高い可用性と耐久性を持つストレージ
- 他のインスタンスにも付け替え可能。
- EC2インスタンスをstop/terminateしてもデータの保持が可能。
- S3を利用してスナップショットを保存可能
- EBSの別料金がかかる
- OSやDBなどの永続性と耐久性が必要なデータを置く
- HDDのようなイメージ
- インスタンスストア
- インスタンス専用のストレージ
- 他のインスタンスには付け替えられない。
- EC2インスタンスをstop/terminateするとデータが消える
- 追加料金はかからない。
- 無くなってはいけないデータは置けない
- 一時ファイル、キャッシュなど無くなっても構わないデータに向く
ssh
SucureShellの略で安全に通信を行って、ネットワークに接続された機器を遠隔操作するための通信手段。
例えば自分のPCからssh接続でAWSのEC2インスタンス内に入って作業することができる。
サーバ内に公開鍵を置いておき、秘密鍵を持っているユーザーのみ接続できる。
EC2作成時に作成できるpemファイルなどはこの秘密鍵
ポート番号
IPアドレスがインターネット上でコンピュータを識別するアドレスなのに対して、ポート番号はプログラムのアドレスと表現することができる。
プログラムごとにポート番号が決まっている。
IPアドレスで、コンピュータを指定し、ポート番号でそのコンピュータ内の通信したい対象のプログラムを指定するイメージ。
例えばssh接続であるサーバに接続したいとき、
- 接続したいサーバAのIPアドレス
- 178.10.0.10
- そのサーバで走っているプログラムにそれぞれ割り当てられているポート番号が
- sshサーバ(具体的にはsshdプログラム)が22
- httpプログラム(サーバ)が80
- SMPTプログラム(サーバ)が25
の場合、
自分のPCから「178.10.0.10」のポート番号22に接続する」と通信を送ると、サーバAにssh接続する。
ウェルノウンポート番号と言って大体のサーバで標準的なポート番号は決まっていて、例えば
- sshサーバが22
- httpサーバが80
- httpsサーバは443
- SMPTサーバが25
以上となっている。逆にクライアント側ポート番号は動的に決められたりする。
サーバ内で以下のコマンドを実行すると、ポート番号一覧が取得できる。
sudo lsof -i -n -P //-n:ipアドレスとホスト名に変換しないオプション -P:ポート番号をサービス名に変換しないオプション。
ファイアーウォール設定(セキュリティグループ)
ES2インスタンスではセキュリティ上デフォルトではインバウンド(サーバへのアクセス)はssh接続のポート番号22への接続以外は受け付けないようになっている。サーバを外部公開するにはhttp80かhttps443のポートへの接続を受け付けるようにセキュリティグループを設定する必要がある。
Elastic IP アドレス
インターネット経由でアクセス可能な固定グローバルIPアドレスを取得し、インスタンスに付与できるサービス。
通常EC2インスタンス(サーバ)は停止、再起動をするとIPアドレスが変わってしまう為、これでIPアドレスを固定化する。
インスタンスを削除するまでは基本的にずっと固定のIPアドレスを使える。
インスタンスと紐づけられていて、そのインスタンスが起動中は無料、そうでない場合は有料。
逆に言うとElastic IPアドレスが使われていないと課金されるので、使わない場合は都度解放する。
キャパシティの予約
例えばインスタンスを大量に立ち上げようとすると割り当ての容量が立ちなかったりするとうまくいかない場合がある。
事前にキャパシティの予約をすると、それを防ぐことができる。