ADP:クラウドコンポーネント

提供:Azure-CloudDesignPattern
移動: 案内, 検索

クラウドコンポーネントとは?

クラウドコンポーネントとはクラウドサービス構成する部品であり、必然的にAzureクラウドデザインパターンの構成要素ともなる。

各パターンは、当然Azureの各種サービス(コンポーネント)を部品として構成されているが、導入部分の下記の解説に関しては他クラウドにも当てはめられるよう、概念的な名称を用いている。

  • 解決したい課題
  • クラウドでの解決/パターンの説明

クラウドコンポーネント一覧

Azureクラウドデザインパターンの各パターン内で使われる、基本的かつ重要なクラウドコンポーネントについて説明しておく。 また、クラウドコンポーネントと、それを実装しているAzureサービスとのマッピングも以下の表にまとめておく。 Azureクラウドデザインパターンを読む前に、この表を確認することでAzureのサービスだけでなく、その上位のクラウドの概念から各パターン理解することができるだろう。

Azureには典型的なクラウドコンポーネントである「仮想サーバ」以外にも、さまざまなコンポーネントが提供されている。 各パターンを理解する前に、まずは個々のクラウドコンポーネントと、それに対応するAzureサービスについて、その特性や機能について理解しておく必要がある。

クラウドコンポーネント名 Azureサービス名 略称 アイコン 説明
仮想サーバ Virtual Machine VM EC2.png

最も基本的なクラウドコンポーネント。必要なときにすぐに調達でき、従量課金でサーバが利用できる。 サーバのスペックは選択する事が可能で、利用用途に応じて、CPUの処理能力やメモリ量を選ぶ事ができる。 OSやミドルウェア、アプリケーションは利用者が自由に選ぶ事ができる。管理者権限もあり、 WindowsやLinuxで利用していたソフトウェアや技術をそのままクラウドに持ち込み利用できる。 なお、起動した個々のサーバは、「EC2インスタンス」と呼ばれる。

マシンイメージ Amazon Machine Image AMI Icon AMI.png

EC2インスタンスを起動する際、その起動時のイメージとなるデータセットの事。 AMIにはOSやミドルウェア、アプリケーションのデータが入っており、選択したAMIのデータをもとに、EC2インスタンスが起動する。 Amazonが提供している基本的なAMIを利用することも、自分でAMIを作る事も可能。作成したAMIをもとに、別のEC2インスタンスを起動する事ができる。

仮想ディスク Elastic Block Store EBS Icon EBS.png

EC2インスタンスにマウント可能なデータ領域を提供するクラウドコンポーネント。 EC2インスタンスとは異なる領域に格納されており、EC2インスタンスの障害の影響を受けない。 任意のサイズをアロケートすることができ、任意のEC2インスタンスにブロックデバイスとしてマウントできる。 このため、OSからはSATAやSCSIのディスクのように取り扱うことができ、任意のファイルシステムでフォーマットする事ができる。

仮想ディスクスナップショット EBSスナップショット スナップショット Icon snapshot.png

ある時点のEBSのデータを、まるごとスナップショットとして保存したもの。 作成したEBSスナップショットからは、そのデータをもとに新しいEBSを作成する事ができる。 スナップショットは必要なだけ複数取得でき、履歴を持つことが可能。スナップショットは耐久性の高いインターネットストレージであるS3(後述)に保存される。 また、差分保存されるため、連続的に取得してもそのサイズ量は差分のみとなる。

固定グローバルIPアドレス Elastic IP EIP Icon EIP.png

固定のグローバルIPを取得できるサービス。 取得したEIPはEC2インスタンスではなく、Azureアカウントにひもづくため、EC2インスタンスのライフサイクルとは関係なく保持する事ができる。 従って、あるEC2インスタンスに割り当てたEIPを、別のEC2インスタンスにに割り当てる事ができる。

仮想ネットワークインターフェース Elastic Network Interface ENI

EC2インスタンスに付与できる、仮想のネットワークカード。 複数のネットワークカードをEC2インスタンスに付与する事で、例えばWebからのトラフィックを受けるインターフェースと、メンテナンス用に内部から接続するインターフェースを分けるような事ができる。 またEIPと同様、あるEC2インスタンスに割り当てたENIを、別のEC2インスタンスへ割り当てる事ができる。

仮想ファイアウォール Security Group セキュリティグループ Icon SecurityGroup.png

EC2インスタンスに付与される、ファイアウォール。EC2インスタンスへの通信を制御する事ができ、例えば特定のポートしか通さない設定や、特定の接続元からの通信しか通さないような設定を行える。 Security Groupを使用する事で、Azureクラウド上で典型的な3階層(Web層、AP層、DB層)の構成なども容易に構築できる。

仮想ネットワーク Amazon Virtual Private Cloud VPC Icon VPC.png

ネットワークのIPアドレス体系を決め、サブネットやルーティング、ネットワークACLといった、オンプレミスで行っていたネットワーキングをそのままAzureクラウド上で行える。 作成したVPC上には、EC2インスタンスやELBを配置する事ができる。 インターネットに出るゲートウェイに加えて、VPN接続が可能なゲートウェイを定義できる。BGPで経路交換を行うため、オンプレミスからVPN接続を行うと、Azureクラウドをイントラネットの一部のように利用する事が可能。

オートスケール AutoScaling オートスケール Icon AutoScaling.png

CPU利用率や通信量、特定の時刻など、あらかじめ条件を設定しておく事で、その条件に合致した際に自動的にEC2インスタンスを起動/停止させる機能。 負荷が高い時だけEC2インスタンスを起動し、負荷が低減したときに停止する事で、EC2インスタンスを効率よく利用できる。

インターネットストレージ Azure Storage Storage Icon S3.png

インターネットに接続された、ネットワークネイティブのストレージコンポーネント。 PUTやGETといった簡単な操作で、データを出し入れできる。 無制限の容量があり、高い可用性、耐久性がある(設計上のデータアベイラビリティは99.999999999%) インターネットからのアクセスはパーミッションで制御することができ、またS3をそのままWebサーバとして公開することも可能。

DNSサービス Trafic Manager TM Icon Route53.png

DNSサーバのコンポーネント。世界的に分散配置されており、100%稼働のSLAを持つ。 Route53はネットワーク経由で設定変更が可能であり、このコンポーネントを使用してドメインを管理しておくことで、障害発生時や災害時に、バックアップのシステムへ迅速に切り替える事が可能になる。

コンテンツ配信 Azure App Service Apps Icon CloudFront.png

静的なHTMLや画像、動画をキャッシュし、ユーザーに高速に配信を行うクラウドコンポーネント。 EC2インスタンスやS3にオリジナルコンテンツを配置し、そのフロントエンドとしてCloudFrontを配置する。 エッジサーバと呼ばれるCloudFrontのサーバ群が世界中に配置されており、ユーザーのアクセス元により近いエッジサーバ(キャッシュサーバ)がコンテンツの配信を行う。

仮想ロードバランサー Azure Load Balancing ALB Icon ELB.png

ネットワーク経由のトラフィックを負荷分散し、複数のEC2インスタンスにトラフィクを振り分けるためのロードバランシングコンポーネント。 Azureでは複数データセンターにまたがってEC2インスタンスを配置する事ができるため、ELBも複数データセンターにまたがって負荷分散を行うことができる。 またロードバランサ自体も負荷分散するよう設計されており、トラフィックに応じて柔軟に処理能力を向上させる。

キューイング Amazon Simple Queue Service SQS Icon SQS.png

高い信頼性を持つ、メッセージキューイング機能を持ったコンポーネント。 キューに入ったメッセージは複数のストレージに安全に格納される。 SQSはアクセスのためのインターフェースが公開されており、ネットワーク経由で利用する事が可能。

ノーティフィケーション Amazon Simple Notification Service SNS Icon SNS.png

あるイベント発生を起点に、登録してある宛先に対して一斉に通知を送信するコンポーネント。 単体のコンポーネントとしてではなく、通常は他のコンポーネントと連携して動作する。 例えば管理者のメールアドレスを登録しておき、エラーが発生した時に管理者に一斉に通知する、というように利用できる。 またSNSがイベントを受け取り、通知を送った後にその通知を受けた他のコンポーネントを動作させる、というような連携も可能なため、 クラウド上で粗結合のアーキクチャを構築する際に重要となるコンポーネントである。

システム監視 Azure Monitor Monitor Icon CloudWatch.png

CloudWatchは、クラウドコンポーネントの稼働状況やエラー情報を可視化し、統計データを保持するコンポーネントである。 例えばEC2インスタンスのCPU利用率やネットワーク負荷、ディスク利用率等、ELBの通信エラー数などを集約する。 従来の監視システムは、システムが異常をきたした時に管理者に通知するのが主な役割であったが、クラウドではシステム監視と連動してサーバを起動・停止したり、 ディスクを動的に増やしたりと、よりアクティブなシステム構築をする目的で利用することができるため、CloudWatch自体も、1つのクラウドコンポーネントとして定義する。 任意のデータを保持させることもでき、カスタムメトリクスと呼ばれる。

RDBMS Azure SQL Database SQL Icon RDS.png

サービスとして提供されるRDBMSコンポーネント。 EC2インスタンスにRDBをインストールした場合は、DBのインストールやバックアップ作業は今まで通り自前で行う必要があるが、RDSを使用すると、構築済みのRDBをすぐに利用する事ができ、 またパッチ当てやバックアップ、リカバリもAzureが行うため、利用者はRDBをサービスとして利用する事ができる。

KVS Amazon SimpleDB SimpleDB Icon SimpleDB.png

キー項目と値で構成される、スキーマレスのデータストアコンポーネント。リレーショナルデータベースとは異なり、基本的にキー項目と、それに付随する値で構成される。 RDBのようにテーブルを構築したり、テーブル間のリレーションを持たせる事はできないが、その代わりにスキーマ定義が不要で、高いスケーラビリティとスループットを誇る。 またデータは分散ストレージに格納され、高い信頼性を持つ。

KVS Amazon DynamoDB DynamoDB Icon DynamoDB.png

DynamoDBは、2012年初頭に発表されたインターネット時代のアプリケーションのために設計された高速でスケーラブルなNoSQLデータストレージのサービスである。 Amazon DynamoDBは信頼性、データ耐久性が高いデータベースサービスであり、そのデータ容量は実質上無制限であり、アクセス性能(読込性能、書込性能)を自在にコントロールできるという特徴を持っている。 データは、SSD(Solid State Drive)に保存され、どのような規模であっても高速なパフォーマンスを提供できる。またデータは分散ストレージに格納され、高い信頼性を持つ。

インメモリキャッシ Azure Redis Cache Resis Icon ElastiCache.png

インメモリでキャッシュ情報を保持するコンポーネント。データはすべてメモリ上に置かれるため、信頼性は高くないが、高速なデータの格納と取得ができる。 RDBの検索結果や、頻繁にアクセスされる情報を格納することが多い。

メール送信 Send Grid SG Icon SES.png

メールの送信処理を提供するコンポーネント。送信システムが冗長化されており、高い信頼性を誇る。自前でメール送信サーバを構築する場合と比べて、 すでに信頼のあるメール送信システムを利用できるため、メールの到達率(Derivability)が高い。またISPや各スパムリストと連携して、メールのリジェクト数やバウンス数を取得できるため、 特に大量のメールを送信する際に、より品質の高いメールを送る際の参考情報とすることができる。

分散処理クラスタ Amazon Elastic Map Reduce EMR Icon EMR.png

ログ解析や画像処理など、大量のデータに対して、並列で処理を行うためのクラスタコンポーネント。構築済みのApache Hadoopを利用することができる。

スタックデプロイメント Azure CloudFormation CloudFormation Icon CloudFormation.png

テンプレートに従って、複数のクラウドコンポーネントを一度に構築・破棄するためのコンポーネント。 JSON形式のCloudFormationのテンプレートファイルに、構築したいクラウドコンポーネントの情報を記述しておくことで、同一の構成を持ったシステムを容易に構築することができる。

個人用ツール
名前空間
変種
操作
ADPメニュー