- Published on
Amazon S3で自社サイトを高負荷に耐えられるよう対応 Part1
- Authors
- Name
- yuku_tas
- @yuku_tas
前回
のつづき。
自社サイト
を高負荷に耐えられるようにする。
loader.ioを使って高付加をかけてみたところ、同時接続10くらいまでは 耐えられたが、それ以上の負荷ではサーバのload averageが高まり耐えられなかった。
可能な限り安価で、
自社サイトをどれだけでも負荷に耐えられるようにしたい。
やってみたら、2時間程度で対応できた。
geralt
/ Pixabay
技術選定
自社サイトの要件としては以下の通り
CakePHP3.x
PHP 5.6
Amazon Linux1 (Amazon EC2 t2.small)
DBは使っていない
このまま、スケーラビリティも確保した状態でリプレイスするとなると、Google App Engineあたりが候補に入ってくるが、費用が気になる。
DBが使ってないのでそのあたりを考慮する必要は(当面)ない。
結果、Amazon S3にペライチで載せてしまい、そこにDNSを当ててホスティングすることに決めた。
S3は料金も安いしね。
PHPもここでは殆ど使っていないので、このタイミングで
formrun
に問い合わせフォームを、変えることにした。
気軽に使えるのでformrun大好き
。
デフォルトで吐かれるhtmlタグにCSSを適宜、適用して対応する。
誰かの参考になるかわからないがCSSはこんな感じ
<style>
.formrun label{
padding: 20px 20px 5px 0;
width: 300px;
font-size: 1.8rem;
}
.formrun input[type=text] {
padding: 5px;
width: 50%;
font-size: 1.8rem;
border-radius: 5px;
}
.formrun textarea {
padding: 5px;
margin-top: 30px;
width: 50%;
height: 200px;
font-size: 1.8rem;
border-radius: 5px;
border: none;
}
.formrun input[type=checkbox] {
width: 24px;
height: 24px;
-moz-transform: scale(1.4);
-webkit-transform: scale(1.4);
transform: scale(1.4);
}
.formrun-system-show {
color: #f88;
}
button[type=submit] {
margin-top: 30px;
width: 300px;
padding: 5px 10px 5px 10px;
background: #fed136;
border: none;
color: #fff;
font-size: 2rem;
border-radius: 10px;
}
</style>
SSL対応が必要。
すっかり忘れていた。元のシステムではLet's Encryptで動いていた。 S3でホスティングする場合でもhttpsにしないと、昨今のGoogleの評価は低かろう。
ググった結果、
CloudFrontを経由しないといけないようなので
…する。
手順は
こちら
にまとまっている。
ポイントとしては、
Route53でDNSを管理しなければいけない
(AレコードでAWS独自の 「Alias」という形で指定しないと、CloudFrontへのDNSのつなぎ込みができないため)
もともとお名前.comで管理していたドメインなので、ネームサーバ変更を行う。
30分ほど経過すると...疎通完了!
証明書も想定通り、AWSの発行したものになっている。
まとめ
今回の採用技術は以下となる。
Amazon S3
Amazon CloudFront
Amazon Route53 (DNS)
これでhttpsで、かつS3にホスティングされた自社サイトが表示されるようになった。
どれだけリクエストが来てもサービスが停止することはないだろう。
次回はこちらにloader.ioで高負荷をかけてみて、どのくらいの利用料金となるかを 検証する。
参考URL:
https://dev.classmethod.jp/cloud/aws/tls-for-s3-web-hosting-with-cloudfront/