1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS初心者がググりながらWebアプリを構築してみた

Posted at

はじめに

AWSについてこれまで自分で何かを構築したことがなかったので、
無料枠を利用して、実践してみました。

実践にあたり、様々な記事を参考にさせていただいたので、
今後の自分用のメモとして残しておきたいものです(ブラウザがタブだらけにならないよう・・・)。

やりたいこと

  • EC2インスタンス上に、Rocket Chatをインストールしたい。
  • 独自ドメインを取得して、https通信に対応したい。

アカウント作成

1.AWSアカウント作成
まずは公式サイトにて、AWSアカウントを作成します。
 
2.初期設定
以下を参考に、IAMユーザ作成、CloudWatchの設定などを行いました。
AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ

<補足>

  • CluodTrailの設定ついて

記事の通り設定することで、S3に作成したバケットにCloudTrailからログが出力されます。
それが影響して、アカウント作成から3日後にAWSからS3の無料枠「2,000 Put, Copy, Post or List Requests of Amazon S3」に対して85%超過したという警告メールを受信しました。

まさに、AWSを使い始めて2日目に無料枠限度アラームがきた話の通りでした。

VPC作成

1.用語やサービスの詳細の確認
公式サイトの各種ドキュメントを確認します。
 
2.VPC作成、サブネット作成、ルートテーブル作成、IGW作成
以下を参考に、VPC環境の構築を行いました。
0から始めるAWS入門①:VPC編
AWSでWebサーバー構築!専門用語の解説とVPC環境を構築する手順(第2回)

EC2インスタンス作成

1.用語やサービスの詳細の確認
公式サイトの各種ドキュメントを確認します。
 
2.VPC作成、サブネット作成、ルートテーブル作成、IGW作成
以下を参考に、EC2インスタンスにRocket Chatをインストールし、httpでアクセスできるようにしました。
AWSでWebサーバー構築!EC2を作成してSSH接続する(第3回)
0から始めるAWS入門②:EC2編

なお、AMIは、Rocket Chatの要件に合わせて選択し、インストール手順もRocket Chatの公式サイトで示される内容に従いました。

https通信対応

1.https化のパターンの確認
パターンをまとめていただいている記事があったのでまずは学習します。
AWSでWebサイトをHTTPS化 全パターンを整理してみました
今回は、記事中の「パターン1:ELB(+証明書)→EC2」を選択しました。
 
2.無料ドメイン取得、Route53でホストゾーン作成、Elastic IP取得、ACMで証明書取得、ALB作成
以下を参考に、httpsでアクセスできるようにしました。
独自ドメインを取得し、Route53 と ELB を使ってEC2上のWebアプリをHTTPS(SSL)通信に対応させてみる

<補足>

  • ターゲットのヘルスチェックについて

ALB作成後、ターゲットグループメニューの「登録済みターゲット」のステータスが「unhealthy」(説明欄にはTime outと記載あり)で、EC2インスタンスに対するヘルスチェックが不合格となってしまいました。

原因はALBとEC2インスタンスそれぞれのセキュリティグループの設定不備でした。
以下のように整理してヘルスチェックに合格しました。

①ALBのセキュリティグループで許可したタイプ(Inboundのみ記載)

  • HTTPS

②EC2インスタンスのセキュリティグループで許可したタイプ(Inboundのみ記載)

  • SSH
  • カスタムTCP(ソースは①のセキュリティグループ)

原因特定までにだいぶ時間を要しましたが、以下を参考に解決に至りました。
Application Load Balancer のトラブルシューティングを行い、ヘルスチェックの失敗を修正する方法を教えてください。

Application Load Balancer のセキュリティグループ

その他

本編とは直接関係ないですが、ご紹介です。

1.Rocket Chatとは
今回インストールしたのはOSSのチャットツールです。slackライクなUIと機能を兼ね備えています。
Jitsiとの連携することで、ビデオ会議も可能になります。
Rocket Chat
2.draw.ioを使って構成図を描いてみる
自身が構築しようとしている環境を可視化したい時に、以下のサービスが簡単に利用できました。
「draw.io」は、ブラウザ上でフローチャート、UML図、ER図などを記述できます。AWSアイコンも提供されています。
draw.io
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?