AWSを使ったHTTPS化 〜PART3〜

こんにちは、毒きのこです。

前回に続き、AWSを使ったサイトのHTTPS化ですね。
1つのテーマを3回にわけたので、見る方は逆に分散しちゃって見づらかったかもですね… 反省。

とりあえず第一回と第二回は以下のようになってるのでHTTPSとかって何だっけ?て方は目を通しておいてもらえると。

AWSを使ったHTTPS化 〜PART1〜
こんにちは、毒きのこです。さて、今日はあんまり個人で開発とかしてたらそんなに関わる内容じゃないかもしれませんが、HTTPS化(SSL対応)について書いてみました。SSLとはSSL(Secure Sockets Layer

[AWSを使ったHTTPS化 〜PART1〜]

AWSを使ったHTTPS化 〜PART2〜
こんにちは、毒きのこです。結構間があいて、前回何書いてたか一瞬記憶がアレでしたが、気を取り直して続きを書いてみました。今回は前回の続き、AWSを使ったサイトのHTTPS化です。前回記事:AWSを使ったHTTPS化 〜PA

[AWSを使ったHTTPS化 〜PART2〜]

今回はPART3ということで最後になります。
前回PART2ではHTTPS化にあたって証明書を発行するところまでやりましたね。今回はその証明書を使い、実際サイトに対してSSL化を有効にする方法をやってってみます。

ELB (Elastic Load Balancing)

ELBとは

このElastic Load Balancing(以下ELB)ですが、簡単にどんなものかというとAWSが提供しているロードバランシングサービスで、あるWebサーバーやアプリケーションサーバーに対して負荷が高まった場合、もう一台のサーバーに対してその負荷を分散する役目を担っています。

つまり1台あたりの負荷を分散することでスケールアウトを実現しているんですね。

そこで証明書を使ってSSL通信するのに、何故ELBが必要なのか?負荷分散用に使うんじゃないの?という感じですが、実はELBにはSSL Termination機能があり、SSL処理をEC2(Webサーバー)側にさせずELB側で行わせることが可能なんです。

つまりクライアント(ユーザー)があるサイトにHTTPSでアクセスしてきた場合、通常だったら自身でたてたWebサーバーにアクセスしていたのを、その前に1度ELBを経由しSSL処理を行い、そこから各Webサーバーにアクセスされる感じですね。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-23-10-06-19

こんなイメージですね。今まではクライアントから直接Apache等が組み込まれたEC2に対してアクセスしていたのをELBを前方に設置し、その下に各EC2をぶら下げるイメージです。

概要は大体わかったと思いますので早速ELBを作成して作った証明書をあてるところをやってみましょう。

ELB作成

早速LEBを作成してみましょう。
aws_5
ELBの作成はEC2と同じ箇所にありますので、画面のロードバランシングの項目からロードバランサーを選択し、画面上部の「ロードバランサーの作成」を押してください。

aws_6

ロードバランサーの種類を選ぶ画面になるので、右の「標準ロードバランサー」にチェックを入れ「次へ」を押してください。

aws_7

ロードバランサーの定義画面が表示されるので、適当なロードバランサー名をつけ、設置するVPCを選択してください。最後に追加ボタンを押してHTTPSも加えてやってください。追加が完了したら「次の手順:セキュリティグループの割り当て」をクリック。

aws_8

セキュリティグループの割り当て画面が表示されるので、「新しいセキュリティグループを作成する」にチェックを入れ、名前と説明を適当に入れてください。上図のようにデフォルトでHTTP、HTTPSのポートを開いてくれるよう表示されていると思うので、このようになっていたら右下の「次の手順:セキュリティ設定の構成」をクリック。

aws_9

セキュリティ設定の構成画面が表示されるので、ここでPART2でACMより作成した証明書をセットします。「AWS 証明書マネージャー(ACM)から、既存の証明書を選択する」にチェックし、修了書のところでその作成した証明書を選択します。セットが完了したら右下の「次の手順:ヘルスチェックの設定」をクリック。

aws_10

ヘルスチェックの設定画面が表示されます。ヘルスチェックとは要はELBが振り分けを行う際に、「このサーバーは稼働してるのか?」といったようなことをチェックするためのものです。サーバーにindex.htmlがあって80ポートで設置しているのであればデフォルトのままで問題ありません。内容を確認したら「次の手順:EC2インスタンスの追加」をクリック。

aws_11

追加するインスタンスを選択する画面が表示されるので、今回HTTPS化したいサービスが乗ってるEC2を選びましょう。

選択したら「次の手順:タグの追加」をクリック。

aws_12

タグを追加される画面が表示されます。ここは後から設定も出来るので適当な値を入れ右下の「確認と作成」をクリック。

aws_13

内容の確認画面が表示されるので、問題がなければ右下「作成」ボタンをクリック。

aws_14

作成が完了しましたとの画面が!
うまく出来ましたね、ちゃんと作られているか確認してみましょう。(反映には数分かかる時もあります)

aws_15

ちゃんとロードバランサーが追加されてますね!
今後はここからぶら下げるインスタンスを変更したり色々いじれます。

どうでしょうか?
AWSのサービスだけでHTTPS化がこんなにも簡単に設定出来るのです。ACMで証明書を発行し、ELBでそれをセット、ふり分けるサーバー(EC2)を設定、ですね。

ちなみに向先のEC2で独自ドメイン設定している場合は、Route53のAレコードに今回作成したELBのURLを指定してやる必要があります。他にはクライアント(ユーザー)からHTTPでアクセスしてきた場合、HTTPSにリダイレクトするといったような設定もApacheの場合VirtualHostからの設定で簡単に出来るので、そちら色々やりたい方は調べてみてもいいかも。

このHTTPS化ですが、iOSなんかはもう近い将来HTTPSでないと審査も通らなければアプリとして動かせなくなると思いますので、サーバー連携するサービスを作られてる方なんかは早めに各APIサーバー等、HTTPS化対策をしておいたほうがいいかと思います。

ではではよい開発ライフを〜。

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)