blog

Amazon VPC シリーズAmazon VPCを作成しEC2にHTTP接続する

    • Ryuichi Nonaka
    この記事は書かれてから1年以上経過しており、内容が古い場合があります。

    はじめに

    今まで特に気にせず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を設定してくれます。ウィザードを使わずに個別に設定することもできます。

    VPC Dashboard

    ウィザードが表示されるので、Single Public Subnetを選択します。

    Single Public Subnetを選択

    VPC名(VPC name:)だけ入力してCreate VPCを押します。

    VPC名を入力

    とりあえずVPC環境ができました。

    作成完了

    EC2を立ち上げ、EIPをあてる

    VPC用にEC2を立ち上げEIPを設定します。

    EC2の新規作成

    Amazon Linux AMIを使い、EC2を立ち上げます。サンプルなのでTypeはt2.microにします。

    EC2を立ち上げる

    EC2のNetworkとSubnetが先ほど作成したVPCの情報になっているか確認して次ぎのステップに進みます。

    EC2の設定

    ストレージ設定はそのままで問題ありません。インスタンスタグは適当に付けてください。 セキュリティグループはApacheをインストールしてブラウザからのアクセスを確認するのでHTTPを追加しておきます。

    セキュリティグループの作成

    内容を確認して問題なければLaunchします。

    EC2作成完了

    key pairは既存のものでも良いですし、新規でもどちらでも良いです。

    鍵の設定

    EIPの設定

    EIPの画面から新規にEIPを作成し、先ほど立ち上げたEC2にVPC用のEIPをあてます。

    EIPの作成

    作成したEIPを先ほどのEC2にあてます。

    EIPの設定

    これで準備完了です。

    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にアクセスすることができました。

    今回はここまで。

    シリーズ

    1. Amazon VPCを作成しEC2にHTTP接続する
    2. Amazon VPC上にシンプルなWordpress環境を構築する:準備編
    3. Amazon VPC上にシンプルなWordpress環境を構築する:Webサーバー構築編

    コメント・フィードバック