現在もっとも世界で利用されているクラウドサービス。Microsoftも追撃しているもののサービスの豊富さで一日の長がある。
AWSが提供するLBはELBと呼ばれ、URL指定によるバランシングも行える(ALB:Aplication Load Balancing)。他にもSSLをロードバランサーが対応することで、APPサーバー側の負荷を減らすなどを行う。(その場合サーバー証明書は1つで済む)
サービス:EC2を選択後、左側のメニューから「ロードバランサー」を選択する。すると丈夫に、青いボタンで「ロードバランサーの作成」が表示されるので、そのボタンを押す。すると、Application Load Balancerと、Network Load Balancerのボタンが表示される。(厳密にはClassicのボタンも表示されるが意味がないのでここでは割愛)SSL対応をLBで行ったり、URL分岐など高度な事が出来るのは、ALBのみであり、NLBは膨大な単一機能のアクセス用としての為、ここではALBで作成する。
ここでは、名前を設定するだけで後は初期設定でも問題ないだろう。但しここで出て来るアベイラビリティゾーンというのは、amazonでの用語であり「アベイラビリティゾーンとは、AWSの各リージョン(国や地域)に存在する物理的なデータセンターです。各リージョンには複数のアベイラビリティゾーン(データセンター)が存在しており、それぞれにAmazon EC2などを配置することで、地理冗長化を簡単に行うことができます。また、アベイラビリティゾーンは、お互いに影響を受けないように、地理、電源、ネットワーク的に分離され、高速専用線で相互接続されています。」要するに災害など物理的トラブルの冗長化である。(日本では現在2箇所のみ)あとで、これらゾーンのサブネットは自由に設定変更できるのでここでは2つともサブネットを選んでおく。
ここでは、SSLの証明書情報を登録する。詳しくはSSLのページを参照。
ここも後から変更できるので、default を選んでおくと良い。
ここでは、データの送り先のインスタンスのポートやプロトコルなどの設定を行う。通常LBでSSLは解除されるので、80番での利用となる。
ここではLBが送り出すデータをどのインスタンスに送るか登録する。
$ sudo su - $ passwd
SQSなどを利用したワークフローをグラフィカルなUIを利用して、変更・拡張・縮小・レポートなど管理を簡単に行うための機能。AWS Step Functions
SQSは古くからあるメッセージキューイング(MQ)の amazon による実装で、AWSサービスの初期から存在する。キューには標準キューとFIFOキューがあり、順番を守られるFIFOに対して、必ずしも順番を守るとは限らない標準キューがある。共にサーバー間の結合を疎結合にするための技術であり、それによるスケーリングを容易にし膨大なリクエストを上手にこなすための仕組みである。またRedisなどと違いデータがサーバートラブルで処理プロセスが落ちてもメッセージ自体は消えないため、信頼度は高い。(但し100万TPSあたりから有料になる)
AWSで提供される、自動デプロイツールである。
ここから Elastic Beanstalkのページに移動し、プラットフォームを選択する。いろいろなプラットフォームを管理できるが、今回はGo言語のアプリをデプロイするので、環境をGoを選び「今すぐ起動」ボタンを押す。
AWSのEC2に設定するSecurityGroupはホワイトリスト(許可リスト)専用であり、ブラックリスト(除外リスト)の設定はできない。そこでVPCのネットワークACLで設定を行う。
拒否IPの設定時は、ルール# の番号を若い番号にしておいたほうが良い。(画像参照)ちなみに初期値は 100 と * の2つの行だけが存在する。
AWSには多くのサービスがあるが、ストレージに関するサービスは3つあり、用途によって使い分けて行くのが良い。しかし他のクラウドサービスも低価格化が進んでおり、AWSも比較的頻繁にサービスの改変を行っているため、最終的には自分で確認する必要がある。
特徴別 | EFS | EFS AI(低頻度) | EBS(SSD) | EBS(HDD) | EBS(COLD) | S3 |
価格(東京) | 0.36/GB USD | 0.0272USD | 0.36USD | 0.054USD | 0.03USD | 0.025USD |
---|
s3 では key-value 方式らしきため、キーとなるファイル名が、パス名含めて 1025 バイトの制限があり、階層が深いファイルなどがあると、すぐにバグる。