Amazon VPC シリーズAmazon VPCを作成しEC2にHTTP接続する
はじめに
今まで特に気にせずEC2を使って来ましたが、例えば特定のIPアドレスからのアクセスを拒否しようとするとiptablesしか選択肢がありません。というのもセキュリティグループは特定のIPアドレスだけを拒否(deny)することができないからです。
AWSの場合、オートスケーリングを行うような構成が一般的なのですべてのインスタンスに都度iptablesを設定するのは非効率です。なんと言っても攻撃を受けた場合にコンピューティングリソースを使うので課金されてしまいます。
VPCにすることでネットワークACLが使えるので許可ルール(Allow)と拒否ルール(deny)が設定できるようになります。今回はとりあえずVPCを使ってみるということでVPC上のEC2にSSH接続できるまでの手順を紹介します。
http://docs.aws.amazon.com/ja_jp/AmazonVPC/latest/UserGuide/VPC_Introduction.html
Amazon VPCとは
Amazon VPCの詳細については端折ります。詳しくはリンク先を読んでください。
Amazon Virtual Private Cloud(Amazon VPC)を使用すると、定義した仮想ネットワーク内にアマゾン ウェブ サービス(AWS)リソースを起動できます。仮想ネットワークは、ご自身のデータセンターで操作していた従来のネットワークとよく似ていますが、AWS のスケーラブルなインフラストラクチャを使用できるというメリットがあります。
http://docs.aws.amazon.com/jajp/AmazonVPC/latest/UserGuide/VPCIntroduction.html#
VPC環境の構築
VPC環境を作りましょう。EC2やRDSをごにょごにょしたことがある前提で進めます。リージョンはどこでも構いませんが、日本に住んでいるのでAsia Pacific(Tokyo)に作ります。
VPCの新規作成
まずはVPC Dashboardにアクセスして、青いボタンのStart VPC Wizardを押します。今回はウィザードを使うので勝手にInternet GatewayやSubnet、Route Tablesを設定してくれます。ウィザードを使わずに個別に設定することもできます。
ウィザードが表示されるので、Single Public Subnetを選択します。
VPC名(VPC name:)だけ入力してCreate VPCを押します。
とりあえずVPC環境ができました。
EC2を立ち上げ、EIPをあてる
VPC用にEC2を立ち上げEIPを設定します。
EC2の新規作成
Amazon Linux AMIを使い、EC2を立ち上げます。サンプルなのでTypeはt2.microにします。
EC2のNetworkとSubnetが先ほど作成したVPCの情報になっているか確認して次ぎのステップに進みます。
ストレージ設定はそのままで問題ありません。インスタンスタグは適当に付けてください。 セキュリティグループはApacheをインストールしてブラウザからのアクセスを確認するのでHTTPを追加しておきます。
内容を確認して問題なければLaunchします。
key pairは既存のものでも良いですし、新規でもどちらでも良いです。
EIPの設定
EIPの画面から新規にEIPを作成し、先ほど立ち上げたEC2にVPC用のEIPをあてます。
作成したEIPを先ほどのEC2にあてます。
これで準備完了です。
SSH接続を試す
コンソールから$ ssh -i
を使って接続します。私の環境ではsshのconfigで省略できるよう調整してあるのでssh vpc
で特定のEIPに接続しています。
$ ssh vpc
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
[ec2-user@ip-10-0-0-31 ~]$
rootでhttpdをインストールする
suに切り替えます。
[ec2-user@ip-10-0-0-31 ~]$ sudo su -
[root@ip-10-0-0-31 ~]#
yumでhttpdをインストール
# yum install httpd
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest | 2.1 kB 00:00
amzn-main/latest/group | 35 kB 00:00
amzn-main/latest/primary_db | 3.1 MB 00:00
amzn-updates/latest | 2.3 kB 00:00
amzn-updates/latest/group | 35 kB 00:00
amzn-updates/latest/updateinfo | 181 kB 00:00
amzn-updates/latest/primary_db | 84 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.29-1.4.amzn1 will be installed
--> Processing Dependency: httpd-tools = 2.2.29-1.4.amzn1 for package: httpd-2.2.29-1.4.amzn1.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.29-1.4.amzn1.x86_64
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.29-1.4.amzn1.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.29-1.4.amzn1.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.29-1.4.amzn1.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.5.0-2.11.amzn1 will be installed
---> Package apr-util.x86_64 0:1.4.1-4.14.amzn1 will be installed
---> Package apr-util-ldap.x86_64 0:1.4.1-4.14.amzn1 will be installed
---> Package httpd-tools.x86_64 0:2.2.29-1.4.amzn1 will be installed
---> Package mailcap.noarch 0:2.1.31-2.7.amzn1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================================================================================================
Package Arch Version Repository Size
================================================================================================================================================================
Installing:
httpd x86_64 2.2.29-1.4.amzn1 amzn-main 1.2 M
Installing for dependencies:
apr x86_64 1.5.0-2.11.amzn1 amzn-main 115 k
apr-util x86_64 1.4.1-4.14.amzn1 amzn-main 87 k
apr-util-ldap x86_64 1.4.1-4.14.amzn1 amzn-main 17 k
httpd-tools x86_64 2.2.29-1.4.amzn1 amzn-main 79 k
mailcap noarch 2.1.31-2.7.amzn1 amzn-main 27 k
Transaction Summary
================================================================================================================================================================
Install 1 Package (+5 Dependent packages)
Total download size: 1.5 M
Installed size: 3.6 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): apr-1.5.0-2.11.amzn1.x86_64.rpm | 115 kB 00:00
(2/6): apr-util-1.4.1-4.14.amzn1.x86_64.rpm | 87 kB 00:00
(3/6): apr-util-ldap-1.4.1-4.14.amzn1.x86_64.rpm | 17 kB 00:00
(4/6): httpd-2.2.29-1.4.amzn1.x86_64.rpm | 1.2 MB 00:00
(5/6): httpd-tools-2.2.29-1.4.amzn1.x86_64.rpm | 79 kB 00:00
(6/6): mailcap-2.1.31-2.7.amzn1.noarch.rpm | 27 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 7.8 MB/s | 1.5 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : apr-1.5.0-2.11.amzn1.x86_64 1/6
Installing : apr-util-1.4.1-4.14.amzn1.x86_64 2/6
Installing : apr-util-ldap-1.4.1-4.14.amzn1.x86_64 3/6
Installing : httpd-tools-2.2.29-1.4.amzn1.x86_64 4/6
Installing : mailcap-2.1.31-2.7.amzn1.noarch 5/6
Installing : httpd-2.2.29-1.4.amzn1.x86_64 6/6
Verifying : apr-util-ldap-1.4.1-4.14.amzn1.x86_64 1/6
Verifying : httpd-2.2.29-1.4.amzn1.x86_64 2/6
Verifying : apr-util-1.4.1-4.14.amzn1.x86_64 3/6
Verifying : apr-1.5.0-2.11.amzn1.x86_64 4/6
Verifying : mailcap-2.1.31-2.7.amzn1.noarch 5/6
Verifying : httpd-tools-2.2.29-1.4.amzn1.x86_64 6/6
Installed:
httpd.x86_64 0:2.2.29-1.4.amzn1
Dependency Installed:
apr.x86_64 0:1.5.0-2.11.amzn1 apr-util.x86_64 0:1.4.1-4.14.amzn1 apr-util-ldap.x86_64 0:1.4.1-4.14.amzn1 httpd-tools.x86_64 0:2.2.29-1.4.amzn1
mailcap.noarch 0:2.1.31-2.7.amzn1
Complete!
httpdを起動。
# service httpd start
Starting httpd: [ OK ]
EIPをブラウザで開いてみます。Apacheの画面が表示されたら成功です。
これでVPC上のEC2にアクセスすることができました。
今回はここまで。
シリーズ
- Amazon VPCを作成しEC2にHTTP接続する
- Amazon VPC上にシンプルなWordpress環境を構築する:準備編
- Amazon VPC上にシンプルなWordpress環境を構築する:Webサーバー構築編