AWS Elastic IP 設定

AWS Elastic IP 設定

インスタンスを起動するたびに
グローバルIPアドレスが変わると面倒なので
Elastic IPを設定します

Elastci IP は固定グローバルIPアドレスです

まずは Elastic IP を取得します

EC2ダッシュボードから
Elastic IP をクリックし
新しいアドレスの割り当て
をクリックします

eip

すると、
EIPをどれに使用するかを聞かれますので
VPC を選択し
関連付ける
をクリックします

eip2

これで Elastic IP が取得できたので
閉じるをクリックします

eip3

次に、
取得した Elastic IP と
EC2 インスタンスを関連付けします

その前に
一度インスタンスのIDを調べておきます

eip5

取得した Elastic IP を右クリックし
アドレスの関連付けをクリックします

eip4

インスタンスの部分に
調べておいたインスタンスIDを入力し
関連付ける
をクリックします

eip7

これで関連付けがされ
インスタンスを確認すると
Elastic IP と
パブリックDNSが同じ値になっているのが確認できます

eip8

AWS EC2インスタンスのAMI作成

AWS EC2インスタンスのAMI作成

今回は EC2 インスタンスのAMIを作成

AMIに含まれるのは
OSなど、インスタンスを起動するのに必要な情報

注意点として
EBSに保存しているデータは
AMIには反映されないということ

なおAMI作成時に
EBS Snapshot が作成される

まずは実践でAMIの作成

今回 AWS_instance という名前の
EC2インスタンスから作成

まずインスタンスを選択

次に右クリックして
イメージ > イメージの作成
をクリック

ami

ポップアップが表示されるので
イメージ名に AWS_base_AMI
イメージの説明には base AMI
というように
任意のもので入力します
できたら
イメージの作成をクリックします

ami2

するとイメージ作成のポップアップがでるので
閉じるをクリックします

ami3

これで
EC2ダッシュボードで
AMIを調べると
新しくAMIが追加されているのがわかります

ami4

AWS EC2 インスタンスへ apache インストール

AWS EC2 インスタンスへ apache インストール

まず、最初にインスタンスを起動します

状態が running になったのを確認したら
パブリックDNSを確認し
SSHで接続します

ecss3

なおSSHでのログイン方法については
AWS EC2 インスタンスへのログイン

を参考にしてみてください

今回も Ubuntu の端末からログインします
起動は ctrl + alt + t で端末を起動できます

ssh -i pemファイル名 ec2-user@パブリック DNS

という書式でログインします

ログインできたら
まず apache をインストールします

sudo yum install httpd -y

でインストールできます

デフォルトユーザの ec2-user は
sudo 権限がついているので
sudo コマンドをつかうことで
インストールなどを行うことができます

sudo コマンドにかんしては
【 sudo 】指定したユーザーでコマンドを実行する

を参考にすると詳細が載っています

次に apache を起動します
起動と停止に関しては
service コマンドを使います

serviceコマンド

に詳細が掲載されていますので、より深く知りたい方はこちらを参考に

sudo service httpd start

で apache が起動します

毎回、このコマンドを実行するのは面倒なので
chkconfig で設定をすると次回から自動起動してくれます

chkconfig コマンドに関しては
chkconfigまとめ

を参考にすると
ランレベルについて書いてあるので
設定の理解が深まります

 sudo chkconfig httpd on

で実行できます

これでインストールはできたのですが
Security Group の設定を変更しないと
ファイアウォールではじかれるので
設定を変更します

過去記事の
AWS Security Group 作成

でも設定を行っています
このときには ssh の設定のみです

今回は、これに加えてHTTP通信ができるようにします

EC2ダッシュボードの中から
セキュリティグループをクリックし
現在、EC2 インスタンスに使っているものをクリックします

今回なら AWS_security
そして
インバウンドをクリックして、
編集をクリックします

http

すると
インバウンドルールの編集になるので
ルールの追加をクリックし
タイプにHTTP
送信元には 任意の場所
を指定します

http2

そして保存をクリックすれば
ルールが追加されます

http3

なお、送信元の
0.0.0.0/0
は、すべてのアクセスを許可するという意味です

設定ができたら
パブリックDNSへ
ブラウザでアクセスすると
apache のテストページが表示されます

http4

AWS EC2 インスタンスへのログイン

AWS EC2 インスタンスへのログイン

まず、EC2インスタンスを起動します
ずっと起動しておくとどんどん課金されるので
不要なときには停止しておきましょう

まず停止している状態だと
インスタンスの状態が stopped
となっているので
右クリック > インスタンスの状態 > 開始
で起動します

ecss

すると開始するか聞かれるので
開始するをクリックします

ecss2

すこし時間がかかりますが
状態が stopped から running
になるまで待ちます
無事に起動したら
パブリックDNSの値を確認します

ecss3

次に、端末から接続するために
pem ファイルの権限を 600 にします

aws_wordpress.pem
というファイル名で保存しているので
この権限を変更します

なお pem ファイル作成については
AWS 公開鍵、秘密鍵の作成

を参考にしてください

今回は Ubuntu 12.04 から操作します

ctrl + alt + t で端末を起動します

pemファイルをダウンロードしたディレクトリに移動し

 chmod 600 aws_wordpress.pem 

で権限を変更します

chmod コマンドについては
【 chmod 】 ファイルやディレクトリのアクセス権を変更する

を参考にするとわかりやすいです

次に ssh コマンドで
Amazon Linux AMI にアクセスしますが
Amazon Linux の場合
ユーザ名が ec2-user になります

なおsshコマンドの詳細については
【 ssh 】 SSHでリモート・マシンのコマンドを実行する

を参考に

ssh -i aws_wordpress.pem ec2-user@ec2-54-92-120-245.ap-northeast-1.compute.amazonaws.com

というように

ssh -i pemファイル名 ec2-user@パブリック DNS

という書式でログインします

なお、公開鍵認証でのログインとなっています

ログインに成功するとEC2のロゴのようなものが表示されます

ecss4

AWS EC2 起動

AWS EC2 起動

AWSコンソールからEC2 をクリックします

ec2

次にダッシュボードから
インスタンスをクリックし、
インスタンスの作成をクリックします

ec

すると、どのAmazon マシンイメージを使うか
となりますので
今回は
Amazon Linux AMI 2015.03.1 (HVM), SSD Volume Type
にしますので選択をクリックします

ec-2

なお、EC2 の料金に関しては
https://aws.amazon.com/jp/ec2/pricing/
を参考に金額を調べることができます

次にインスタンスタイプの設定をします
スペックにより料金が変わります

今回はt2. micro にします
チェックをいれたら
次の手順 インスタンスの詳細の設定
をクリックします

ec3

インスタンスの詳細の設定になりますが
とくに変更せず
次の手順:ストレージの追加
をクリックします

ec4

こちらも特に変更はしないので
次の手順:インスタンスのタグ付け
をクリックします

ec5

タグの設定では値の設定をします
今回は AWS_instance としました
これで
次の手順:セキュリティグループの設定
をクリックします

ec6

セキュリティグループは
すでに作成してあるものを使うので
既存のセキュリティグループを選択する
にチェックを入れ
使用したいセキュリティグループにチェックを入れ
確認と作成
をクリックします

ec7

これで確認画面になるので
問題がないのなら
作成をクリックします

ec8

するとキーペアについての設定になるので
既存のキーペアの選択
を選び
キーペアを選択します
今回は
以前作成した
aws_wordpress を使います

そして
選択したプライベートキーファイル(aws_wordpress.pem)へのアクセス権があり、このファイルなしではインスタンスにログインできないことを認識しています。
にチェックをいれれば
インスタンスが作成できます

ec9

これでインスタンスができたので
インスタンスの表示をクリックします

ec10

これでEC2 インスタンスが起動しているのがわかります

ec11

AWS Security Group 作成

AWS Security Group 作成

Secuity Group はAWSのファイアウォールのようなもの

Security Group は
While List 方式なので、iptable みたいな設定ではなく
許可するもののみ設定することになります

何も設定しないとすべて遮断します

接続元、宛先の指定方法は
IPアドレス、または
Security Group のもつIDになります

Security Group を作成するには
AWSマネジメントコンソールで EC2 をクリック

ec2

EC2 ダッシュボードの中のセキュリティグループをクリックし
セキュリティグループの作成をクリックします

sec

すると設定画面がでてくるので
セキュリティグループ名には任意の名前
今回は AWS_security
としました

説明には任意のコメントをいれます
aws_security
とします

ルールに関しては後で設定できるので
作成をクリックします

sec2

これでセキュリティグループが追加されたので
ルールを追加します

まず
追加したルールをクリックし
インバウンドタグをクリック、編集をクリックします

sec3

するとルール定義画面になるので
タイプには SSH

送信元には マイIP
を設定します

ポート範囲などは自動設定してくれるので
保存をクリックします

sec4

インバウンド項目の設定は
このセキュリティグループを適用したEC2インスタンスへの接続許可設定になります

これでSSH接続が可能になります
ちなみに、マイIPは
現在AWSコンソールに接続しているグローバルIPです

インバウンドはEC2 への接続ですが
アウトバウンドの場合だと外部への通信になります

これでセキュリティグループ設定ができたので
次回EC2の起動をします

AWS 公開鍵、秘密鍵の作成

AWS 公開鍵、秘密鍵の作成

EC2では公開鍵暗号方式でログインするので
ログインには
公開鍵、 秘密鍵
が必要になります
これがキーペアとよばれるものになります

まずAWSコンソールから
EC2 をクリック

ec2

EC2ダッシュボードの中から
キーペアをクリック

ec22

キーペアの作成をクリック

ec23

キーペア名を入力します
任意の名前でOKです
今回は aws_wordpress とします

ec24

作成をクリックすると
.pem 形式のファイルの保存画面になるので
保存します
このファイルがキーペアとなるファイルです

ec25

AWS Internet Gateway 作成

AWS Internet Gateway 作成

Internet Gateway は
VPCネットワークで稼働するEC2インスタンスが
インターネットを通じ外部と通信するのに必要

自宅サーバーのデフォルトゲートウェイのようなもの

作成した Intenet Gateway は
ルートテーブルのターゲットとして設定することになる

Internet Gateway は設定するのは
識別のためのネームタグだけです

この Internet Gateway を設定するには
VPCダッシュボードの
インターネットゲートウェイをクリックし
インターネットゲートウェイの作成
をクリック

ig

ネームタグ設定画面になるので
今回は
AWS_GATEWAY
としました

ig2

これで Intenet Gateway が作成されます

次に、作成した Internet Gateway と
VPCの関連付けをします
そのままの状態だと detached となっているので
関連付けしたい Internet Gateway にチェックをいれ
VPCにアタッチをクリックします

ig3

アタッチするVPCを選択し
アタッチをクリックします

ig5

これで状態が atached になれば関連付けされています

ig6

次に、作成した Internet Gateway を
ルーティング先に設定します

VPCダッシュボードから
ルートテーブルをクリックし
設定したいルートテーブルをクリックします

ig7

次に
ルートをクリックし、編集をクリックします

ig8

別ルートの追加をクリックします

ig9

追加欄がでるので
送信先には 0.0.0.0/0
として
すべてのアドレスとマッチするようにします

ターゲットは
空欄をダブルクリックすると候補がでるので
それを選択します

設定ができたら保存をクリックします

ig10

これで設定完了です

次回はEC2のための設定を行っていきます

AWS Route Table 作成

AWS Route Table 作成

Route table は
サブネット内で稼働するEC2インスタンスの
ネットワークルーティング制御をするもの

インターネット通信をするのなら
Internet gateway をルーティング先に

VPC接続で外部サーバと通信するなら
Virtual Private gateway をルーティング先
というように指定します

Route Table 作成は
VPCダッシュボードから
ルートテーブル作成を選択し
ルートテーブル作成をクリックします

rtable

するとルートテーブル作成画面になるので

ネームタグに任意の名前をつけます
今回は
aws_routetable
としました

rtable2

これで新しく作成したルートテーブルが追加されます

rtable3

この作成したルートテーブルをメインにするのなら
右クリックして
メインテーブルとして設定
を選びます

すると確認ダイアログがでるので
設定をクリックします

rtable4

これでメインに設定されます

次にサブネットとルートテーブルを関連付けします

サブネットの新規作成時は
ルートテーブルを指定することができないため
VPC内のメインルートテーブルに自動的に関連付けされます

今回ルートテーブルを作成したので
これと関連付けします

ルートテーブルの中の
サブネットの関連付けをクリックし
編集をクリックします

rtable5

するとサブネット一覧がでます
とはいっても今回は1つしか作成していませんので
1つだけです

この関連付けにチェックを入れ
保存をクリックします

rtable6

これで関連付けされます

自動的に関連付けされることもありますが
明示的に関連付けしないと
通信ができなくなったり
不要な通信をするなどの不具合がでる可能性があります

次は Internet Gateway の設定になります

AWS Custom VPC 作成

AWS Custom VPC 作成

VPC作成手順は
VPCネットワーク作成
Subnet作成
Route Table 作成
Internet Gateway 作成
Network ACL 設定
Security group 設定
となる

まずはVPCネットワークの作成

VPCで稼働する予定の
private network Address の範囲を指定する

なお、VPCネットワークアドレスは
一度設定すると後から変更できないので余裕をもって範囲設定すること

作成するにはAWSコンソールにログインし
ネットワーキング項目のVPCをクリック

vpc

次にダッシュボードのVPCをクリックし
VPCの作成をクリック

vpc2

するとVPC作成画面になります

vpc3

ネームタグには任意の名前をつけます
今回なら
AWS_wpservice
とします

次に、CIDR ブロック
これはIPアドレス範囲の指定です
最大が
10.0.0.0/16
となり、 65536 IPが最大となります

テナンシーはホストサーバーの指定に関しての設定
通常はデフォルトでOK
これを
ハードウェア占有にすると
占有状態となりセキュリティなどで
他とは共有できないときに指定します
ただし、料金が割高になります

設定ができたら、作成をクリックすれば
VPCが作成されます

vpc4

次に、EC2でパブリックDNSを使うため
DNSホスト名を はい に変更します

作成したVPCを右クリックし
DNSホスト名の編集を選択します

ダイアログがでたら
はい
を選択し、保存します

vpc5

これで設定が反映されます

つぎはサブネットの作成になります

これをつくることで、複数のネットワークを作成できます
これを行うことにより
VPC内部で役割に応じたネットワーク構築ができます

サブネットの作成は
ダッシュボードからサブネットをクリックし
サブネットの作成をクリックします

sub

するとサブネット作成画面がでてきます
ネームタグは、VPCと同じように
任意のものでOKです
今回はAWS_subnet とします

VPCには、作成した カスタムVPCがセットされます

アベイラビリティゾーンは
サブネットを作成するAZの指定になります
つまり、リージョン指定
指定しないと任意のものになります

CIDR ブロック

ネットワーク範囲になります

ただし
最初の4IPと、最後の1IPはAWSで使うため
利用できないし
ELBを作るには20IP必要なため
/28 つまり 16IPではELBが使用不可のため
最低でも/24 (256IP)以上にしたほうがよいなど
色々と制限があるため注意が必要です
今回は
CIDRブロックは
10.0.0.0/24
としました

sub2

これでサブネットが作成されたので、
できたサブネットを右クリックし
自動割り当てパブリックIPの変更を選択します

sub3

ダイアログがでるので
自動割り当てパブリックIPを有効化
にチェックをいれて保存します

sub4

これでDefault VPC の特殊設定にある
EC2インスタンス生成時に
パブリックIPアドレス
DNSホスト名を自動設定できるようになりました

次回、RouteTable の作成になります