AWS_クラウドの概念

AWSの長所・利点

固定費が柔軟な変動費へ、データセンターの運用・保守費用が不要

リソースを利用したときだけ利用できるので、小さく始めることができる。 コストにはAmazonがサーバー等を管理する人件費やデータセンターの費用等ももちろん含まれた金額となっている。

スケールメリットによるコストダウン

多くの人が利用するほど、安く提供できる。 実際60回を超える値下げがされている。

キャパシティ予測が不要

従来のオンプレミスだと、アクセス数などキャパシティを予測してサーバー等を用意する必要があった。
AWSだと必要な場合はすぐにリソースの増減ができるので、スケーリング(容量を増減すること)すればいい。

速度と俊敏性の向上

新しいITリソースを簡単に利用できる。

すぐにデプロイできる

オンプレだとデータセンターに行って、機材を設置して・・・等、多くの作業が必要。AWSはネット上で完結する。

クラウドアーキテクチャの設計原理

故障に備えた設計をする

あらゆる故障に備えた設計をする。 そのため、単一障害点をなくすという考え方をする。

  • 一つデータセンターのみで運用しない。
  • 単一のインスタンスのみで運用しない。

単一障害点(たんいつしょうがいてん。英: single point of failure、SPOF)とは、その単一 箇所が働かないと、システム全体が障害となるような箇所を指す。

単一障害点 - Wikipedia

機能の依存関係を疎結合にする

コンポーネント疎結合して、一つが止まっても別のコンポーネントで継続できるようにする。

AmazonSQSというサービスがある。
SQSをコンポーネントの間に配置してメッセージのやり取りができるため、疎結合ができる。

AWSが提供するサービスにはSQSというものがあります。SQSとは様々なタスクを実行するアプリケ ーションの分散コンポーネント間でデータを簡単に移動させられるというものです。SQSを簡単に説明すると、メッセージキューイングサービスということになります。
メッセージキューイングとは、アプリケーションプログラムの間で動作の連携を行い、データを交換させるときの方式のことです。送信データをキュー(queue)と呼ばれる領域に保持することで受信側の処理を待たずに継続して処理を行っていくことができます。この仕組みの提供をSQSでしています。
引用先:SQSの特徴や導入事例を紹介!AWSのメッセージングサービス|TECH PLAY Magazine [テックプレイマガジン]

また、マイクロサービスアーキテクチャという技法を用いることで、疎結合をしているとのこと。 機能毎に分けて作成して、機能ごとのやりとりは定義したAPIを呼び出す。 これで機能毎に、改修することもできるので管理や運用がしやすいのか。 バックとフロントを分けて開発するのもこの考えなのかな?

マイクロサービスとは、複数の規模の小さなサービスを組み合わせてひとつの大きなアプリケーションを構成する、ソフトウェア開発の技法のひとつです。 従来は、「すべての機能がまとまったひとつの大きな塊」としてソフトウェアを設計することが多かったのに対し、マイクロサービスは「まず機能を分解していき小さなサービスをつくる。それらを組み合わることでひとつの大きなソフトウェアを構成する。」という考え方です。
ひとつひとつのサービスは小さいだけでなく、自らの持つ役割に専念して、自律的に機能するという点もマイクロサービスに欠かせない要素です。 具体的には、個々のサービスはできるだけシンプルにすること、そして複数のサービスがひとつのOSやハードウェアの上で動かないようにすることが重要です。 その理由は後述しますが、とにかく個々のサービスは依存関係が低く、それぞれのサービスの呼び出しはネットワークを介して行われるというのもマイクロサービスの特徴です。f:id:yattachang:20201123053259p:plain 引用先:マイクロサービスとは? そのメリットを簡単に解説(初心者・非エンジニア向け) | NCDC株式会社

弾力性の実装

クラウドはリソースのの性能を柔軟に増減することが可能です。 方法は次の3つ。

  1. 巡回スケーリング
    一定間隔(毎日、週毎等)に発生する定期的なスケーリング

  2. イベントベーススケーリング 自分のWEBサービスにアクセスが多くなるときを予想して実施するスケーリング

  3. オンデマンドの自動スケーリング 監視サービスを利用してスケーリングを行う。

クラウドは、いつでもリソースの増減が可能。
使い捨て可能なリソースとして、サーバーを考えることができる。

並列化を考慮する

クラウドでは繰り返し可能なプロセスを容易に構築できるので、できるだけ同時に複数の処理を行い、さらに可能であれば自動化することを推奨している。

WEBアプリケーションを例にすると、ロードバランサーを利用して、受信リクエストを分散させる。

※スケールインとスケールアウトについて

スケールアウトは,稼働する仮想サーバの台数を増やす機能で,スケールインは,稼働する仮想サーバの台数を減らす機能です。仮想サーバの負荷が増えた場合にスケールアウトすると,負荷を減らせるので,仮想サーバの処理性能を向上できます。 仮想サーバのスケールアウトとスケールイン

動的コンテンツデータは、コンピューターの近く。静的コンテンツデータは、エンドユーザーの近くに保管する。

  • 静的コンテンツは、外部に出してエンドユーザー近くに保管する。 Amazon CloudFrontというサービスを利用すると、世界中にAmazonが配置したサーバー(エッジロケーション)にコンテンツをコピーして、ユーザーからのネットワーク距離の近いサーバーが応答することで、通信の遅延が少なくてすむ。

  • 動的に処理するデータは、クラウド上のコンピューターの近くで保管する。 コンピューターでの処理が必要になるので、このような保管となる。

AWS Well-Architectedフレームワーク

信頼、セキュリティ、効率、コスト効果の高いシステムを設計しクラウドを運用するために作られたアーキテクチャのベストプラクティス。
下記5本の柱を基本としている。

  1. 運用上の優秀性
  2. セキュリティ
  3. 信頼性
  4. パフォーマンス効率
  5. コスト最適化

まとめ

  • クラウドとは インターネット経由で、コンピューター、ストレージ、データベース、アプリケーション等のITリソースをユーザーの要望に応じてサービスを利用できる。

  • オンプレミス サーバーなどの設備を自前で用意し運用するシステム。

  • AWSクラウドコンピューティングのメリットは6つ
    ①固定費が柔軟な変動費
    ②スケールによるコストメリット
    ③キャパシティの予測が不要
    ④速度と俊敏性の向上
    ⑤データセンターの運用と保守が不要
    ⑥数分で世界中にデプロイ可能

  • AWSを活かしたシステム構築では、故障に備えた設計、疎結合、弾力性、並列化、データの保管場所に留意する。

  • AWS Well-Architectedフレームワークとは、信頼、セキュリティ、効率、コスト効果の高いシステムを設計しクラウドを運用するために作られたアーキテクチャのベストプラクティス。