Uncategorized

AWS(Amazon Web Services)

AWS(Amazon Web Services)
jun@wp

本記事の目的は、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アカウントの作成時に行うべき10のこと

管理者設定
  1. ルートユーザーにMFA(Multi Factor Authorization:多要素認証)を設定する。
  2. ルートユーザーの代わりに、管理者権限を割り当てたユーザーを作成する。それ以降、ルートユーザーは極力使用しない。
  3. 作成した管理ユーザーに請求情報へのアクセス権(AdministratorAccess)を付与する。
アカウント監視設定
  1. すべてのAWS API呼び出しを記録するように、CloudTrailを設定する。
  2. AWS Configを有効化して、AWSリソース(EC2やVPCなど)の構成変更を記録する。
  3. CostExplorerを有効化して、使用料金を確認できるようにする。
  4. CostExplorerで予算を設定し、メールによる通知設定を行う。
  5. Amazon GurdDutyを有効化して、セキュリティ脅威を監視する。
最小限の動作確認
  1. 動作確認のために、最初のサーバーを作成してログインできることを確認する。確認したら削除する。
  2. 手元のPCでAWS CLIを起動し、操作する(オプション)

認証情報の取り扱い

AWS CLIやSDKを利用する場合は、上記のAWSアカウントに関する各種設定を行った後で、マネージメントコンソールを使って、「アプリケーション開発者用ユーザー」を作成し、認証情報(アクセスキーとシークレットキー)を払い出します。この認証情報があれば、AWS CLIやSDKを用いて、各サービスのAPIを実行できるようになります。

ネットワーク関連のサービス

ABOUT ME
コムギ
コムギ
冒険ブロガー
東北出身。様々なテーマのエッセンスを探求し最新情報を皆様にお届けすべく、日々奮闘中です。
趣味は渓流釣り。原木からの椎茸作りも得意です。
記事URLをコピーしました