概要
クラウドで構築を始めるときに最初の一歩を踏み出すのは大変に思えるかもしれません。クラウドネイティブなアプローチに適応するには時間がかかることがあります。特に、従来のオンプレミス方式によるハードウェアのプロビジョニングやアプリケーションの構築に慣れている場合はなおさらです。クラウドコンピューティングと AWS クラウドのコアコンセプトに精通することで、自信を持ってクラウドジャーニーを始めることができます。以下のセクションでは、クラウドコンピューティングに関するよくある質問への回答と、AWS で構築するためのベストプラクティスをご紹介します。
クラウドコンピューティングとは
オンプレミスとクラウドコンピューティング
クラウドコンピューティングは、クラウドサービスプラットフォームからインターネットを通じて処理能力、データベースストレージ、アプリケーション、および他の IT リソースをオンデマンドかつ従量制料金で利用するシステムです。従来、アプリケーションの構築を検討するデベロッパーは、物理インフラストラクチャとアプリケーションを調達、セットアップ、および保守する必要がありました。ここでクラウドコンピューティングの出番です。
クラウドサービスプラットフォームを使用すると、柔軟で低コストの IT リソースにすばやくアクセスできます。それを使用して、ソフトウェアやデータベースの構築や管理、顧客満足度を高めるアプリケーションの作成を行うことができます。ハードウェアへの多額の先行投資や、そのハードウェア管理に伴う重労働に長時間を費やす必要がありません。必要なときすぐに必要な量のリソースにアクセスできます。お支払いいただくのは使用した分のみです。従量制料金によるサービスへのオンデマンドアクセスは、クラウドコンピューティングモデルの基本です。
クラウドコンピューティングの利点
クラウドにより、デベロッパーは柔軟性とスケーラビリティが向上し、イノベーションまでの時間が短縮されます。クラウドコンピューティングでは、以下を享受できます。
従量制料金 – コンピューティングリソースを使用した場合にのみ、使用した分の料金のみをお支払いいただきます。
大規模な経済性のメリット – AWS は数十万のお客様の使用量をクラウドに集約するため、規模の経済が拡大します。これは、従量制料金の低下につながります。
キャパシティの推測が不要 – アプリケーションのデプロイに先立ってキャパシティを決定すると、高コストのアイドル状態のリソースが発生したり、制限された機能で苦労したりすることがよくあります。クラウドコンピューティングでは、必要なだけの容量にアクセスし、必要に応じてリソースの増減や、スケールアップやスケールダウンの実行をわずか数分の通知で行うことができます。
スピードと俊敏性の向上 – 1 クリックで IT リソースにアクセスできるため、デベロッパーがリソースを利用できるようになるのにかかる時間を数週間から数分に短縮できます。これにより、検証と開発にかかるコストと時間が大幅に減るため、組織の迅速性も大幅に向上します。
コスト削減の実現 – 企業は、データセンターの保守ではなく、ビジネスを差別化するプロジェクトに集中できます。クラウドコンピューティングを使用すると、物理インフラストラクチャの設置、積み上げ、電力供給という面倒な作業に煩わされることなく、お客様に直結した業務に専念できます。
数分でグローバル展開 – 数回クリックするだけで、アプリケーションを世界中の複数のリージョンにデプロイできます。これにより、最小限のコストで、より低いレイテンシーとより良いエクスペリエンスをお客様に提供できます。
AWS クラウドとは
AWS では、従量制料金のテクノロジーサービスをインターネット経由でオンデマンドで提供しています。これはクラウドコンピューティングとして知られています。
AWS クラウドには、コンピューティング、ストレージ、データベース、分析、ネットワーキング、モバイル、デベロッパーツール、管理ツール、IoT、セキュリティ、エンタープライズアプリケーションなど、さまざまなグローバルクラウドベースの製品が含まれています。これらはオンデマンドで、数秒で利用でき、従量制料金で課金されます。AWS クラウドには、世界中のデータセンターから 200 を超えるフル機能のサービスを利用できるため、アプリケーションの開発、デプロイ、運用に必要なものが揃っています。しかも、コストの削減、俊敏性の向上、イノベーションの迅速化を実現できます。
例えば、AWS クラウドでは、vCPU のコア数、メモリ、ストレージ、その他の特性を秒単位で指定して仮想マシンを起動し、実行中に限りインフラストラクチャの料金を 1 秒単位で支払うことができます。AWS グローバルインフラストラクチャネットワークの利点の 1 つは、特定のユースケースに最も適した 1 つまたは複数のリージョンにリソースをプロビジョニングできることです。リソースを使い終わったら、簡単に削除できます。このような柔軟性とスケーラビリティが組み込まれているため、最初の顧客にサービスを提供するアプリケーションを構築してから、次の 1 億人にサービスを提供するようにスケールできます。
この動画では、何百万ものお客様が AWS を利用してクラウドコンピューティングの効率性をどのように活用しているかを詳しく見ます。
以下の追加リソースでさらに詳しく知る
AWS でのクラウドコンピューティング
カテゴリ別の AWS サービスの全リスト
オンプレミスとクラウドコンピューティング
クラウドが登場する前は、企業や組織は自社のデータセンターでハードウェアをホストして管理していました。多くの場合、インフラストラクチャ部門全体をデータセンターの管理に割り当てていました。その結果、運用にコストがかかり、一部のワークロードや実験が不可能になりました。
インターネットの利用が広まるにつれ、コンピューティング、ストレージ、ネットワーク機器の需要が高まりました。一部の企業や組織にとって、大規模な物理的プレゼンスを維持するためにコストをかけ続けることは不可能でした。この問題を解決するためにクラウドコンピューティングが登場しました。
ワークロードをオンプレミスで実行するのとクラウドで実行するのとを区別するために、デベロッパーのチームがアプリケーションにいくつかの新機能をデプロイしたいと考えているシナリオを考えてみましょう。デプロイの前に、チームは本番環境と同じ設定を持つ別の品質保証 (QA) 環境で機能をテストしたいと考えています。
オンプレミスソリューションの場合、追加の環境では、ハードウェアの購入と設置、必要なケーブルの接続、電源のプロビジョニング、オペレーティングシステムのインストールなどが必要になります。これらの作業には時間と費用がかかる可能性があります。一方、チームは QA 環境を待つ間、新機能のリリースを遅らせる必要があります。これとは対照的に、アプリケーションをクラウドで実行すると、本番環境全体を、必要なだけ頻繁に、数分または数秒でレプリケートできます。ハードウェアを物理的に設置してケーブルを接続する代わりに、ソリューションはインターネット経由で管理されます。
クラウドコンピューティングを使用すると、セットアップにかかる時間を節約でき、差別化につながらない面倒な作業もなくなります。どのアプリケーションを見ても、コードなど、その一部の側面がビジネスにとって非常に重要であることがわかります。ただし、例えばコードを実行するコンピュータといった他の側面は、作成する他のアプリケーションとの違いは何もありません。デベロッパーは、サーバーのプロビジョニングなど、アプリケーションを差別化しない一般的なタスクではなく、アプリケーション固有のことに集中したいと思うでしょう。一例として、クレムソン大学の研究者グループは、自然言語処理 (NLP) に関連する機械学習の重要な要素であるトピックモデリングを研究しているときに、著しい成果を上げました。24 時間足らずで、1 つの AWS リージョンで実行されている Amazon EC2 スポットインスタンスで 1,100,000 個以上の vCPU を使用して、クラウドに高性能クラスターを構築しました。これは、AWS がいかにイノベーションを加速するのに役立つかの一例にすぎません。
お試しください: Amazon Lightsail で LAMP ウェブアプリケーションをデプロイする
以下の追加リソースでさらに詳しく知る
クラウドコンピューティングのデプロイモデル
IaaS、PaaS、SaaS
クラウドコンピューティングにより、デベロッパーは最も重要なことに集中でき、インフラストラクチャの調達、メンテナンス、キャパシティプランニング、または差別化につながらない重労働から解放されます。
クラウドコンピューティングの人気が高まるにつれ、さまざまなユーザーの特定のニーズを満たすのに役立つさまざまなサービスモデルが登場しています。それぞれのクラウドサービスは、さまざまなレベルの抽象化、コントロール、柔軟性、管理をもたらします。Infrastructure as a Service (IaaS)、Platform as a Service (PaaS) と Software as a Service (SaaS) の違いを理解すると、お客様のデベロッパーとしてのニーズに適したサービスタイプを決定するのに役立ちます。
Infrastructure as a Service (IaaS)
Infrastructure as a Service (IaaS) はクラウド IT の基本要素から成るもので、通常はネットワーキング機能、コンピュータ (仮想または専用ハードウェア)、データストレージ領域へのアクセスを提供するものです。IaaS では、IT リソースに最高レベルの柔軟性と管理コントロールがもたらされると同時に、現在の多くのデベロッパーにとってなじみ深い既存の IT リソースに極めて類似するシステムを利用できます。

Platform as a Service (PaaS)
Platforms as a Service (PaaS) を使用すると、基盤となるインフラストラクチャ (通常はハードウェアやオペレーティングシステム) を管理する必要性がなくなり、アプリケーションのデプロイと管理に集中できるようになります。リソースの調達、キャパシティプランニング、ソフトウェアメンテナンス、パッチの適用、またはアプリケーションの実行に関連する他の付加価値を生まない手間のかかる作業について心配する必要がなくなるため、業務をより効率的に進めることができます。
お試しください: AWS Elastic Beanstalk の開始方法

Software as a Service (SaaS)
Software as a Service (SaaS) では、サービスプロバイダーが実行および管理している完成した製品を利用できます。ほとんどの場合、エンドユーザーアプリケーションを指して SaaS という言葉が用いられます。SaaS を使用すると、サービスのメンテナンスや基盤となるインフラストラクチャの管理をどのように行うかを考える必要がなくなり、ソフトウェアを使用する方法を考えるだけでよくなります。SaaS アプリケーションの一般的な例の 1 つに、ウェブベースの E メールがあります。これを使用すると、E メール製品への追加機能を管理することなく E メールを送受信することが可能で、E メールプログラムを実行しているサーバーやオペレーティングシステムのメンテナンスを行う必要もありません。
詳しく見る: AWS での Software-as-a-Service (SaaS)
以下の追加リソースでさらに詳しく知る
クラウドコンピューティングのタイプ
AWS での Software-as-a-Service (SaaS)

グローバルインフラストラクチャ
クラウドを利用すれば、新しい地理的リージョンへの拡張やグローバルデプロイを数分で実現できます。例えば、AWS には世界中にインフラストラクチャがあるため、デベロッパーは数回クリックするだけでアプリケーションを複数の物理的な場所にデプロイできます。アプリケーションをエンドユーザーの近くに置くことで、レイテンシーを減らし、ユーザーエクスペリエンスを向上させることができます。
AWS はグローバルなインフラストラクチャを着実に拡張しており、低レイテンシーとスループット向上の実現を支えるほか、お客様のデータが指定の AWS リージョンだけに存在するようにします。お客様のビジネスの成長に応じて、AWS はお客様のグローバルな要件を満たせるインフラストラクチャを提供していきます。
AWS クラウドインフラストラクチャの中心にあるのは、AWS リージョンとアベイラビリティーゾーンです。リージョンは世界中の物理的場所であり、リージョンにいくつかのアベイラビリティーゾーンが配置されています。アベイラビリティーゾーンは 1 つ以上の独立したデータセンターで構成されます。各データセンターは、冗長性のある電源、ネットワーク、および接続を備えており、別々の設備に収容されています。このアベイラビリティーゾーンによって、ユーザーは、単一のデータセンターでは実現できない高い可用性と耐障害性を備えた、スケーラブルな本番用のアプリケーションとデータベースを運用できます。
AWS クラウドのインフラストラクチャは広範囲にわたり、世界中のデータセンターから 200 のフル機能のサービスを提供しています。クラウドプロバイダーの中で最大級のグローバルインフラストラクチャフットプリントを誇る AWS は、必要なときに必要な場所でクラウドインフラストラクチャを提供します。
デベロッパーツール
AWS とのやりとりの方法
クラウドコンピューティングのようにインフラストラクチャが仮想化されると、デベロッパーがインフラストラクチャを操作する方法が少し変わります。インフラストラクチャを物理的に管理する代わりに、AWS アプリケーションプログラミングインターフェイス (AWS API) を使用して論理的に管理します。AWS リソースを作成、削除、または変更するときは、AWS への API 呼び出しを使用してそれを行います。
これらの API コールはいくつかの方法で行うことができますが、このトピックでは以下に焦点を当てて説明します。
- AWS マネジメントコンソール
- AWS コマンドラインインターフェイス (AWS CLI)
- IDE と IDE ツールキット
- AWS Software Development Kit (SDK)
AWS マネジメントコンソール
AWS を初めて使い始めるとき、多くの人は AWS マネジメントコンソールから始めます。これは、ブラウザからログインするウェブベースのコンソールです。マネジメントコンソールには、AWS リソースを管理するためのさまざまなサービスコンソールが含まれています。コンソールで作業することで、スクリプトや構文について心配する必要はありません。AWS のサービスを利用する特定のリージョンを選択することもできます。
コンソールで作業した後は、AWS に慣れてきたか、ある程度のリスク管理が必要な本番環境で作業しているなどの理由で、AWS サービスの手動デプロイをやめたいと思うかもしれません。ここで、AWS コマンドラインインターフェイス (CLI) を利用できます。
AWS CLI
AWS CLI は、コマンドラインシェルのコマンドを使用して AWS サービスを作成および設定できるオープンソースツールです。Linux または macOS では bash、zsh、tcsh などの一般的なシェルプログラムを使用してコマンドを実行できます。Windows では、Windows のコマンドプロンプトまたは PowerShell からコマンドを実行できます。AWS CLI をすばやく起動して実行するためのオプションの 1 つは、AWS リソースへのコマンドラインアクセスを提供するブラウザベースのシェルである AWS CloudShell です。CloudShell はコンソールの認証情報で事前認証されています。一般的な開発および運用ツールがプリインストールされているため、ローカルにインストールしたり設定したりする必要はありません。
AWS CLI に移行することで、API 呼び出しをスクリプト化またはプログラムできます。GUI を使用する代わりに、定義済みの AWS 構文を使用してコマンドを作成します。CLI の利点の 1 つは、1 つのコマンドで複数の AWS リソースを作成できることです。これにより、リソースを選択および設定する際に人為的ミスが起こる可能性を減らすことができます。CLI では、コマンドを作成するための適切な構文を学習する必要がありますが、これらのコマンドをスクリプト化すると、繰り返し使用できるようになります。これにより、長期的には時間を節約できるはずです。
IDE と IDE ツールキット
AWS は一般的な統合開発環境 (IDE) と IDE ツールキットをサポートしているため、好みの環境から AWS でコードを作成、デバッグ、デプロイできます。サポートされている IDE とツールキットには、AWS Cloud9、IntelliJ、PyCharm、Visual Studio、Visual Studio Code、Azure DevOps、Rider、WebStorm が含まれます。
SDK
Software Development Kits (SDK) は、AWS API をプログラムで操作できるようにするツールです。AWS は、図に示すものを含め、ほとんどの一般的なプログラミング言語の SDK を作成および管理しています。
SDK は、アプリケーションのソースコードを AWS のサービスと統合する場合に便利です。例えば、Python SDK を使用して、ローカルハードドライブではなく Amazon Simple Storage Service (Amazon S3) にファイルを保存するコードを記述できます。条件、ループ、配列、リスト、その他のプログラミング要素を含むソースコードを実行できる場所から AWS のサービスを管理できることで、多くの能力と創造性がもたらされます。
これらは、AWS でデベロッパーが利用できるツールのほんの一部です。アプリケーションを迅速かつ簡単に開発するための AWS ツールの全リストについては、「AWS で構築するツール」を参照してください。
Infrastructure as code (IaC)
ソフトウェアデベロッパーがアプリケーションコードを作成する方法と同様に、AWS はインフラストラクチャをプログラム的、記述的、宣言的な方法で作成、デプロイ、および保守できるサービスを提供しています。
AWS CDK
AWS Cloud Development Kit (AWS CDK) は、コードでクラウドインフラストラクチャを定義し、AWS CloudFormation を介してプロビジョニングするためのソフトウェア開発フレームワークです。AWS CDK は、TypeScript、JavaScript、Python、Java、C#/.Net、Go (デベロッパープレビュー中) などの使い慣れたプログラミング言語をサポートしています。
クラウドアプリケーションのプロビジョニングは困難な場合があり、カスタムスクリプトを作成したり、テンプレートを管理したり、ドメイン固有の言語を学習したりする必要があります。AWS CDK では、アプリケーションのモデリングに、プログラミング言語についての知識とプログラミング言語の表現力を使用できます。実証済みのデフォルト設定でクラウドリソースを事前設定する、コンストラクトという高レベルのコンポーネントが用意されているため、クラウドアプリケーションを簡単に構築できます。AWS CDK では、AWS CloudFormation を使用してリソースを安全かつ反復可能な方法でプロビジョニングできます。また、組織の要件を組み込んだ独自のカスタム構成を作成して共有できるため、新しいプロジェクトを促進できます。

以下の追加リソースでさらに詳しく知る
AWS CloudFormation
AWS リソースのモデリングと設定には時間がかかる場合があります。そこで役立つのが、AWS CloudFormation です。CloudFormation は、AWS リソースのモデル化とセットアップを支援するため、リソースの管理に費やす時間を減らし、アプリケーションに集中する時間を増やすことができます。CloudFormation を使用して、必要なすべての AWS リソース (Amazon EC2 インスタンスや Amazon RDS DB インスタンスなど) を説明するテンプレートを作成します。テンプレートを作成すると、CloudFormation がそれらのリソースのプロビジョニングと設定を自動的に行います。AWS リソースを個別に作成および設定して、それぞれの依存関係を考える必要はありません。CloudFormation がそれを行います。CloudFormation は、インフラストラクチャ管理を簡素化し、インフラストラクチャを迅速にレプリケートし、インフラストラクチャの変更を簡単に制御および追跡するのに役立ちます。

AWS の責任
クラウドのセキュリティに責任を負うということは、AWS クラウドで提供されるサービスを実行するインフラストラクチャを AWS が保護および安全に保つことを意味します。AWS は以下の責任を負います。
- 建物の物理的なセキュリティに至るまで、AWS リージョン、アベイラビリティーゾーン、データセンターを保護し安全に保つこと。
- 物理サーバー、ホストオペレーティングシステム、仮想化レイヤー、AWS ネットワークコンポーネントなど、AWS サービスを実行するハードウェア、ソフトウェア、およびネットワークコンポーネントを管理すること。

Well-Architected インフラストラクチャ
以下の追加リソースでさらに詳しく知る
お客様の責任
お客様、またはクラウド上に構築するユーザーは、クラウドでのセキュリティに責任を負います。AWS のサービスを使用する際には、データの安全を確保することに加えて、サービスとアプリケーションを適切に設定する責任を負います。
お客様の責任レベルは AWS サービスによって異なります。必要なセキュリティ設定と管理タスクをすべて実行する必要があるサービスもあれば、データの管理とリソースへのアクセスの制御のみを必要とするより抽象化されたサービスもあります。
労力のレベルはさまざまであるため、お客様はどの AWS サービスを使用するかを検討し、各サービスを保護するために必要な責任のレベルを確認する必要があります。また、適用される法律や規制を確認することに加えて、共有セキュリティモデルが IT 環境のセキュリティ標準とどのように整合しているかを確認する必要があります。
重要なコンセプトは、お客様はデータを完全に管理し、コンテンツに関連するセキュリティを管理する責任があるということです。
このクラウドセキュリティの簡単な要約では、中核となる概念のみを紹介しています。セキュリティの学習ページを参照して、AWS のクラウドセキュリティに関する主なトピック、研究分野、トレーニングの機会について詳しく学びましょう。
セキュリティ
AWS 責任共有モデル
セキュリティの学習
開始方法
初めてのアプリケーションを起動する
AWS には、ほぼすべてのワークロードをサポートできるように、すばやく組み立てることができるビルディングブロックが用意されています。AWS では、連携して高度でスケーラブルなアプリケーションを構築できるように設計された、可用性の高いサービスが揃っています。
開始するには、次のトピックのいずれかを選択してステップバイステップのチュートリアルをお読みください。30 分もかからずに使い始めることができます。またはAWS デベロッパーセンターにアクセスして他のチュートリアルをご覧ください。
無料利用枠を詳しく見る
AWS 無料利用枠により、多様な AWS 製品およびサービスを実際にお試しいただけます。ワークロードをテストするとともに、アプリケーションを実行して詳細を知り、組織に適したソリューションの構築が AWS 無料利用枠内で行えます。
無料利用枠を活用して 100 を超える製品の詳細を確認し、AWS で構築を開始しましょう。ご使用の製品によって、3 種類の異なる無料オファーがご利用いただけます。当社のオファーを詳しく知るには、以下のリンクをクリックしてください。
- 無料トライアル: 個別のサービスをアクティブ化した日から始まる短期の無料トライアルです
- 12 か月無料: AWS に最初にサインアップした日から 12 か月間、これらのサービスをご利用いただけます
- 常に無料: これらの無料利用枠には有効期限がなく、すべての AWS のお客様がご利用いただけます。注: サインアッププロセスではクレジットカードが必要ですが、サービスの利用を開始するまで課金されません。契約の縛りがないので、AWS の使用はいつでも中止することができます。
注: サインアップにはクレジットカードが必要ですが、サービスの利用を開始するまでは課金されることはありません。契約の縛りがないので、AWS の使用はいつでも中止することができます。
AWS Educate
AWS Educate では、何百時間もの無料の自習型オンライントレーニングリソースと、AWS マネジメントコンソールでの実践的な練習の機会を提供しています。AWS Educate は、クラウドを初めて学ぶ好奇心旺盛な学習者向けに特別に設計されており、クラウドスキルを学び、練習し、評価するためのシンプルでバリアフリーなアクセスを提供します。クレジットカード、Amazon.com、または AWS アカウントは必要ありません。
- シンプルでバリアフリーなアクセス: AWS Educate には、13 歳の若い学習者でも電子メールアドレスだけで登録でき、AWS コンソールで無料のハンズオンラボにアクセスして、クラウドのスキルをリアルタイムで学び、練習し、評価することができます。クレジットカードは必要ありません。
- 初心者向けに設計されたコンテンツ: AWS Educate では、クラウドを初めて学ぶ学習者に焦点を当てた数百時間の学習リソースを提供しています。動画で学びたい方、AWS クラウドで学びたい方、 あらゆる方にご利用いただけます。
- 雇用につながる: 学習者は、AWS Educate ジョブボードにアクセスして、世界中のあらゆる種類の組織で求められている何千ものジョブやインターンシップを調べ、検索し、応募することができます。
- ネットワークを構築: ハンズオンラボを含むコースを修了すると、デジタルバッジを獲得でき、キャリア初期の他の人材とつながる場である AWS Emerging Talent Community への招待を受けることができます。
構築を開始する
AWS 無料利用枠とハンズオンチュートリアルのライブラリを利用して、すぐに AWS での構築を開始できます。
今日お探しの情報は見つかりましたか?
ぜひご意見をお寄せください。ページのコンテンツ品質の向上のために役立てさせていただきます