AWS(Amazon Web Services)

本記事の目的は、AWSの全体像や基礎知識、主要サービスの特徴をこれからAWSを学ぶ方に向けてお届けします。
本記事を読むことで次の知識を得ることができますので、お役立てください!
- AWSとはこういうものなのか!
- AWSの特徴や活用方法を把握できた!
- 昨今、クラウドが主流になっている理由がわかった!
クラウドの基礎知識
クラウドコンピューティングの発展
- オンプレミス
- 自社で調達したハードウェアを用いて、共同で利用・運営するデータセンタなどにITシステム環境を構成する形態。
- オンプレミス環境を構築する場合は最初に、提供するWebサービスの利用ユーザー数やピークリクエスト数、サービスレベルに応じて、各サーバのサイジング(サーバの種類やスペック、ストレージ容量などの設計)を実施する。
- 仮想化技術の普及
- 仮想化とは、シンプルにいえば、従来は1つの物理サーバ上で1つのOSを実行していたところ「ハイパーバイザ」と呼ばれるソフトウェアを使って、仮想的に複数のOSを実行する技術です。この技術により1つの物理マシンで複数のサーバ環境を構築できるようになります。仮想化技術の代表的なプロダクトは「VMware」です。
- 更に、VLAN(Virtual Area Network)やOpenFlowをはじめとしたネットワーク仮想化技術によって、ソフトウェアでネットワークを動的に構築する技術(SDN:Software-Defined Networking)も発展していきます。
- クラウドコンピューティング(以降、「クラウド」と記す)
- 仮想化技術を用いて、サーバーリソースをオンデマンドに、かつ柔軟に提供するサービスです。
- クラウドの先駆けであるAWS(Amazon Web Services)は、Amazon.comのサーバーリソースを「サービス」として他社に提供しはじめたことに端を発します。
- クラウドは、そのサービスの提供形態によって3種類に分類できます。
- パブリッククラウド ※本記事では、パブリッククラウドを中心とします。
- プライベートクラウド
- ハイブリットクラウド
(パブリック)クラウドの種類と特徴

- IssS
- システムの稼働に必要なサーバやストレージなどのインフラ機能を、インターネット経由で提供するサービスです。
- laaSの代表例として、「Amazon EC2」や「Google Compute Engine(GCE)」などが挙げられます。
- PaaS
- インターネットで特定のソフトウエアを使うための基盤や、環境(プラットフォーム)を提供するサービスのことで、主に、アプリケーションの開発などに利用されます。
- 代表的なPaaSには「Amazon Web Services(AWS)」や「Google Cloud Platform(GCP)」などがあります。
- SaaS
- サービス提供事業者から提供されるソフトウエアを、インターネット上で利用できるクラウドサービスの一つです。利用の際に月額や年額が設定されているものや、無料のサービスもあります。
- SaaS登場以前のソフトウエアサービスはCD-ROMなどでライセンス販売され、購入者がソフトをインストールし利用していましたが、SaaSの登場によりオンラインサービスとして利用できるようになり、CD-ROMからのインストールが不要になりました。
- SaaSでよく利用されるソフトウエアの具体例としては、オンライン会議ツールやチャットツール、グループウエアなどが挙げられます。
クラウドのメリット・デメリット
クラウドのメリット
- データセンタの選定やサーバ機器の手配、手続き作業コストを最小化できるため、短期間にITシステム環境を構築できる。
- システムの構築後でもサーバのスペックを変更したり、動的にリソースをスケールしたりできるため、最初から厳密にサイジング作業を行う必要がない。
- クラウドベンダが提供している環境は災害対策・障害・セキュリティ対策などが組み込まれて構築されているため、非機能要件への対応コストを削減できる。
- AIやビックデータなどの先端技術を用いた付加価値の高いデータ処理を容易に実行できる。
クラウドのデメリット
- 自社のデータセンタでは実現できていた、柔軟なトラブル対応や安定したパフォーマンスが保証されない。
- 利用するリソース・サービスによっては詳細なチューニングができず、機能要件の実現が難しいケースがある。
- 完全閉塞したネットワーク環境を構築可能なオンプレミス環境に比べ、セキュリティの脆弱性をついた攻撃に晒されやすくなる。
AWSの基本と全体像
AWSがクラウドサービスを展開しているリージョン
AWSは現在、全世界の地域(リージョン)に、クラウドサービスを展開しています。
AWSがクラウドサービスを展開しているリージョン
https://aws.amazon.com/jp/about-aws/global-infrastructure/
日本にあるWebサイトを構築したい場合は、一般的に、AWSユーザーはサービスを提供するリージョンに「アジアパシフィック(東京)/リージョンコード:ap-northeast-1」を選択します。理由としては、サービスを利用するユーザー(エンドユーザー)が最も高速にアクセスできる(低レイテンシ:遅延が少ない)リージョンを指定するのが普通です。
または、高度な可用性が求められるシステムでは、災害対策の1つとして複数リージョンでのシステム構成(マルチリージョン構成)が選択肢として挙がることがあります。この場合の留意すべき事項として、各リージョンで利用可能なマネージドサービスに差がある場合があるので確認が必要です。
AWSの一部のマネージドサービス(S3やDynamoDBなど)では、各リージョンでデータを同期するクロスリージョンレプリケーション機能をサポートしているので、マルチリージョン構成にする際は、要件に応じて活用すると良いでしょう。
AWSが展開するアベイラビリティゾーン
AWSの各リージョンは、複数のデータセンタからなる「アベイラビリティゾーン(Availability Zone:AZ)」と、外部のネットワークとの接続を行うデータセンタである「トランジット」を組み合わせた単位で構成されています。また、アベイラビリティゾーン自体は、多数のサーバからなる1つ以上のデータセンタで構成されています。
エッジロケーションとリージョナルエッジキャッシュ
AWSは上記のリージョンに加え、エッジロケーションとリージョナルエッジキャッシュは、Amazon CloudFrontの機能で、コンテンツを高速に配信するために利用されます。
エッジロケーション
- ユーザーに近いネットワークでのアクセスを提供するサービス
- エッジサーバーでコンテンツをキャッシュすることで、配信の高速化とオリジンサーバーへの負荷の軽減を行う
- 高可用性や低遅延、高スループットといったメリットがある
リージョナルエッジキャッシュ
- エッジロケーションとオリジンの間に位置し、コンテンツをキャッシュする機能
- エッジロケーションよりも多くのキャッシュを保持するため、オリジンサーバーへのリクエスト数を減少させ、オリジンサーバーの負荷を軽減する
- アクセスの多いコンテンツの表示速度の高速化に貢献する
- 追加での設定は必要なくデフォルトで有効となっている
- エッジロケーションとリージョナルエッジキャッシュを組み合わせることで、ユーザーの地理的な位置に関係なく、低遅延でコンテンツを配信することがでる
AWSが展開するサービスと利用方法
AWSでは、ITサービスの構築において使用頻度の高いミドルウェアやアプリケーション処理の一部を、高い非機能性を持つ「マネージドサービス」として提供してます。そして、すべてのサービスでAPIが提供されており、AWSユーザーは、後述するマネージメントコンソールなどを用いてAPIをコールすることで、サービスを実行できます。
https://aws.amazon.com/jp/products
サービスを利用する3つの方法
- AWSマネージメントコンソール
- AWSのサイトからログインして各サービスを実行・利用する方法。視覚的にわかりやすいため、この方法が一般的に最も広く利用されている。サービス運用状況の確認時などにも利用される。
- AWS CLI(Command Link Interface)
- 自身のパソコン端末にあるターミナルなどのコマンドラインから各サービスを実行・利用する方法。AWS上に展開するアプリケーションを開発する場合など、サービスを高速か繰り返し起動・実行・停止する場合に適した方法。
- AWS SDK(Software Developers Kit)
- AWSが提供するSDKと呼ばれるライブラリを使って各サービスを利用する方法。この方法は主にアプリケーションから利用されることが想定されている。
- SDKが提供されているプログラム言語
AWSアカウントの作成時に行うべき10のこと
管理者設定
- ルートユーザーにMFA(Multi Factor Authorization:多要素認証)を設定する。
- ルートユーザーの代わりに、管理者権限を割り当てたユーザーを作成する。それ以降、ルートユーザーは極力使用しない。
- 作成した管理ユーザーに請求情報へのアクセス権(AdministratorAccess)を付与する。
アカウント監視設定
- すべてのAWS API呼び出しを記録するように、CloudTrailを設定する。
- AWS Configを有効化して、AWSリソース(EC2やVPCなど)の構成変更を記録する。
- CostExplorerを有効化して、使用料金を確認できるようにする。
- CostExplorerで予算を設定し、メールによる通知設定を行う。
- Amazon GurdDutyを有効化して、セキュリティ脅威を監視する。
最小限の動作確認
- 動作確認のために、最初のサーバーを作成してログインできることを確認する。確認したら削除する。
- 手元のPCでAWS CLIを起動し、操作する(オプション)
認証情報の取り扱い
AWS CLIやSDKを利用する場合は、上記のAWSアカウントに関する各種設定を行った後で、マネージメントコンソールを使って、「アプリケーション開発者用ユーザー」を作成し、認証情報(アクセスキーとシークレットキー)を払い出します。この認証情報があれば、AWS CLIやSDKを用いて、各サービスのAPIを実行できるようになります。