← 用語集一覧へ戻る

AWS

Amazon Web Services
development network beginner
Amazonが提供する、サーバー、データベース、ストレージなど200以上のクラウドサービスをインターネット経由で利用できる、世界シェアNo.1のクラウドプラットフォーム。
AWS (Amazon Web Services)

概要(サマリー)

AWS(エーダブリューエス、正式名称: Amazon Web Services)とは、大手通販サイトのAmazonが提供する、世界で最も広く利用されているクラウドコンピューティングサービスである。

例えるなら、「家でパソコンやサーバー(物理的な機械)を何台も買って組み立てる代わりに、インターネット越しに巨大なレンタルサーバー工場(AWS)から、使いたい性能のコンピューターやデータ保管庫を数クリックで、かつ使った時間分だけの料金(従量課金)で借りて運用する」ようなものである。Webアプリのインフラ基盤として、スタートアップから大企業、政府機関まで幅広く使われている。

詳細解説

世界中で使われている巨大なインフラ工場

AWSは、世界中の地域(リージョン)に巨大なデータセンター群を展開している。開発者は、インターネットが繋がれば、物理的なサーバーの設置場所や配線、停電対策などを一切気にすることなく、世界最高峰のセキュリティと安定性を持つIT環境を瞬時に構築できる。

クラウドサービス(IaaS)とは何か

クラウドコンピューティングの中でも、AWSはサーバーやネットワークといった「インフラ機能」を提供するIaaS(Infrastructure as a Service)の代表格である。

物理的なパーツを購入してサーバー室に並べていた時代と違い、AWSでは管理画面(コンソール)やコードからの命令一つで、CPUメモリ、ハードディスクの容量を数分で自由に変更できる。

AWSの代表的なサービス(EC2・S3・RDS)

AWSには200以上のサービスがあるが、Web開発の現場でまず必ず触れることになる「基本の3大サービス」は以下の通りである。

  1. Amazon EC2 (Elastic Compute Cloud):
    クラウド上の「仮想サーバー」。OSLinuxやWindowsなど)の選択から、アプリのインストールまでを自由に行える、アプリの心臓部となる仮想マシン。
  2. Amazon S3 (Simple Storage Service):
    画像、動画、PDFファイルなどを安全かつほぼ無限に保存できる「データ保管庫(ストレージ)」。表示速度が速く、非常に安価にファイルを保管できるため、Webサイトの画像保存先として広く使われる。
  3. Amazon RDS (Relational Database Service):
    MySQLやPostgreSQLなどのデータベースを、自動バックアップや自動修復機能付きで簡単かつ安全に運用できる「データベース専用サービス」。

AWSを使うメリット(柔軟性とコスト)

AWSがこれほど普及した理由は、その柔軟性とコストパフォーマンスにある。

  • 初期費用ゼロと従量課金: 物理サーバーのように何十万円もする機材を最初に買う必要がなく、使った時間(秒単位、時間単位)やデータ転送量に対してのみ料金が発生する。不要になったら数秒でサーバーを削除でき、それ以降の請求は発生しない。
  • 自動スケール(拡張性): キャンペーンなどでWebサイトへのアクセスが急増した際、自動的にサーバーの数を増やしたり(スケールアウト)、性能を上げたり(スケールアップ)して、アクセス過多によるサイト停止(サーバーダウン)を防ぐことができる。

AWSインフラのコード化(IaC)

現代のWeb開発では、AWSの管理画面を手動でクリックしてサーバーを作るのではなく、インフラの構成を「プログラムコード」として記述して自動生成するIaC (Infrastructure as Code)が主流になっている。

以下は、AWSのサーバーレスサービスである「AWS Lambda」で動く、もっともシンプルなJavaScript関数コード例である。

AWS Lambda用ハンドラーコード例

// サーバーを常時起動させず、リクエストがあった瞬間だけ実行される極小のプログラム
exports.handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from AWS Lambda!'),
    };
    return response;
};

AIコーディングとの関係

AWSのサービス群は非常に強力だが、設定項目が多く、ドキュメントも膨大で難解なため、初心者にとっては「どこから手をつけていいか分からない」という障壁になりやすい。

ここでAIを活用すると、インフラ構築の強力なナビゲーターになってくれる。「S3のバケットを作成し、特定のフォルダー以下を一般公開するポリシー設定(JSON)を作成して」「AWS CLIを使ってEC2インスタンスを起動するコマンドを教えて」と頼むことで、正確な設定ファイルやコマンドを即座に手に入れられる。

また、インフラ定義ツールである Terraform や AWS CDK のコード作成をAIに支援してもらうことで、複雑なクラウド設定をコードベースでスムーズに進めることができる。

よくある勘違い

Amazonのショッピングサイト開発用のサービス?

AWSはもともと、Amazonが社内の膨大なショッピングシステムを支えるために構築したインフラ技術を、一般の企業や開発者向けに切り出してビジネス化したものである。

したがって、ネットショップを作るためだけのサービスではなく、ソーシャルゲーム、SNS、社内システム、AIの学習処理など、あらゆる用途のITシステムで利用できる汎用インフラプラットフォームである。

レンタルサーバーより難しくて高いだけ?

「月額数百円のレンタルサーバーで動くブログなら、AWSを使う必要はない」というのは正しい。

AWSは設定やネットワーク設計(VPC、サブネット、セキュリティグループなど)の知識が必要なため、難易度は高い。しかし、アクセス数に応じて自動でサーバー性能を変更させたい場合や、画像専用サーバー(S3)などの高度な仕組みと組み合わせたい場合など、レンタルサーバーでは対応できない拡張性や柔軟性が必要な場面で真価を発揮する。

セキュリティ設定(IAM等)は自動で完璧になっている?

AWSというインフラそのものは非常に強固にセキュリティ対策されているが、「作成したサーバーやデータのセキュリティ管理」は、開発者側の責任となる(共同責任モデル)。

特に、AWS内の権限管理サービス(IAM)で、強力な管理者権限キーを誤って公開GitHubリポジトリコミットしてしまい、ハッカーに検知されて何百台もの仮想サーバーを勝手に作られてしまい、後から数百万円の請求が来るといったトラブルが多発している。APIキー.envファイルの取扱いは極めて慎重に行う必要がある。

まとめ

  • AWSは、Amazonが提供する世界最大シェアのクラウドサービス群(IaaS)。
  • 仮想サーバー(EC2)、ストレージ(S3)、データベース(RDS)など、必要なパーツを必要なだけインターネット越しに借りて利用する。
  • 使った分だけ支払う従量課金制であり、アクセスの増減に対して柔軟にシステム規模を変更できる。
  • インフラをコードで定義する「IaC」を取り入れることで、再現性の高いシステム構築が可能。
  • AIをAWSの設定サポートや IaC コード生成のパートナーとして使うことで、学習コストを大幅に引き下げられる。

情報ソース

より詳しくAIに聞いてみよう

  • AWSで静的なHTML/CSSサイトを公開したいとき、S3とCloudFrontをどのように組み合わせて設定すればよいか、手順を教えてください。
  • AWSの権限管理機能「IAM(アイアム)」とは何か、そしてAPIキーの漏洩を防ぐための「最小特権の原則」について初心者向けに解説してください。
  • サーバーを常時起動させない「サーバーレス(AWS Lambda)」の仕組みと、どのようなシステムで導入するとコストが削減できるかを教えてください。
  • AIに「個人開発のWebアプリ用に、最も安く安全に運用できるAWSの構成案」を提案してもらい、月額の見積もりを算出してもらうプロンプトの例を教えてください。
  • インフラ構成管理ツール「Terraform」の基本的なコンセプトと、AWSと連携させてサーバーを自動作成するメリットを教えてください。