クラウドコンピューティング
クラウドコンピューティングのデプロイモデル
- クラウドベース
- オンプレミスデプロイ
- ハイブリッドデプロイ
利点
- 変動支出(使ったリソース分だけ、費用を払えば良い)
- データセンターの維持管理費用が不要
- キャパシティの予測対応が不要
- スケールメリット(オートスケーリングやスケールアップ/ダウン/アウト/イン)
- アプリの開発・デプロイが容易
- 世界中に公開できる
Amazon EC2
EC2
- 汎用インスタンス
- コンピューティング最適化インスタンス
- メモリ最適化インスタンス
- 高速コンピューティングインスタンス
- ストレージ最適化インスタンス
料金
- オンデマンド
- Amazon EC2 Savings Plans
- リザーブドインスタンス
- スポットインスタンス
- Dedicated Hosts
Amazon EC2 Auto Scaling
アプリの需要状況に応じて、EC2インスタンスを増加、削除するサービス
- 動的スケーリング
- 静的スケーリング
Elastic Load Balancing
トラフィック(通信リクエスト/レスポンス)を、EC2インスタンス(リソース)へ自動的に分配するためのサービス
メッセージングとキューイング
- ものシリックアプリケーション
コンポーネント同士が密結合のアーキテクチャのため、1つでも障害が発生した場合、コンポーネント全体で障害が発生してしまう。(可用性は低) - マイクロサービス
コンポーネント同士が疎結合のアーキテクチャのため、1つ障害が発生しても、他のすべてのコンポーネントで障害が発生しない。(可用性は高)
Amazon SNS
Amazon SNS(Simple Notification Service)は、サブスクライバーへのメッセージ発行できるサービス。例えば、事業で新しいサービスや商品を提供する旨を、通知メールで出すこと。
Amazon SQS
Amazon SQS(Simple Queue Service)は、コンポーネント同士でメッセージをやり取りできるサービス。例えば、あるコンポーネントが削除処理のリクエストをキューとして送信することで、受取先のコンポーネントで障害が発生していたとしても、障害が復帰した後で、そのコンポーネントがリクエストを処理できること。
その他
- サーバーレスコンピューティングサービス
- AWS Lambda
- Amazon ECS
- Amazon EKS
- AWS Fargate
グローバルインフラストラクチャー
リージョン
またリージョンを決定する上ではビジネス要件を順に満たすことが良い
- データガバナンスと法的要件の順守
例えば、日本の企業のコンプライアンス要件の一つとして、「データの保管は国内に限る」とあった場合、必然的に日本のリージョンを選択する。 - ユーザーとの近接
例えば、アメリカにある企業が日本人向けのサービスを展開する場合、日本のリージョンを選択する。 - あるリージョン内でのサービスに限定される
AWSではさまざまなサービスを立ち上げています。しかし、新しいサービスを立ち上げるにあたり、あるリージョン内で、新たに物理サーバーを構築し、サービスをインストールする必要があります。そのため、新しいあるサービスを使用したいと思っても、日本のリージョンにはまだそのサービスはなく、必然的に米国のリージョンを使わざるを得なくなります。 - 料金
リージョンごとにより、AWSのサービス料金表が異なります。そのため、「ある地域では他の地域と比べて、費用が2倍になる」といったことがあるかもしれません。
アベイラビリティーゾーン
リージョン内のデータセンターまたはデータセンター群を指します。アベイラビリティーゾーンは数十マイル離れているため、リージョン内で災害が発生した場合、複数のアベイラビリティーゾーンが災害の影響を受ける可能性を減らすことができるかもしれない。そのため、サービスを稼働させておく場合のベストプラクティスとして、2つ以上のアベイラビリティーゾーンでのインスタンスの稼働が望ましいとされている。
Amazon CloudFront
エッジロケーションとして、コンテンツキャッシュされた情報を、利用者の近くに保管するためのサービス。これにより、近くにリージョンが存在しない場合でも、素早いアクセス利用が可能となる。
AWSリソースのプロビジョニング
AWSマネジメントコンソール
AWSの各種サービスを監理するサービス。基本的にWebページから管理することができるが、モバイルアプリケーションでも管理が可能。
AWSコマンドラインインターフェイス
AWSの各種サービスをコマンドラインツールから操作することのできるサービス。
ソフトウェア開発キット
プログラミング言語やプラットフォーム用に設計されたAPIを利用して、AWSの各種サービスを操作できる開発キット(SDK)
AWS Elastic Beanstalk
AWS CloudFormation
ネットワーク
Amazon VPC
Amazon Virtual Private Cloudは、EC2などのリソースに対する境界線を確立するためのサービス。その一部に、サブネットが存在する。
インターネットゲートウェイ
インタネットからのトラフィックをVPCへ渡すための、サービス。VPCによって、外部からのアクセスは遮断されているため、その入り口とするサービス。
仮想プライベートゲートウェイ
保護された(暗号化された)トラフィックを受け付けられるようにするためのサービス。VPCとオンプレミスのコンポーネントの間に、仮想プライベートネットワーク接続を確率することができる。
AWS Direct Connect
データセンターとVPCの間に専用のプライベート接続を確立できるサービス。ネットワークコストを削減したり、ネットワーク帯域を増やしたりできる。
サブネット
リソースをグループ化し、パブリックサブネットまたはプライベートサブネットを設定できるサービス
- パブリックサブネット
利用者に一般公開されているリソースを含め、トラフィックを受け付けられるサブネット - プライベートサブネット
データベースや個人情報を保管し、外部からトラフィックを受け付けないようにするためのサブネット
ネットワークアクセスコントロールリスト(ACL)
サブネットでインバウンドトラフィックとアウトバンドトラフィックを制御するための仮想ファイアウォール。
-
ネットワークACL
すべてのインバウンドトラフィックとアウトバウンドトラフィックをデフォルトで許可したACL。独自のルールを追加して、ACLとしての機能を実現する -
カスタムネットワークACL
すべてのインバウンドトラフィックとアウトバウンドトラフィックをデフォルトで拒否するACL。拒否ルールがあり、トラフィックとなるパケットがリストにあるいずれのルールにも該当しない場合、確実に拒否される。 -
ステートレスパケットフィルタリング
ネットワークACLでは、ステートレスパケットフィルタリングが実行さるため、パケットはサブネットの境界をインバウンド、アウトバウンドするたびに、フィルタリングが行われる。 -
セキュリティグループ
EC2インスタンスのインバウンドトラフィック、アウトバウンドトラフィックを制御する仮想ファイアウォール。インバウンドトラフィックは基本的に拒否し、アウトバウンドドラフィックは許可することになっている。カスタムルールを追加し、制御することができる。 -
ステートフルパケットフィルタリング