様々な企業で、パブリッククラウドへのシステム移行が進んでいます。移行する対象先として、AWSとAZUREの2大パブリッククラウドサービスがよく選定基準としてあがってきます。どのようなシステムをどう移行したいか、要件によって選定基準は異なりますが、基準として押さえおきたいポイントを3つに絞り、両サービスの比較をしてみました。どのようなケースでAWSやAZUREを選ぶべきか、比較から見えてきた結果を纏めました。
目次
1. AWS、AZURE、2つのサービスの大きな特徴
AWS
AWS (Amazon Web Services) は Amazon.com社が提供するクラウドサービス。2006年3月に設立され、クラウドサービスの中では最も長い歴史を持っています。常に業界のトップシェアを誇り、そのシェアは3割を超えています。
サービスの種類も豊富で、常に新しいサービスや独創的な考え方のサービスを提供しています。
使いたいシステムだけ課金することができるため、必要な部分だけの利用が可能。そのため柔軟かつ的確にコストが抑えられ、効率的、円滑に利用することが可能で特徴の1つです。
歴史が長く、業界リーダーであることとから、様々なクラウドサービス選択の基準となり、最初に検討される場合も多いと思います。
AZURE
AzureはMicrosoft社が提供しているクラウドサービスです。2010年にサービスを開始、Windows ServerやMicrosoft Officeといった様々なMicrosoft社製品との親和性があり、順調に売上を伸ばしています。
また、見えないところで技術と生産性を高め、利用者に良い技術やサービスを提供するため、開発者のレベルは高く向上し続けていることが、Azureの急成長の裏付けとなる理由でもあります。
更に、最新人工知能とデータを活用し、インテリジェントの次世代アプリを生み出すことが可能です。このような特徴からAzureの秘めた可能性は高く、IT業界のAI分野を促進すると予測されます。
2. AWSとAzure、それぞれのメリット・デメリット
2-1. AWSのメリット
メリット1 クラウド黎明期から培った実績やノウハウがあります。
メリット2 クラウドシェア(IaaS)ではトップシェアを維持しています。
メリット3 小規模から超大規模まで対応可能な柔軟性、小さく初めて、グローバル展開スケールアウトも可能。世界的規模での災害対策(DR)や安定稼働の実績があります。
メリット4 サーバやストレージなどのインフラを提供するIaaS(Infrastructure as a Service)の種類が豊富で、OSやミドルウェアの制限が少ないです。
2-2. AWSのデメリット
デメリット1 システムの構築でOSやミドルウェアの制限が少ない反面、利用者側でOSを含めたソフトウェアのセキュリティ管理などまで行う必要があります。
デメリット2 自由にカスタマイズができないなど柔軟性に乏しいデメリットがあります。例えば、細かな調整やカスタマイズ・機能の追加といったオプションを設定したい場合のメンテナンス日などを自由にはおこなえません。そのため、サーバのような企業の根幹を担うものの場合は慎重に選定する必要があります。
デメリット3 ランニングコストが変動する可能性がります。用途と費用の調整は必須になるという点ではデメリットといえます。AWSのクラウドでは稼働した分だけ課金されますので、利用料金の単価が高くなってしまいます。AWSの利益の出し方は、機器代を安くしてインク代で利益を出すプリンターのモデルと同じ原理です。初期費用は低めですが、利用した分費用がかさんでしまう点はデメリットといえます。
2-3. Azure のメリット
メリット1 Windowsサーバ環境との親和性が高く、Microsoft 365などマイクロソフト社の製品やサービスと連携がスムーズです。
メリット2 ビジネスアプリケーション等と連携され、金融、電力、小売、製造業などの特定の業界に強みがあります。
メリット3 ビジネス関連アプリに強みがある。Microsoft 365サービスに力を入れていることもあり、パブリッククラウド環境でのオフィスワーク活用が強みになる可能性があります。AIへの注力度が高く、オフィスやビジネスにおけるパブリッククラウドAIの活用にも近いサービスと言えそうです。
2-4. Azure のデメリット
デメリット1 アプリケーション環境をクラウド上で運用するPaaS型(Platform as a Service)を重視しており、利用企業によっては、OSやミドルウェアの追加導入で不都合を感じるケースがある可能性があります。
デメリット2 専門知識と技術が不可欠 システム開発や運営に役立つ機能をたくさん備えており、アップデートで新機能が次々と追加されるので、データベースやサーバに関わる知識や技術が必要です。
3. 特に重要な3つの主要比較項目を徹底解説
3-1. 機能比較
主要な機能一覧
コンピュートリソース
アプリケーションを稼働させるベースのインフラとなるコンピュートリソースから見ていきます。
仮想サーバ
従量課金制の仮想サーバサービスです。各社の機能にそれほど大きな違いはありません。課金体系、選べるコアやメモリ等のオプション、OSの種類、GPUへの対応、ネットワークの帯域、長期契約による割引などの観点から検討し、要件に合致することを確認してください
AWS | Azure |
Amazon EC2 | Azure Virtual Machine |
ベアメタルサーバ
エンタープライズユーザーの中で関心を集めているのがベアメタルサーバです。堅牢なセキュリティとパフォーマンスが特徴で、自由にハイパーバイザを選択することができるサービスも存在します。自社のクラウド環境を最大限にカスタマイズしたい場合に考慮すべきサービスです。両サービスともここ数年にサービスを展開し始めたばかりです。
ベアメタル (Bare Metal) とは、もともと「ハードウェアはあるがソフトウェアは入っていない」という意味でハードディスクや筐体に対して使われる言葉でした。クラウド界隈においては「仮想化を実現するためのソフトウェアが入っていない、素の OS だけが入っているサーバ」という意味で使われます。
何の目的で利用するかというと、クラウドサービス上でベアメタルサーバを構築し、自分で好き勝手やりたい。もしくは、クラウドサービス上にVMware 環境、Oracle DB 環境、SAP HANA 環境を構築したいということが多いようです。
現在、AzureはVMware用とSAP HANA用途での利用のみのサービスとなっています。
AWS | Azure |
Amazon EC2 Bare Metal Instance VMware on Cloud AWS | Azure VMware Solution SAP on Azure (ベアメタル直接の利用は不可) |
コンテナ環境
各社ともマネージドのKubernetesサービスを提供しており、コンテナを運用する上での運用負荷を軽減することが可能です。また、AWS Fargate、Azure Container Instance、及びCloud Runに関してはサーバーレスで運用できるコンテナ基盤であり、より迅速に開発を行うことができます。
AWS | Azure |
Amazon Elastic Container Service Amazon Elastic Kubernetes Service AWS Fargate | Azure Container Instance Azure Kubernetes Service |
アプリケーション基盤
アプリケーションを作成する際に必要となる環境を簡単に用意できるサービスです。各社ともマネージドの環境となっており、開発者はインフラ部分を気にせずに開発に専念することができます。
AWS | Azure |
AWS Elastic Beanstalk | Azure Web Apps |
サーバーレス
サーバーレスサービスでは、イベントをトリガーにしてコードを実行する、イベントドリブンなシステムを構築することができます。連携可能なサービスの種類や実行時間を確認して選択する必要があります。また、Azureでは言語のランタイムとしてPowerShellやTypeScriptを利用することができます。
AWS | Azure |
Amazon Lambda | Azure Functions |
ストレージ
データを格納するストレージサービスを上げます。
ブロックストレージ
ブロックストレージサービスでは、パフォーマンスや拡張性、可用性等が判断の基準となります。各社ともIOPSやスループット性能に応じていくつかのオプションを提供しているため、ユースケースに適したオプションを選択する必要があります。また、いずれのサービスもデータのレプリケーションを自動で行いますが、AWSやAzureはゾーン内でのレプリケーションです。
AWS | Azure |
Amazon Elastic Block Storage | Azure Disk Storage |
ファイルストレージ
AWSではNFS、AzureではSMBがプロトコルとして利用可能です。AzureにはAzure File Syncという機能があり、オンプレミスを含む外部のファイルサーバーをAzure Filesと同期することができます。これにより複数拠点で同一のファイルを扱うことができるようになり、災害対策用途としても利用することが可能です。
AWS | Azure |
Amazon Elastic File System | Azure Files |
オブジェクトストレージ
データ耐久性が非常に高く、柔軟にスケールすることができるオブジェクトストレージのサービスです。AWSではデータへのアクセス頻度に応じて価格体系が設定されているのに対して、Azureでは格納するオブジェクトの種類や用途毎にブロックBLOB、追加BLOB、ページBLOB等と細分化されており、より複雑な課金体系となっています。AWSのS3は99.999999999%の耐久性を実現するように設計されており、ストレージの中でも屈指の耐久性を誇っています。
AWS | Azure |
Amazon S3 Amazon Glacier | Azure Blob Storage Azure Archive Storage |
大容量データ移行サービス
既存環境から非常に大きなデータを移行する際に、ネットワーク経由で転送すると時間が膨大にかかる場合があります。その場合に検討すべきなのが物理的なデバイスをクラウド環境に持ち込む事ができるデータ転送のサービスです。それぞれ最大容量に違いがあり、Azure Data Box Heavyではデバイスごとに最大1 PB(ペタバイト)の転送が可能であるのに対し、AWSの Snowmobileではセミトレーラートラックを利用し、最大100 PBまで転送することが可能です。
AWS | Azure |
AWS Snowcone AWS Snowball (10PT未満または複数拠点) AWS Snowmobile (10PT以上の場合) | Azure Data Box |
データベース
サーバ上にデータベースを構築することもできますが、ここではDBaaSとして提供されているマネージドのサービスをご紹介します。
リレーショナルデータベース
いずれのサービスも複数拠点へのレプリケーションはデフォルトで実装されており、高い可用性が担保されています。もちろんマネージドサービスなのでバックアップやパッチ適用は考慮する必要はありません。Amazon Auroaはクラウド環境に最適化するように再設計した新しいデータベースです。耐障害性と自己修復機能を有しており、インスタンスごとに最大 64TBまで自動でスケールされます。AzureのSQL Server Stretch Databaseではオンプレミス環境のSQL ServerをAzureに拡張できるユニークなサービスです。
AWS | Azure |
Amazon RDS Amazon Aurora | Azure SQL Database Azure Database for MySQL/PostgreSQL |
NoSQL
NoSQLのサービスでは、一貫性のあるトランザクションを提供できることが重要となります。各サービスはACIDへ完全準拠しており、データの整合性が確保されていると言えます。
AWS | Azure |
Amazon DynamoDB | Azure Cosmos DB |
データウェアハウス
データウェアハウスは、ペタバイト級の大規模なデータを分析するためのシステムです。分析系のシステムのため、パフォーマンスが気になるところですが、各社とも高速分析を謳っていて正確な値は環境ごとに検証を行う必要があると思います。AWSではS3にデータを格納していることも多いと思いますが、Amazon Redshift Spectrumを利用することでS3のデータに直接SQLクエリを実行することが可能です。また、AzureのSynapse AnalyticsではSQLだけでなく、Sparkによる分析を行うことができます。
AWS | Azure |
Amazon Redshift | Azure Synapse Analytics |
ネットワーク
ネットワークのサービスを比較していきます。
仮想ネットワーク
各社とも仮想的なプライベートネットワーク環境を提供しています。IPアドレスの持ち込みやオンプレミス環境との接続など、それぞれのサービスに大きな違いはありません。
AWS | Azure |
Amazon VPC | Virtual Network |
ロードバランサー
各サービスともL4/L7における負荷分散機能を提供しています。また、複数のゾーンにまたがって負荷を分散することが可能です。AWSのELBではオンプレミスのリソースを配下にし、ハイブリッド構成での負荷分散を実現することもできます。
AWS | Azure |
Elastic Load Balancing | Azure Load Balancer Azure Application Gateway |
DNS
各社とも権威DNSのサービスを提供しています。いずれのサービスも信頼性が高く、パブリック側と、プライベート側のそれぞれのネットワークに対して名前解決を行うことが可能です。
AWS | Azure |
Amazon Route53 | Azure DNS |
CDN
静的コンテンツを配置することで容易に高速化を実現することができるサービスです。いずれのサービスでも各仮想サーバやコンテナ基盤をオリジンとして設定し、アクセス負荷を軽減させることが可能です。また、証明書を追加費用無しで利用することもできます。AWSではAWS ShieldやAWS WAF、IAMとシームレスに統合されており、データをセキュアに保護することができます。
AWS | Azure |
Amazon CloudFront | Azure CDN |
VPN
インターネット経由での安全なアクセスを保証するVPNのサービスです。Amazon VPNとAzure VPN Gatewayはサイト間だけでなく、サーバ – クライアント間のVPNも提供しています。 AzureではActive Directoryを利用した認証を行うことが可能です。
AWS | Azure |
Amazon VPN | Azure VPN Gateway |
専用線接続
各社とも専用線の接続サービスを提供しています。AzureのExpressRoute Directではデュアル100 Gbpsの帯域を利用することが可能です。
AWS | Azure |
Amazon Direct Connect | Azure Express Route |
アプリケーション開発
アプリケーションを開発する際に必要となる各種開発者ツールについて比較していきます。
コード管理
プライベートのマネージドリポジトリサービスです。いずれのサービスも無制限でレポジトリを作成することが可能で、5ユーザーまでは無料で利用することができます。
AWS | Azure |
AWS CodeCommit | Azure Repos |
CI/CD
アプリケーション開発の要となる開発サイクルの自動化ツールです。いずれのパイプラインサービスも各プロセスにおいて自社のサービスはもちろん、サードパーティー製のツールも組み込むことが可能です。
AWS | Azure |
AWS CodeBuild AWS CodeDeploy AWS Code Pipeline | Azure Pipelines |
統合開発環境 (IDE)
Cloud9はブラウザのみで完結するクラウドベースのIDEであり、リッチエディタやデバッグ、AWS CLIがあらかじめプリインストールされています。環境構築が不要なため、非常に迅速に利用を開始することができます。また、Visual StudioにはAzureへの拡張機能が含まれており、もともとVisual Studioを利用してアプリケーションを構築していた方は構築環境をそのまま利用することが可能です。
AWS | Azure |
AWS Cloud9 | Visual Studio |
SDK
各社とも様々な言語に対応したSDKを用意しています。
AWS | Azure |
AWS SDK | Azure SDK Visual Studio |
運用管理
クラウド上のサービスを利用して運用管理が完結できることは重要な要因となります。
サービス管理
各クラウドサービスの管理ツールです。コンソールだけでなく各社ともCLIによるコマンド経由の制御が可能です。AzureではPowerShellでの操作による自動化が行えることが特徴です。
AWS | Azure |
AWS Management Console AWS Command Line Interface | Azure Portal Azure Command Line Interface Azure PowerShell Azure Cloud Shell |
監視、ロギング
AWSのCloudWatchは統合的な監視ソリューションです。インフラストラクチャ全体におけるリソースやパフォーマンス、ログを分析することが可能です。また、Push型で監視を行うため、監視対象が増えても安心です。Azure Monitorではパフォーマンスやリソース監視はもちろん、ネットワークの監視を行うことができるのが特徴です。
AWS | Azure |
Amazon CloudWatch | Azure Monitor Log Analytics |
環境構築自動化
テンプレートを元に、リソースの環境構築を自動化するサービスであり、Infrastructure as Codeとも呼ばれる領域です。
AWS | Azure |
AWS CloudFormation | Azure Building Blocks |
構成管理
AWS | Azure |
AWS Config | Azure Portal |
セキュリティ
セキュリティ機能は本番環境をデプロイする上で非常に重要となります。様々なレイヤーがあるセキュリティですが、いくつかのカテゴリに分類して考慮していきます。
権限管理
クラウドの権限管理ではIAMがよく利用されます。サービスやAPIごとにアクセス権限の設定を行い、各リソースに対しての認証や認可を行います。AzureはAzure Active Directoryにより同等の機能を提供しており、オンプレミスのADとの連携を実現することができます。
AWS | Azure |
AWS Identity and Access Management | Azure Active Directory |
SSL証明書
証明書管理のソリューションです。AWSではACM (AWS Certificate Manager) と連携可能なサービスに対して無料でSSL証明書を払い出し、統合的に管理することができます。プライベートCAを利用する場合には別途料金が必要です。また、AzureではApp Serviceでマネージドの証明書サービスを利用することができますが、有効期限の監視や自動更新など管理機能が利用できるACMが機能的には優れていると言えます。
AWS | Azure |
AWS Certificate Manager | App Service |
鍵管理
暗号鍵の一元的な管理ツールです。いずれのサービスもマネージドのHSMとの連携が可能であり、運用に手間をかけることなくセキュリティを向上させることが可能です。
AWS | Azure |
AWS Key Management Service AWS CloudHSM | Azure Key Vault |
ネットワークセキュリティ
各社ともVPC機能に付随したネイティブのファイアウォールを利用することができます。その上でDDoS防御や、WAFの機能が利用可能です。WAFに関してはどのサービスでもマネージドルールセットの利用だけでなく、ルールのカスタマイズも可能です。AWS ShieldにはStandardとAdvancedの2種類のオプションがあり、Advancedでは24×365で連絡可能なDDoS Response Teamによるサポートを利用することができます。
AWS | Azure |
Security Group ネットワークACL AWS Firewall Manager AWS Shield AWS WAF | Azure Firewall Azure Firewall Manager Azure DDoS Protection Azure WAF |
3-2. 料金比較
クラウドサービスの場合、基本的には使った分が課金される「従量制課金」になるので、サーバの購入費がいくらで、毎月の保守料金がいくら…というように定額で計算して比較することはできません。
各社の料金シミュレーターでだいたい月額がいくらになるのかを試算できますが、利用したい性能やどのくらいの量使うのかという情報が必要な上に、詳細な計算方法は各社違うので、試算するためにもそれなりの知識が必要になります。
料金シミュレーター
AWS 料金計算ツール
Microsoft Azure料金計算ツール
正確さは必要なく、ザックリとした概算を把握したい場合にはAWS向けに
ざっくりAWS というサイトがあります。 https://aws.noplan.cc/ec2
様々な条件・構成によって価格が変わっていくため、一定の条件で比較しているサイトを参考にしてみてください。以下のサイトでは、2020年6月時点での比較情報を共有していて条件や要素の参考になります。
為替リスク
クラウドサービスで見落としがちな点です。AWSは、リセラーを経由することで日本円での支払いに対応していますが、料金設定が米ドルベースであるため為替の影響を受けます。一方、Azureの料金設定は、日本円ベースなので為替の影響を受けることはありません。
3-3. 障害への耐性(ディザスタリカバリ)
冗長化できるか、複数のデータセンターでDR(ディザスタリカバリ)構成が取れるかを比較・確認します。AWSもAzureもDR構成を取ることができます。グローバルなスケールで冗長化したい場合はAWS、2月末まで、国内での冗長化を行いたい場合はAZUREが適しているといえましたが、AWSも同様に日本で2拠点を設置したため、どちらも問題なくDRを組めることができるようになりました。
AWS | Azure |
東京リージョン 大阪リージョン | 東日本リージョン 西日本リージョン |
AWSは、2021年2月記事作成当時は、日本国内には「東京リージョン」しかありませんでしたが、3月2日に大阪リージョンが開設されました。
4. 【AWSとAZURE】メリットが大きいケース
4-1. AWS利用にメリットが大きいケース
商用ライセンス
商用ライセンスの正式サポートが必須な場合、AWSは古くからサービス提供を行っていることもあり、商用ライセンスのサポート範囲が広くなっています。WindowsやOracle等の商用の正式サポートが必須の場合などはAWSを利用した方が良いかもしれません。
サーバを細かくカスタマイズしたい場合
AWSでは、「サーバ容量を変更せず、帯域だけ追加する」等、サーバを細かくカスタマイズすることができます。オプション料金がかかるため、費用的に大きなメリットがあるわけではありませんが、サーバ仕様として細かいカスタマイズが必須の場合はAWSを選択された方が良いと思われます。
日本語のドキュメントが豊富に欲しい場合
AWSは、導入実績も多いため、日本語による記述文書も豊富にあります。
一定負荷のサーバを長期にわたって利用する場合
AWSでは、3年間の長期契約を行い、前払いをすることで、大きな割引を適用することが可能です。そのため、サーバ負荷が変わらず一定で、かつ、長期間利用することが前提であるならば、AWSを利用することで大きな割引を受けられる可能性があります。
幅広いサービスを利用できる点においては、非常に魅力的で使いたい時に使いたいだけ利用する使い分け方が、最も効率的で良い利用方法だと言えます。
4-2. AZUREにメリットが大きいケース
Microsoft製品中心で構築
Microsoftの専門的な技術と得意分野で、なおかつ、他の製品と連動や共有なしで、進められる利用用途ならAzureサービスを利用するのがお勧めです。
Microsoftの製品でシステム構築を行った場合、共有やスムーズな作業を行えるメリットがあるため、特化型分野に関してのみの使い分け方で利用するのが良い使い方でしょう。
会社で作ったアカウントをAzureの認証にも利用したい場合やWindowsサーバベースの企業の情報システムをクラウドに移設する場合などもAzureの利用を検討してみるとよいでしょう。
5. まとめ クラウド移行にはどちらが最適?
移行するシステム用途や目的によって異なります。移行するサーバがLinuxオープンシステムであったり、様々なシステムとの連携、より詳細設定が必要であったり、ピーク時のパフォーマンスが重要な場合は、AWSを検討するとよいでしょう。既存システムがMicrosoft製品の依存度が大きい場合、親和性が高いAZUREからまず検討してみるとよいでしょう。
ご参考になれば幸いです。
※2021年2月時点での情報をベースに作成しています。
コメント