Help us understand the problem. What is going on with this article?

【初心者だよ その2】 AWSで無料SSLをやってみた

まえふり

 前回、AWSとドメインの契約からサブドメインを設定してサイトへアクセスできるまでをまとめてお話ししました。
 今回は、以下の記事でAWSだと無料でSSLの対応ができることを知ったので挑戦してみました!!

[AWS Certificate Manager]東京でも無料でSSL証明書が使用可能になりました!
AWSで使用できる無料SSLサーバー証明書~AWS Certificate Managerについて
AWS環境ならSSL証明書が無料!? AWS Certificate Managerについて ~番外編 SESでのメール受信~

AWSでの無料SSLができる構成図

acm_intro_elb.png
引用: http://docs.aws.amazon.com/ja_jp/acm/latest/userguide/gs-elb.html

 

AWSで無料SSLが対応ができる理由

 先にネタバレすると100%無料ではありません。ここでいう『無料SSL』は、SSL証明書の発行が無料でできるということのようです。
 では、なぜ100%無料ではないのか。それは、SSLを適応させるEC2とELB(Elastic Load Balancing)などを扱うことで、料金が発生するからです。
 Elastic Load Balancingは、従量課金制になっており、使用した分のみ料金が発生する仕組みになっています。

 ちなみに公式では、『SSL/TLS 証明書は無料です。お支払いいただくのは、アプリケーションを実行するために作成した AWS リソースの料金のみです。』と書かれています。

ACM: Amazon Certificate Manager Security-Identity_ACM.png

ではまず、サイトをHTTPSにするために必要であるSSL証明書をを、ACMを扱って発行します。手順は、(だいたい)以下のようになります。

↓ ACM設定 ステップ1
ACM登録1.png

↓ ACM設定 ステップ2
ACM登録2.png

↓ ACM設定 ステップ3
ACM登録3.png

↓ ACM設定完了後 メールが来た
ACM登録後メール.png

↓ ACMの設定が完了したときの状態
ACM登録完了.png

状態が発行済みと変わったら正常に設定された証拠です。
これで、SSLの発行(ACM側の設定)が完了しました。

次に、BLE側の設定になります。

ELB: Elastic Load Balancing load balancer Compute_ElasticLoadBalancing.png

 AWSでは、ELBと呼んでいますが一般的でいうロードバランサーになります。
 私もELBを扱うまでロードバランサーがどういうものかは負荷を分散させる何かまでは知っていたものの、実際に触ってみてどのようなしくみになっているのかは知りませんでした。これを機に調べるようになり、勉強になりました。

 手順は、(だいたい)以下のようになります。

↓ ELB設定前 タイプを選ぶ ※基本左を選択
ELB初回.png

↓ ELB設定 ステップ1
ELB設定1.png

↓ ELB設定 ステップ2
ELB設定2.png

↓ ELB設定 ステップ3
ELB設定3.png

↓ ELB設定 ステップ4
ELB設定4.png

↓ ELB設定完了直後
ELB設定5.png

↓ ELB設定完了後
ELB設定後のインスタンスリスト.png

↓ ELB設定完了後 メールが来た
ELB登録後メール.png

↓ ACMとELBを設定後 Route53に設定する内容
ELB設定後のRoute53での設定.png

これでBLE側の設定が完了。

全ての設定を終えて

 AWSで無料でSSL対応を行うための準備が整いました。
 
 httpsでドメインにアクセス(ドキドキ)。

ELB設定後の確認.png
 
 ??????????

 『503 Service Temporarily Unavailable』だと...www

 アクセスは一応ができているってことは、ACMでちゃんとSSL証明書を発行できている...って考えて。
 あとは、 ELBとEC2との繋ぎがうまくいっていないのかなぁ...?w

 ってことを、2,3回やり直しながら考えれるようになって、一箇所、未設定っぽいところを見つけました。
 
  
 ELBの設定画面で、『インスタンスの登録と登録解除』を開いて見てみると、項目は出ているものの、ちゃんとチェックされていないで紐付けされていなかった感じで...たぶんこれだよな?w

↓ ELB設定にある『インスタンスの登録と登録解除』
ELB未設定内容.png

↓ 改めてhttps://ドメインをアクセスしてみると...
ELB設定完了後.png

キタ━━━━(゚∀゚)━━━━!!!!!!!!!

これで、無事にACMとELBの設定で、EC2のサーバーにSSL対応が完了です!笑

まとめ

 ここまでで、全てAWSでSSLを対応させたサーバーができました!
 初めてサーバーの契約してHTTPSまで対応できた瞬間は、ホント感動です笑

 まぁでも、HTTPS接続までたどり着くところまで、(土日とかでやっていたので)約3週間以上かかってしまいました笑汗

 てことで、これにて初めてサーバーを契約して、サーバーを作ってHTTP通信ができるようにして、SSL証明書を発行してサーバーへのアクセスをHTTPS通信できるところまでをざっとお話しいたしました!
 次回以降は、作ったサーバーを使ってサーバーサイドの開発とすでに世に出ているWebAPIを使ってアレコレやってみたお話しをしていきますー。

次回移行のお話し

  【初心者だよ その1】 アプリ開発者が初めてAWSを触ってみた
  【初心者だよ その2】 AWSで無料SSLをやってみた    ← いまここ

  

gremito
Freelance Engineer: Unity / Android / Xamarin / CodeIgniter / FuelPHP / CakePHP / WordPress / Rails / AWS / MySQL / SQLite / Jenkins / Docker / Firebase / LINE Bot ...etc
unity-game-dev-guild
趣味・仕事問わずUnityでゲームを作っている開発者のみで構成されるオンラインコミュニティです。Unityでゲームを開発・運用するにあたって必要なあらゆる知見を共有することを目的とします。
https://unity-game-dev-guild.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした