NIST によるクラウドコンピューティングの定義からAWSサービスを振り返る

# 概要
NIST: National Institute of Standards and Technology(米国国立標準技術研究所)の作成したクラウドコンピューティングについてをまとめた文書が読みやすかったので、これを元にAWSサービスを捉え直す。

# クラウドコンピューティングの定義から見たAWSサービス
## 5つの基本的な特徴
### オンデマンド・セルフサービス
   - オンデマンドでリソースをプロビジョニングできるオンデマンドサービスを提供出来るサービス
   - ユーザー自身でサービスの起動設定が出来るサービス
   - AWSサービス例:
     - **[Amazon EC2](https://aws.amazon.com/jp/ec2/)**
         - インスタンスサービス
         - オンデマンドでサーバーを起動・停止出来る
         - インスタンスの起動や停止はユーザー自身によって行われる
         - 従量課金、実際に利用した時間・リソースに対して料金が発生する
         - EC2単体ではオートスケールが行えないので、後述のAuto Scalingと組み合わせる必要が有る

     - **[Amazon S3](https://aws.amazon.com/jp/s3/)**
         - ストレージサービス。大容量データを保存する事が出来る
         - オンデマンド利用可能
         - データの保存量を元に料金が発生
         - オブジェクトストレージである。ファイルストレージではないので、バックアップ用途に多く使われる

     - **[Amazon RDS](https://aws.amazon.com/jp/rds/)**
         - フルマネージドなデータベースサービス
         - MySQL、PostgreSQL、Oracle、SQL Serverをサポートしている
         - データベース管理が不要

     - **[AWS Lambda](https://aws.amazon.com/jp/lambda/)**
         - サーバーレスなWebアプリケーションを構築可能

### 幅広いネットワークアクセス
   - 33 の地理的地域内に 105 のアベイラビリティーゾーンが有る。[AWS グローバルインフラストラクチャ](https://aws.amazon.com/jp/about-aws/global-infrastructure/)
   - 自身に近い場所のリージョン／アベイラビリティゾーンを利用出来る
   - AWSサービス例:
       - **[VPC](https://aws.amazon.com/jp/vpc/)**:
         仮想ネットワーク構築サービス
         論理的に分離された仮想ネットワーク内での AWSリソースを設定できる
         VPC内においてサブネット単位でセグメント化可能
         セキュリティグループ、ACLを利用してネットワークのアクセス制御可能
       - **[Amazon Direct Connect](https://aws.amazon.com/jp/directconnect/)**:
         AWS への専用ネットワーク接続を作成出来るサービス
         オンプレミスとAWSクラウドを専用回線で接続するサービス
       - **[Amazon Transit Gateway](https://aws.amazon.com/jp/transit-gateway/)**:
         複数のVPCやオンプレミスネットワークを統合、シームレスにネットワーク間接続できる
       - **[Amazon Route 53](https://aws.amazon.com/jp/route53/)**:
         DNSサービス。高可用性のDNSサービスを提供する
       - **[AWS Global Accelerator](https://aws.amazon.com/jp/global-accelerator/)**:
         AWS グローバルネットワークを使用して、アプリケーションの可用性、パフォーマンス、およびセキュリティを向上させる事が出来る
         グローバルネットワークを使用してトラフィックを最適化するサービス。
         ユーザーから最も近いエッジロケーションへの接続を高速化可能
         
### リソースの共用
   - AWSは専有サービスを利用しない限りマルチテナントとなっている
   - 複数のユーザーが同じ物理リソースを共有出来る。これにより、効率的にリソースを活用出来る
   - コスト効率的が図れるが、他のアカウントとリソースを共有しているため、セキュリティ面の課題、及びパフォーマンス制約がある
   - AWSサービス例:
      - **共有ホスト**と**専有ホスト**のテナンシーオプションの中で、**共有ホスト**が該当する
      - 複数のアカウントが同じ物理ホスト上でリソースを共有している

### スピーディな拡張性
   - リソースをスピーディーに拡張出来る
   - オートスケールはAWSを利用する大きなメリットと言える
   - AWSサービス例:
      - **[Amazon EC2](https://aws.amazon.com/jp/ec2/)** 
          - 新しいインスタンスを数分で起動できる
      - **[Auto Scaling](https://aws.amazon.com/jp/autoscaling/)**
          - 前述したが、事前設定した設定値を元にEC2インスタンスを自動的にスケールアウト／スケールインする事が出来る
      - **[Amazon RDS](https://aws.amazon.com/jp/rds/)**
          - 必要に応じてデータベースのインスタンスを追加できる
          - DBストレージサイズを自動的にスケーリング可能な点が拡張性高い所と言える
          - ※オンプレミスの場合は、運用管理者がDBサーバーを止めてストレージを追加する必要が有る
          - リードレプリカの作成も可能
      - **[Amazon S3](https://aws.amazon.com/jp/s3/)**
          - 必要に応じてバケットを作成し、データを追加出来る


### サービスが計測可能であること
   - 利用したリソースに対して料金を把握できる。利用料の管理・コスト最適化が可能
   - モニタリングツールが提供されている
   - AWSサービス例:
     - **[CloudWatch Metrics](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)**:
         - メトリクスとは、システムのパフォーマンスに関するデータである
         - 計測したいリソースやアプリケーションのメトリクスを発行する事でパフォーマンス計測できる
         - 無料で取得できるメトリクスとしてAmazon EC2 インスタンス、Amazon EBS ボリューム、Amazon RDS DB インスタンス等がある

     - **[CloudWatch Logs](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)**:
         - Amazon CloudWatch Logs を使用して、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Route 53、およびその他のソースからのログファイルをモニタリング AWS CloudTrail、保存、およびアクセス出来る。（ [Amazon CloudWatch Logs とは](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)）
         - ログデータをリアルタイムで監視し、特定のパターンを検索したり、リソースの問題を特定出来る
         - ログデータを長期間保持することが可能
         - アクセス制御、セキュリティ分析、コンプライアンスの要件を満たす為に使用できる
        
## 3つのサービスモデル

### SaaS（Software as a Service）
   - クラウド上でアプリケーションを提供するサービスモデルである
   - ユーザーはアプリケーションの管理が不要。利用する時間分料金を支払って利用する
   -  AWSサービス例:
      - **[Amazon Chime](https://aws.amazon.com/jp/chime/)**
          - 組織の内外を問わず会議、チャット、業務上の電話を単一のアプリケーションで実現する通信サービス
      - **[Amazon WorkDocs](https://aws.amazon.com/jp/workdocs/)**
          - コンテンツの作成、ストレージ、コラボレーション用の安全なフルマネージド型サービス
      - **[Amazon WorkMail](https://aws.amazon.com/jp/workmail/)** 
          - セキュリティに優れた企業向け E メールおよびカレンダーのマネージド型サービス

### PaaS（Platform as a Service）
   - アプリケーションを開発・実行するためのプラットフォームを提供するサービスモデルとなっている
   - ユーザーはアプリケーションの実装やデプロイを担当するが、基盤となるインフラス管理はAWSが行う
   -  AWSサービス例:
      - **AWS Elastic Beanstalk**
          - アプリケーションのデプロイメント、スケーリング、管理を自動化するPaaS
      - **AWS Amplify**
          - ウェブおよびモバイルアプリの構築、デプロイメント、ホスティング、バックエンドサービスの支援ツール
      - **AWS App Runner**
          - コンテナイメージまたはコードから、スケーラブルなウェブアプリケーションを簡単にデプロイ、実行するPaaS

### IaaS（Infrastructure as a Service）
   - 仮想OSのインスタンス、ストレージ、ネットワーキングなどのプラットフォームを提供するサービスモデルである
   - このプラットフォーム上にユーザー自身でアプリケーションやサービスを構築・管理する
   -  AWSサービス例:
      - **Amazon EC2**
          - クラウド上で仮想サーバーを起動・実行するためのサービス
      - **Amazon S3**
          - オブジェクトストレージサービス
      - **Amazon VPC**
          - 仮想ネットワークを構築するためのサービス

## 4つの実装モデル
### プライベートクラウド
   - 組織が他の組織と独立して自社のリソースを管理するモデル（サーバーを占有している状態）
   - AWS OutpostsやAWS PrivateLinkなどのサービスを利用してプライベートクラウドを実現できる
   - AWS Outposts を使用すると、一部の AWS のサービスをローカルで実行し、ローカルの AWS リージョンで利用できる幅広いサービスに接続できる
   - AWS PrivateLinkを利用する事で、データをインターネットに公開することなく、VPC と AWS のサービス間の接続を確立する事が可能
   - 上記サービスを利用して、AWSのインフラストラクチャをローカルデータセンターやオンプレミス環境に拡張し、他の組織とリソースを共有せずに利用出来る

### コミュニティクラウド
   - 業界毎ソリューションや利用目的に特化したソリューション
   - ヘルスケア、金融業界向けの業界特有の要件を満たす場合に使用する
   - AWSが提供する特定のサービスやリソースが含まれている
   - 例: 
     - [製造業クラウドソリューション](https://aws.amazon.com/jp/manufacturing/)
     - [流通・小売クラウドソリューション](https://aws.amazon.com/jp/retail/)
     - [航空宇宙・衛星クラウドソリューション](https://aws.amazon.com/jp/aerospace-and-satellite/)

### パブリッククラウド
   - 公開ネットワーク上に構築する
   - EC2、Amazon S3、Amazon RDSなどの主要サービスがインターネット経由でアクセス可能
   - 一般ユーザー及び一般企業を対象としている


### ハイブリッドクラウド
   - AWS Direct Connect、AWS VPNなどのネットワークサービスを利用する事でハイブリッドクラウドを実現できる
   - パブリッククラウドとオンプレミスのプライベートクラウドを組み合わせも可能
   - 例えば、運用上セキュリティ、コンプライアンスの重要度が高いデータをオンプレミスに保持しつつ、以外のデータをパブリッククラウド等に展開することが可能

# 参考文献
- [NIST によるクラウドコンピューティングの
定義](https://www.ipa.go.jp/security/reports/oversea/nist/ug65p90000019cp4-att/000025366.pdf)
 - [製造業クラウドソリューション](https://aws.amazon.com/jp/manufacturing/)
-  [流通・小売クラウドソリューション](https://aws.amazon.com/jp/retail/)
 - [航空宇宙・衛星クラウドソリューション](https://aws.amazon.com/jp/aerospace-and-satellite/)