FullStackEngineer 2018年5月15日更新

AWS VPC,SG,Network

Index

1 はじめに

AWS (Amazon Web Services) とは、Amazonが提供する世界シェアNo.1のクラウドコンピューティングサービスです。

一言で言えば、「インターネット経由で、必要な時に必要な分だけ借りられる、巨大なITインフラのレンタルサービス」です。

サーバー、データベース、AI、ストレージなど、200以上のサービスが提供されており、個人開発のアプリからNetflixやNASAのような大規模システムまで、世界中のあらゆるサービスがAWSの上で動いています。

なぜ今、AWSが重要なのか?

従来、WEBサービスを作るには物理的なサーバー(ハードウェア)を購入し、データセンターに設置する必要がありました(オンプレミス)。しかし、AWSのようなクラウドの登場により、「初期費用ゼロ」「数クリックでサーバー構築」「アクセス集中時の自動拡張」が可能になりました。ビジネスのスピードを加速させ、運用コストを最適化するために、現代のIT開発において避けては通れない技術基盤となっています。

2 ビギナー向け・ドキュメント

概要:AWSを「電力」で例える

AWSの仕組みは「電力会社」に似ています。 * オンプレミス(従来): 自宅の庭に発電所を建設し、維持管理するようなもの。莫大な初期投資と専門知識が必要です。 * AWS(クラウド): コンセントにプラグを挿すだけ。電気を使った分だけ料金を支払います。発電所のメンテナンスは電力会社(Amazon)がやってくれます。

ユーザーは「インフラの維持管理」という重労働から解放され、「サービスの開発」という本来の目的に集中できます。

公式情報

学習を始める際は、必ず一次情報を参照する癖をつけましょう。

導入:AWS CLIでの操作体験

AWSはブラウザ上の管理画面(マネジメントコンソール)で操作するのが一般的ですが、エンジニアは「AWS CLI(コマンドラインインターフェース)」を使って黒い画面で操作することも多いです。

ここでは、AWSの中で最も有名なストレージサービス「S3(Amazon Simple Storage Service)」の中身を確認するコマンド例を紹介します。

前提: AWSアカウントを作成し、AWS CLIをインストール・設定済みであること。

# S3にあるバケット(フォルダのようなもの)のリストを表示するコマンド
aws s3 ls

# 特定のバケットの中にファイルをコピーするコマンド
# ローカルの index.html を my-bucket にアップロード
aws s3 cp index.html s3://my-bucket/

このように、物理的なケーブルを繋ぐことなく、コマンド一つで世界中のデータセンターにファイルを保存できます。

3 会話集

エンジニアの現場や採用面接などでよくある、AWSに関する会話例です。

Q1. なぜAWSを選ぶのか?

面接官: 「GCPやAzureもある中で、なぜAWSを選定したのですか?」

エンジニア:サービスの豊富さと情報の多さが決め手です。AWSは市場シェアが最も高く、トラブルシューティングの情報や日本語のドキュメントが充実しています。また、開発メンバーが既にAWSの知見を持っていたため、学習コストを抑えて迅速に開発をスタートできると判断しました。」

Q2. サーバーが落ちない仕組み

新人: 「AWSを使えば、絶対にサーバーは落ちないんですか?」

先輩: 「いいえ、AWS自体の障害も稀に起きます。重要なのは『AZ(アベイラビリティーゾーン)』を分散させる設計にすることだよ。例えば、東京リージョンの中で『物理的に離れたデータセンターAとB』の両方にサーバーを置いておけば、片方が停電してもサービスは止まらない。これを『マルチAZ構成』と呼ぶんだ。」

Q3. コスト管理の注意点

PM: 「今月の請求額が予想より高いんだけど……」

エンジニア: 「あ、すみません。開発環境のEC2(仮想サーバー)を起動したまま放置していました……。クラウドは従量課金なので、使わない時はこまめに停止するか、予算アラート(AWS Budgets)を設定して監視する必要がありますね。」

4 より深く理解する為に

アーキテクチャ:責任共有モデル

AWSを深く理解する上で最も重要な概念が「責任共有モデル (Shared Responsibility Model)」です。 セキュリティに対して、Amazonとユーザーが分担して責任を持ちます。

  • AWSの責任(クラウド「の」セキュリティ): データセンターの物理的な警備、ハードウェアの故障対応、ネットワーク基盤など。
  • ユーザーの責任(クラウド「における」セキュリティ): データの暗号化、OSのパッチ適用、パスワード管理、ファイアウォールの設定など。

「AWSだから安全」なのではなく、「AWSが土台を守ってくれているが、鍵をかけるのは自分たち」という意識が必要です。

メリットとデメリット

  • メリット:
    • スケーラビリティ: クリック数回でサーバーを1台から1万台に増やせる。
    • グローバル展開: 数分で海外リージョンにシステムを展開できる。
    • 最新技術: 機械学習やブロックチェーンなど、最新技術をすぐにAPIとして利用できる。
  • デメリット:
    • 従量課金の落とし穴: 設計を誤ると、オンプレミスより高額になる場合がある。
    • サービスの複雑さ: サービス数が多すぎて、ベストプラクティスを選定するのが難しい。

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

実務レベルでは、手動でポチポチ設定するのではなく、TerraformAWS CloudFormationを使って、インフラ構成をコードで記述・管理することが一般的です。これにより、「誰がいつ構成を変更したか」が履歴として残り、同じ環境を何度でも自動で再現できます。

5 関連ワード

この記事やAWSのエコシステムを理解するための重要キーワードです。

  1. EC2 (Elastic Compute Cloud):
    • AWSで最も基本となる「仮想サーバー」。OS(LinuxやWindows)を選んで起動し、自由にソフトをインストールできる。
  2. S3 (Simple Storage Service):
    • 容量無制限の「オブジェクトストレージ」。画像、動画、ログファイルなどを安価に保存できる。静的WEBサイトのホスティングも可能。
  3. RDS (Relational Database Service):
    • MySQLやPostgreSQLなどの「リレーショナルデータベース」のマネージドサービス。面倒なバックアップやパッチ当てをAWSに任せられる。
  4. Lambda (ラムダ):
    • 「サーバーレス」の代表格。サーバーを常時起動することなく、プログラムコードを実行したい時だけ実行できる仕組み。
  5. IAM (Identity and Access Management):
    • 「誰が」「どのサービスに」アクセスできるかを管理する権限管理機能。セキュリティの要。

6 要点チェック

最後に、AWSについて持ち帰るべきポイントを整理します。

  • AWSは「インフラのレンタルサービス」であり、初期費用不要・従量課金で利用できる。
  • 物理的な管理はAWSが行うが、OS以上の設定やデータ管理はユーザーの責任(責任共有モデル)である。
  • 単にサーバーを借りるだけでなく、S3(保存)、RDS(DB)、Lambda(実行)などを組み合わせることで強力なシステムを作れる。
  • 障害に備えてマルチAZ(データセンター分散)で構成するのが基本。
  • 学習リソースが豊富で、クラウドスキルのデファクトスタンダード(事実上の標準)となっている。

最新記事一覧

続きを見る

関連コンテンツ

カテゴリー一覧

TOP フルスタックエンジニアを目指すに方々へ 2026年1月1日 モダンAPIについて