クラウドについて知っておきたい基本的な知識　AWS、Azure、GCP、Oracle Cloud

#はじめに
本記事はクラウドインフラストラチャを導入する際に、各クラウドベンダーが提供するサービスの基本的な知識についてまとめています。

クラウドベンダーはAWS、Azure、GCP、Oracle Cloudを対象とし、サーバを中心とした内容になります。

クラウドインフラストラチャの選定で重要なのは利用したいサービスに対して、同じ軸で他のサービスを評価することです。

※本記事で記載している情報については過去に調べたときの情報を基に記載しているため、現在は変わっている場合があります。

## サービス体系
各クラウドベンダーが提供するサービス体系の特徴について以下に記載します。

- AWS
    - 従量制料金
    - リザーブドインスタンス（前払いが大きいほど割引も大きくなる。）
    - ボリュームディスカウント（使用量が増えるほど節約できる。）
- Azure
    - 従量制料金
    - Azure Reserved VM Instances（コミットメントを前払で、従量課金制の料金と比較して、最大 72% 割引）
    - スポットの価格（従量課金制価格と比較して、最大 90% の大幅な割引）
- GCP
    - 従量課金制
    - 継続利用割引（請求月の特定の Compute Engine リソースの実行時間が一定の割合を超えた場合に自動的に適用される割引）
    - 確約利用割引（1 年間または 3 年間の支払いを確約する代わりに、特定の量の vCPU、メモリ、GPU、ローカル SSD を割引価格で購入できる。）
    - プリエンプティブル VM インスタンス割引（通常より低価格で作成、実行できるインスタンス。ただし、他のタスクのリソースへのアクセスが必要な場合に、Compute Engine によって終了（プリエンプト）される可能性がある。）
- Oracle Cloud
    - Pay As You Go（前払いでの確約なしにリソースをオンデマンドでプロビジョニングし、使用した分についてのみ支払い）
    - Monthly Flex（月単位の確約により、割引が適用され、支出が予測可能。また、リソースの完全な柔軟性を確保できる。）

|                  | AWS               | Azure              | GCP               | Oracle Cloud               |
|:-----------------|:------------------:|:-------------------:|:------------------:|:------------------:|
| **料金**              |[AWS 料金](https://aws.amazon.com/jp/pricing/)|[Azure の価格](https://azure.microsoft.com/ja-jp/pricing/)|[料金](https://cloud.google.com/pricing/?hl=ja)|[Oracle Cloud Infrastructureの価格](https://www.oracle.com/jp/cloud/pricing.html)|
| **料金計算ツール**     |[SIMPLE MONTHLY CALCULATOR](https://calculator.s3.amazonaws.com/index.html)|[料金計算ツール](https://azure.microsoft.com/ja-jp/pricing/calculator/)|[Google Cloud Pricing Calculator](https://cloud.google.com/products/calculator/?hl=ja)|[Cost Estimator](https://www.oracle.com/cloud/cost-estimator.html?source=:ad:pas:go:dg:RC_JPMK180516P00227:BASIC_IaaSPaaS_GSN_2)|
| **サポート**              |[AWS サポートのプラン比較](https://aws.amazon.com/jp/premiumsupport/signup/)|[サポート プランの比較](https://azure.microsoft.com/ja-jp/support/plans/)|[Google Cloud のサポートプラン](https://cloud.google.com/support/?hl=ja)|標準搭載（無料）|

## イメージ
各クラウドベンダーで利用可能なイメージについて以下に記載します。ポピュラーなイメージ以外にも様々なイメージが利用できます。

- [AWS](https://aws.amazon.com/jp/mp/linux/)
    - Amazon Linux
    - CentOS
    - Debian
    - Kali
    - Red Hat
    - SUSE
    - Ubuntu
    - Windows Server 2003 R2、2008、2008R2、2012、2012 R2 および 2016 
- [Azure](https://support.microsoft.com/ja-jp/help/2941892/support-for-linux-and-open-source-technology-in-azure)
    - 独自の Linux イメージを Azure または BYOS に持ち込む
    - Red Hat Enterprise Linux
    - Oracle Linux
    - Canonical Ubuntu Linux
    - SUSE Linux Enterprise Server
    - Rogue Wave Software (旧称 OpenLogic) による CentOS
    - Debian
    - CoreOS
- [GCP](https://cloud.google.com/compute/docs/images?hl=ja)
    - [Shielded VM が追加されたイメージのサポート]
    - CentOS
    - Google のコンテナ用に最適化された OS
    - Red Hat Enterprise Linux（RHEL）
    - Ubuntu
    - Windows Server
- [Oracle Cloud](https://www.oracle.com/jp/cloud/compute/pricing.html) 
    - Oracle Linux 6/7*
    - CentOS 6.x/7.x
    - Ubuntu 14.x/16.x
    - Windows Server OS**
    - Server 2016 Standard and Datacenter
    - Server 2012 R2 Standard and Datacenter
    - Server 2012 Standard and Datacenter
    - Server 2008 R2 Standard, Enterprise and Datacenter

## インスタンス
スペックが近いインスタンスの使用料金について比較したものが以下になります。リュージョンは日本リュージョンになりレートは本記事執筆時点で計算しています。
 
|                  | AWS               | Azure              | GCP               | Oracle Cloud               |
|:-----------------|:------------------:|:-------------------:|:------------------:|:------------------:|
| **シェイプ**              |a1.medium（Linux）|A1 v2（Linux）|n1-standard-1|VM.Standard.E2.1（※1）|
| **vCPU**              |1|1|1|1（※2）|
| **メモリ**             |2 GiB|2 GiB|3.75GB|8GB|
| **料金**|[Amazon EC2 料金表](https://aws.amazon.com/jp/ec2/pricing/on-demand/)|[Linux Virtual Machines の料金](https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/linux/)|[VM インスタンスの料金](https://cloud.google.com/compute/vm-instance-pricing?hl=ja)|[コンピュート - 仮想マシン・インスタンス](https://www.oracle.com/jp/cloud/compute/pricing.html)|
| **1時間**             |0.0321USD|$0.054|$0.0610|$0.03|
| **1ヶ月（$）**       |$23.88|$40.17|$45.38|$22.32|
| **1ヶ月（¥）**       |¥2,556|¥4,299|¥4,857|¥2,389|

※1 PIC_COMPUTE_STANDARD_E2
※2 Oracle Cloudの場合は、OCPUと言う考え方でハイパー・スレッドが有効なIntel Xeonプロセッサの1つの物理コアに相当するCPUを提供。1つのOCPUが2つのハードウェア実行スレッドに相当し、これをvCPUと言う。

## ストレージ（ブロックストレージ）
各クラウドベンダーのブロックストレージについて以下に記載します。

|                  | AWS               | Azure              | GCP               | Oracle Cloud               |
|:-----------------|:------------------:|:-------------------:|:------------------:|:------------------:|
| 概要              |[Amazon EBS ボリュームの種類](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-volume-types.html)|[Azure で利用できるディスクの種類](https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/disks-types)|[ブロック ストレージのパフォーマンス](https://cloud.google.com/compute/docs/disks/performance?hl=ja)|[ブロック・ボリューム・パフォーマンス](https://docs.oracle.com/cd/E97706_01/Content/Block/Concepts/blockvolumeperformance.htm)|
| **IOPS**              |インスタンスは最大8万IOPS|※3|※4|インスタンスは最大40万IOPS|
| **料金**             |[Amazon EBS の価格](https://aws.amazon.com/jp/ebs/pricing/)|[ブロック BLOB の価格](https://azure.microsoft.com/ja-jp/pricing/details/storage/blobs/)|[ディスクの料金体系](https://cloud.google.com/compute/disks-image-pricing?hl=ja#disk)|[Oracle Storage Cloud Pricing](https://www.oracle.com/cloud/storage/pricing.html)|

※3 ディスクの種類（Ultra Disk、Premium SSD、Standard SSD、Standard HDD）により異なる。
※4 永続ディスク IOPS およびスループットのパフォーマンスは、インスタンスの vCPU の数と I/O ブロックサイズによって異なる。

## ネットワーク
各クラウドベンダーのネットワークについて以下に記載します。

|                  | AWS               | Azure              | GCP               | Oracle Cloud               |
|:-----------------|:------------------:|:-------------------:|:------------------:|:------------------:|
| **インバウンド**              |無料|無料|無料|無料|
| **アウトバウンド**            |1GBまで無料|5GBまで無料|※5|10TBまで無料|
| **料金**             |[Amazon EC2 料金表](https://aws.amazon.com/jp/ec2/pricing/on-demand/)|[帯域幅の料金詳細](https://azure.microsoft.com/ja-jp/pricing/details/bandwidth/)|[ネットワークの料金](https://cloud.google.com/compute/network-pricing?hl=ja)|[Oracle Cloud Infrastructure](https://www.oracle.com/jp/cloud/platform/iaas/overview/)|

※5 世界各地、中国、オーストラリアで異なる料金。

## データベース/サーバレス/マネージドサービス
各クラウドベンダーのデータベース/サーバレス/マネージドサービスについて、キーワードを以下に記載します。

|                  | AWS               | Azure              | GCP               | Oracle Cloud               |
|:-----------------|:------------------:|:-------------------:|:------------------:|:------------------:|
| **データベース**             |RDS|Azure SQL Database|Cloud SQL|Oracle Database|
| **サーバレス**              |Lambda| Azure Functions |Google Cloud Functions|Oracle Functions|
| **マネージドサービス**             |Amazon EKS|AKS|GKE|OKE|

## その他
各クラウドベンダーを利用する際の留意事項について以下に記載します。

|                  | AWS               | Azure              | GCP               | Oracle Cloud               |
|:-----------------|:------------------|:-------------------|:------------------|:------------------|
| リソース管理方法              |アカウント|リソースグループ|リソースグループ|コンパートメント|
| スケールアップ/スケールダウン              |インスタンス停止必要。|インスタンス停止必要。|インスタンス停止必要。|インスタンス停止必要。なお、Elastic Instancesからダウンタイムなし。|
| DR              |海外リージョンとの組み合わせが必要|国内においてディザスタリカバリ構成可能|国内においてディザスタリカバリ構成可能|国内においてディザスタリカバリ構成可能|
| 準拠法／裁判地              |アメリカ合衆国ワシントン州法/アメリカ合衆国ワシントン州キング郡に所在する州裁判所または連邦裁判所※6|日本法/東京地方裁判所|米国準拠法/カリフォルニア州サンタクララ郡の裁判所の対人管轄権および排他的裁判地|日本法/東京地方裁判所|

※6  日本法/東京地方裁判所に変更可能

## ナレッジ
- クラウドベンダーによっては突然、契約形態が変わる場合があるため、契約更新のタイミング前には余裕を持って契約内容を確認しておいた方がよい。例としてクラウドベンダーの意向により突然、オプション形態が変わりしかも強制加入コースで決して安くない金額を請求される場合もある。
- サポートに問い合わせをなげる際に急ぎたい場合は、契約先の営業担当からサポートにプッシュしてもらうことで優先度を上げてもらうことができる。
- 外部連携するシステムがある場合は要件定義の段階で外部連携先に仕様を確認しておくこと。AWSなどの日本リュージョンにおけるインスタンスから出力されるパケットのルーティングは基本的に海外を経由している。そのため、外部連携先が海外からのアクセスを許可していなく、個別許可ができない場合は、国内からアクセスできる環境を用意しないといけない状況になる。

# おわりに
以下、まとめです。これからはマネージドサービスが主流になるので、クラウドベンダーはマネージドサービスで比較することが重要になってくると思います。

- 従量課金で同程度のスペックでインスタンス単体を比較した場合は、OCP、AWS、Azure、GCPの順に安い
- AWSはクラウドの歴史が一番長いのでドキュメントやナレッジが多く、料金や使いやすで言うと一番バランスがいい。
- AzureはADなどWindows特有の機能を使用したい場合、勝手はあるが料金は高い。
- GCPはBigQueryあるのでデータ分析基盤を構築したい場合は最適である。
- Oracle Cloudはストレージの性能が良いのでデータベースとの相性がいい。また、従量課金のコストは一番安いと思われる。