*

AWSでWebサーバー構築するやり方 (EC2xUbuntu)

公開日: : サーバー構築 , ,

今回はAWSのサーバーの構築を扱ってみようと思います。前回VPSを使った一般的なWEBサーバーの構築をしましたが、今回はAWSでやります。AWSは専門用語(造語)が多いので、慣れるまではかなり苦労します。

一応、MT4/MT5からサーバーにトレードデータを送受信する際に、ルート権限で細かいカスタマイズをすることを狙っていますが、大規模スケールアップする予定がなければ普通のVPSでも良いと思います。もちろん、普通のWEBサイト運営もできると思います。(よっぽど大規模アクセスがあるのでなければオーバースペックだと思います。)

サーバーのOSはUbuntu14にしました。CentOSは前述のとおり、日本国内だけでガラパゴス化しているので、グローバルスタンダードなUbuntuです。バージョンに関しては前回はUbuntu16でしたが、PHPをインストールする際に半ば強制的にPHP7にされてしまうことと、PHP5で書いた従来のシステムがPHP7では動かない可能性があるからです。(かく言う私のシステムもPHP5.3で書いているので、PHP7だと一部機能しない関数がありました。)

もちろん、Ubuntu16でPHP5にダウングレードすることもできるはずですが、EC2で実際にやってみたところ、OSはPHP7と認識するにもかかわらず、Apacheは5.3を認識したりして大変なことになったので、最初からOSごと古いのを使った方が良いという結論に至りました。

また、
AWSにはEC2以外にも簡単にWEBサイト(wordpressサイト)が作れるサービスがありますが、汎用性が全然ないのでおとなしくEC2を使いましょう。

AWSのアカウントがない場合は、まずこちらから
https://aws.amazon.com/jp/

コンソール画面はこちら
https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin

インスタンス(サーバー)の起動

AWSではサーバーひとつひとつをインスタンスというくくりで管理します。インスタンスという名前から察するに従来のようなサーバーとは違い、全部バーチャルなんでしょうね。

サービスメニューから「EC2」を選択し、インスタンスを新しく作成します。

OSはUbuntu14を選択します。(一番下にあります…)

ちなみに、AWSでもUbuntuの初期ユーザーはRootではなく、Ubuntuです。

スペックは任意のものでいいと思います。

下の方にいくとメモリ768Gとかあるんですよね。(どんなバケモンスペックだよ…)

キーペアの作成

キーペアはSSHでサーバーにログインするときに必要なものです。なくすと再発行はできないので保管は厳重にしてください。
「Create Key pair」を押してキーペア名を入力すると自動的に生成されます。

セキュリティグループ(ポートの開放)の設定

AWSではセキュリティグループというiptablesのようなものがあります。もちろん、サーバーにもiptablesはありますが、機能が重複するので、AWSの場合はセキュリティグループで管理します。さくらVPSのようなブラウザ上のコマンドコンソールはないので、かならずSSHが開いているを確認します。(デフォルトで開いています。)

セキュリティグループでは、HTTP:80, HTTPS:443, SSH:22, CustomTCP:20, CustomTCP:21, CustomTCP:60001~60010 を開けてればいいと思います。(後ろの方はFTPパッシブ用)メールサーバーも一緒にする場合はSMTP,POP3用のポートも開けてください。

ElasticIP(固定グローバルIP)の設定

AWSではデフォルトでもインスタンスにグローバルIPが割り振られていますが、これは定期的に変動してしまいます。ElasticIPでは新規にグローバルIPを取得することができ、これをインスタンスと紐づけします。

ElasticIPの設定画面で右クリックをすると「Associate Address」とメニューが出てくるので、選択します。

すると、IPとインスタンスを紐づけするメニューが出てくるので、インスタンスのIDを選択します。今はインスタンスが一つしかないので選択肢は一つだけです。

 

(オプション)Elastic Beanstalk(インスタンスの自動復活機能)を削除する

AWSにはインスタンスをゾンビみたいに復活させる機能がデフォルトであります。「とりあえず、インスタンスをお試しで起動させてみて、いろいろ遊んだらインスタンスを削除すれば課金されないだろ」と思っても、この機能を停止しないと、インスタンスが知らぬ間に復活して自動課金されるという仕様です。

いきなり本番でそのインスタンスを使う予定の場合はそのままでいいですが、とりあえずお試しでAWSを使う場合は停止させておきましょう。

Route53(ドメイン、DNS)の設定

Route53では独自ドメインの紐づけができます。独自ドメインを必要としない場合はIPアドレス、もしくはアマゾン支給のサブドメインでも管理可能です。(EC2のインスタンスに情報があります。)

「Create Hosted Zone」を押すとメニューがでるので、設定したい独自ドメインを入力して「Public hosted zone」を選択します。

するとDNS情報がでてきます。

このDNSはドメインを取得したサービス(お名前ドットコムとか)で入力する情報になります。

「Create Record Set」を押してAレコードを追加します。

ValueにはElasticIPで取得したグローバルIPを入れます。

最終的に下記のようになります。

 

SSLで接続できるようにする

昨今ではいろいろな理由からSSLが求められています。問い合わせフォームや個人情報を含む送信をする場合は当たり前ですが、Google検索でもSSLでないサイトは検索順位が下がるようになったらしいです。

Certificate ManagerでSSL証明書を発行

「Request Certificate」を選択

「sample.com」と「Add another name to this certificate」で「*.sample.com」を入力。

Select validation method で「DNS validation」を選択

すると「お前、ほんとにこのドメインの所有者か? 証明してしてみぃ」って画面がでるので、Route53でこれらのレコードを追加します。

上のデータをRoute53の下の画面で入力する。

ELB(Elastic Load Balancing)で証明書の設置とインスタンスへ接続

EC2のメニューからLoad Balancersを選択
「Create Load Balancer」を選択
「HTTP HTTPS」を選択
Name:適当な名前、 Scheme:Internet-facing、 IP-address-type:ipv4 を選択
Listenerでは「HTTP」の80番ポートと「Add listener」で「HTTPS」の443番ポートを選択
アベイラビリティーゾーンは、ロードバランサーと自分のサーバーを接続できるよう同じVPCに。

(上の画像はアベイラビリティゾーンが一部切れています。)

STEP2で、「Choose a certificate from ACM (recommended)」を選択し、Security Policyはデフォルトのまま。

「ルーティングの設定」へ。

ステップ4では、「New target group」を作成します。

名前を適当に入力し、プロトコルは「HTTP」を選択。(HTTPSは後で設定できます。)
ターゲットに「instance」を選択。ヘルスチェックはHTTP。

「Register Target」

ロードバランサーに接続するサーバー(インスタンス)を選択

 

SSHでサーバーに入る

いよいよサーバーに入ります。ここからの流れはよくあるVPSと同じなのでさくらVPSの回と重複が比較的あります。

SSHクライアントであるPuttyかTeraTermをインストールします。前回はputtyだったので今回はTeraTermにします。

ログインの際には、「ubuntu@’グローバルIP’」か「ubuntu@’Public DNS (IPv4)’」を入力します。Public DNS (IPv4)は、インスタンスのIPアドレスを入れます。

したっけ、Use RSAを選択して、先ほど作成したキーペアファイル(.pem)を選択します。

この状態だと権限が弱い一般ユーザなのでrootユーザーに切り替えます。

と打ちます。

コマンドの作業は前回のVPSでWEBサーバーを立てた時とほとんど同じです。

OSのバージョンアップ

OSに最新情報がないかチェックします。

 

Apacheを入れる

 

vimを入れる

 

PHPを入れる

次にPHPを入れます。

インストール中にも表示されていますが、バージョンを調べるには

と入れます。EC2のUbuntu14ではphp5.6がデフォルトでした。

 

 libapache2のインストール(apacheにphpを認識させる)

 

MySQLを入れる

データベース管理にMySQLを入れます。

ユーザーパスワードを求められますので、適当に入力します。

データベースを作成


先程設定したパスワードを入力します。

ここからはSQLなので最後に;を入れます。

 

・ユーザーの作成

 

・SQLの終了

 

・MySQLの再起動

 

ApacheとMySQLの自動起動設定

自動で起動されるようにします。

 

phpMyAdminのインストール

ブラウザからSQLを操作できるようにphpMyAdminを入れます。

 

・シンボリックリンクを作成

 

・phpMyAdminのログインパスを変える

・設定を読み込ませる

 

FTPサーバーを入れる

FTPを使えるようにするにはFTPサーバーを立てる必要があるんですね、これが。

AWSでは他のサーバーと違ってちょっと特殊な作業が必要です。(pasv_addressにEIPのアドレスを設定し、データ通信でのクライアントからの接続先IPアドレスをグローバルIPにする必要があります。)

といっても出来合いのUbuntuアプリがあるので、それをインストールします。

設定ファイルを編集する

 

※サーバー管理者≠FTPユーザーの場合は上位フォルダにアクセスできないようにする必要があります。

FTPユーザーを作成

ユーザーリストにユーザーを追加する

ここにFTPユーザー名を追加する

フォルダの権限変更

上記だけでは閲覧はできてもアップロードなどができないので、権限を与えます。

再起動

メールサーバーの設置

サーバーを構築したらやっぱりメールも使いたいですよね。メールサーバーは脆弱だと攻撃の中継として利用される危険性があるので注意が必要です。

AWSにメール用のポート開放の申請

まずはメールを使いたい旨を申請します。

https://portal.aws.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request
にアクセスして、「メール送信させてくださ~い」って申請します。

わざわざこんな申請をしないといけないということは悪さをする人がいるんですね。

Email Address*にAWSにログインするときのメールアドレス、
Use Case Descriptionに「Removal of Email sending limit.」と記入します。(それ以外は空欄)

セキュリティグループで、SMTPとPOP3が開いていることを確認します。

Postfixのインストール

PostfixっているのはUbuntuでかんたんにメールサーバーを始めるためのアプリです。

とりあえずインストールします。

コマンドを打つと用途を聞かれるので、「設定なし」を選択。

設定ファイル 「main.cf」を/etc/postfix/ディレクトリにコピーします

postfixの設定を編集

設定を編集します。

メールエイリアスのデータベースを再構築します。

postfixを再起動します。

送信テスト(mailコマンド)

mailコマンドのインストール

 

「Ctrl+D」で送信。

これでトレードシステムを稼働させるサーバーとしての準備ができました。他にも用途に応じてオプションがありますが、ここまでできればそちらは適宜できると思います。

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

Message

メールアドレスが公開されることはありません。

CAPTCHA


このコメントはWEBに公開されるので、問い合わせ等はメールなどでお願いします。

関連記事

さくらのVPSで1からWebサーバーを構築する方法 (Ubuntu16.04)

今回はサーバーの構築について扱ってみようと思います。VPSを使った一般的なWEBサーバーの構築がゴー

記事を読む

[MT4/MT5用に]AWSでWindows VPSを使う方法

自動売買とVPSは切っても切り離せません。 しかし、その自動売買が本当に儲かるかどうかわからないの

記事を読む

 
  • (↑広告です。このサイトの管理者の運営ではありません)

     


  • 横瀬兼元(ペンネーム)です。

    プロフィール
    物を買わせようとする偽者がいるらしいのでご注意ください。
    ツイッター始めました(イマサラー)
    https://twitter.com/FxantennaC
    (埋め込みするとページ表示が極端に遅くなるので、リンクでご容赦を)

Translate »
ページトップへ