AWSの各種サービス - ntuf/Tips GitHub Wiki
名称 | 特徴 |
---|---|
EC2 | EC2はコンピューティングだけ。 他のサービスと組み合わせて自由度が高い 止めていればお金はかからない。 |
Lightsail | コンピューティング環境だけでなく、ストレージ、スナップショット、ロードバランサー機能、ファイアウォール、DNS機能などある サーバーの複製が簡単 簡単にすばやくWebサイトやサービスを作成できます 小希望に向いている。止めていてもお金がかかる |
ECR | AWS Docker レジストリサービス |
ECS | Dockerコンテナを実行したり、管理したり |
EKS | AWS でマネージド Kubernetes を実行) |
Lambda | イベント発生時にコードを実行 |
Batch | バッチ処理 |
Elastic Beanstalk | ウェブアプリのデプロイと管理 |
Serverless Application Repository | サーバーレスアプリケーションを検索、デプロイ、公開する |
WAF | Web Application Firewall |
VPC | Virtual Private Cloud |
Route53 | ドメインの取得。クラウドのDNSサービス |
サーバーレスって何?
https://qiita.com/y-some/items/e9b78468428d1c481fac
常時サーバーを起動せずにやる手法らしい。
サーバー運用の手間やコストについて大いにメリット
レスポンスの即時性に難あり
■サブネットとは
ネットワークのセグメント。
VPC内に複数設置できる。
以下の3種類ある。
プライベートサブネット:インターネット通信ができない。VPCエンドポイントから利用してアクセスできる
パブリックサブネット:インターネット通信ができる。
VPNのみのサブネット:AWS Site-to-Site VPN接続の仮想プライベートゲートウェイで、VPNのみの接続ができる。
■
NATインスタンスとNATゲートウェイ
・NAT
NATとはそもそもプライベートIPアドレスをグローバルIPに変換する技術。
VPCとサブネットを使い分けることで 公開領域と 非公開領域を分割できる
パブリックサブネット(公開領域)
プライベートサブネット(非公開領域)
この性質とNATインスタンスを利用することで、プライベートサブネットに配置されたサーバーに対して以下のネットワーク要件が可能となる。
・ロードバランサー経由でのみアクセス可能
・外部からサーバーに直接アクセス不可能
(HTTP, HTTPS/SSH等全て)
・サーバーからの外部サイトはアクセス可能
・NATインスタンス
プライベートサブネットに配置されたサーバーから外部サイトヘアクセスするときに踏み台となる。
AWSコンソールのEC2から作れる
管理:ユーザーが行う
踏み台、ポート転送:できる
コスト:1000-3000円ぐらい
例:
APIサーバーを内部に持ち外部の決済するサイトとの通信が必要なな場合、 パプリックサブネットに配置すると誰でもサーバーに接続できてしまう。セキュアなプライベートサブネットにAPIに立てるが、 アクセスできなくなってしまうが、NATインスタンスで外部に接続ができる。
・NATゲートウェイ
AWSコンソールのEC2,VPCから作れる
管理:AWSが行う
踏み台、ポート転送:できない
コスト:7000円ぐらい(ちょっと高い)
■ECS
Dockerコンテナを管理し、自動的にデプロイし、スケーリングするサ ービス
WebアプリケーションをDockerでつくり、ECSで実行する方法
① Dockerfileを使用して、
Webアプリケーションのイメージをビルドし、 ローカルでコンテナを実行してテスト
②ECSクラスタを作成
コンテナを実行するためのリソース
③ECSタスク定義を作成
コンテナのイメージ、リソースの設定、ネットワーキングの情報を含む
④ECSサービスの作成
⑤ タスクのデプロイ
ECSは
バックエンドでEC2が使用されEC2インスタンスの作成や管理を自動化 する。EC2インスタンスはコンソールで確認することが可能。
■Docker
Dockerでは複数のコンポーネント (Webサーバー、アプリケーション サーバー、データベースなど)を1つのイメージにまとめることができ る(マルチコンテナアーキテクチャ)
WebサーバーとアプリケーションをDockerイメージにして、 DBへの接続は、ローカルにテスト用、AWSに本番用があるので、本番用とローカル用の環境変数をそれぞれ用意する (環境変数ファイルはDockerイメージには含めず)
Dockerイメージから環境変数ファイルを読み込むようにする。
■SQS
サーバー間やシステム間のメッセージングに使われる。 非同期処理を行う必要があるときに使われる。
あるECシステムは
注文の処理に時間がかかっても、Webアプリが応答性を維持して顧客に 迅速なフィードバックしたい。
そのためにSQSでの非同期処理を行う。
Amazon SNSにSQSキューを投げることもできる。
■■セットアップを自動化する手法
User Data
EC2インスタンス作成時に、実行したいコマンドやスクリプトを指定することができます。User Dataは起動時に1度だけ実行されます。
CloudFormation
IaC(インフラをコードで管理する)ツールの一つ。
EC2インスタンスだけでなく、関連するリソース(ELB、RDS、VPCなど)の構築や構成を自動化できます。CloudFormationテンプレートにインストール手順を記述しておけば、スタックの作成時に自動でセットアップされます。YAML,JSONで記述する
AWS OpsWorks
AWS OpsWorksは構成管理サービスで、Chef呼ばれるレシピ形式で各層のセットアップ手順を記述できます。OpsWorks上でApache層やデータベース層を構築すれば、そのレシピに従ってソフトウェアのインストール・設定が行われます。
AWS Systems Manager
Systems ManagerのState Managerを使うと、定期的にEC2インスタンスに対してコマンドを実行したり、ソフトウェアをインストールしたりできます。事前にドキュメントにApacheやデータベースのインストール手順を記述しておけば自動化できます。
Ansible、Puppet、Chefなどの構成管理ツール これらの構成管理ツールを使えば、EC2にソフトウェアをインストールするPlaybookやRecipeを事前に用意しておき、インスタンス起動時に実行させることで自動化できます。
■AWS CloudFormation
AWS リソースのテンプレートを定義し、そのテンプレートを使用して環 境を再現することができる。 開発、テスト、本番などの異なる環境で同じ構成を簡単に作成できる。JSONまたはYAML形式で記述できる。
User DataでできることはCloudFormationでも実現できる。 CloudFormationのUserDataプロパティにスクリプトやコマンドを記述する。