[AWS Cloud Practitiner Essential] (https://explore.skillbuilder.aws/learn/course/1875/play/27620/aws-cloud-practitioner-essentials-japanese-ri-ben-yu-shi-xie-ban) 殴りがき
AWSグローバルインフラストラクチャ
- 世界中でリージョンを構築
- リージョンとは、データセンターがある地域のこと
- 各リージョンには複数のデータセンターがある
- 1つのリージョン内のデータセンターのグループをAZ(アベイラビリティーゾーン)と呼ぶ
リージョン
地理的に分離された場所
リージョンを選択する上での要素
- コンプライアンス -> どうしてもこのリージョンでないとコンプライアンスが守れない。。
- 近接性 -> 遠くのリージョンにアクセスしようとするとかかる時間は増える
- 利用可能な機能 -> AWSの新サービスは、それぞれのリージョンに適用するのに時間がかかるため、まずは1つのリージョンでサービスを開始している可能性がある。将来的には、全てのリージョンで使えるようになると考えられるが、今すぐに使いたいサービスがそのリージョンにあるとは限らない。(基本的には大丈夫)
- 料金 -> リージョンによっては、同じことを実現するのにかかるお金が異なることがある
アベイラビリティゾーン
- アベイラビリティゾーンでデータセンターを分けることにより、EC2などを物理的に1つのサーバーに置かないようにする。
- これにより、災害時にEC2のサーバーの一つが不能になっても、同じリージョンの異なるアベイラビリティーゾーンのサーバー上のEC2を起動し続けることができる。
- 2つのリージョンを選択した際は、インスタンスは同期的に実行される。
- ELBはリージョンレベルで設置される = 異なるAZに対してリクエストを振り分けることが可能。
- インスタンスは同期されており、同じ環境として使えるため、どのAZのインスタンスにリクエストが割り振られても処理は変わらない。
ベストプラクティス
一つのリージョンを選択した際に2つ以上のアベイラビリティゾーンでインスタンスを実行する
エッジロケーション
コンテンツのコピーをキャッシュして、任意の場所のユーザーに素早く配信するための場所
各国のユーザーのリクエストを低レイテンシーかつ高速でレスポンスする。
顧客の近くにリージョンが存在しない場合、わざわざ選択したリージョンにリクエストを送る訳ではなく、キャッシュやコピーをその地域におく。
Amazon Cloud Front
世界中のさまざまなリージョンからCloud Frontにコンテンツをプッシュしている。
キャッシュをここで保持できるため、リージョン外のユーザーに素早くレスポンスできる。
Amazon Route53
DNS(ドメインネームサービス)
低レイテンシーでサービスを提供するために、リクエストを適切にルーティングする
AWS Outposts
十分に機能するミニリージョンがインストールしてあり、会社オリジナルの物理サーバーに配置できる。
AWSが100%所有・運用するが、会社独自の物理サーバーに置くことができる。
自分の建物内でAWSサービスを使用したい場合に使う。
- この体制をハイブリットクラウドアプローチと言う。
### AWSサービスを操作する方法
基本的には各サービスで提供されているAPIを叩く。APIを叩く方法は以下の方法がある。
-
AWSマネジメントコンソール -> ブラウザベースでAWSサービスを操作できる
- サービスの利用開始・サービスについての知見を増やすのに適する
- テスト環境
- AWS請求書の表示
- モニタリングの表示
- 非技術リソースで作業する
-
AWS CLI(コマンドラインインターフェース) -> コマンドラインを使ってAPIを叩く
- 手動での操作ミスがなくなる & 繰り返し実行できる
- Windows, Mac, Linuxが使える
-
AWS SDK(ソフトウェア開発キット) -> プログラミング言語を使用して、ソースコード単位でリソースを操作できる
- サービスに埋め込むことができる。
※ マネジメントコンソール・CLI,SDKは操作と管理を自分で行う方法。
-
AWS Elastic Beanstalk
-
アプリケーションコードと必要な設定をAWS Elastic Beanstalkに提供すると、環境が自動で構築される。
-
全ての要素を個別で操作・管理する必要はない
-
これによって、インフラ構築などに注力せず、オリジナルサービスの開発に集中できる。
-
以下のタスクを実行に必要なリソースが自動デプロイされる
- キャパシティーの調査
- 負荷分散
- 自動スケーリング
- アプリケーションの状態のモニタリング
-
-
AWS Cloud Formation
- IaCのツール
- Json or Yamlベースの記述により、様々なインフラを定義できる
- 複数のリージョンに複数の全く同じ環境を構築できる
- IaCのツール