AWS
#AWS
https://gyazo.com/909e6c9c7e5603926488fcbdff9d9d56
AWS 1日目に行う作業
ルートアカウントの利用の停止
MFA をアクセス要件にする
請求レポートを有効にする
AWS CloudTrail を有効にする
AWS Config を利用してリソース変更を追跡する
基礎
#AWS_グローバルインフラストラクチャ
#AWS_IAM
#AWS_ネットワーク設計
#AWS_監視/ロギング
スケーリング
#AWS_RDSのスケーリング
#AWS_EC2のスケーリング
Tips
#AWS_での_CI/CD
#CloudWatch_Events
#AWS_Route53とELB
#AWS_DynamoDB
#Amazon_Aurora
#AWS_S3
#AWS_CloudFront
#AWS_CloudSearch
#AWS_Elasticsearch_Service
暗号化
#AWS_KMS
#AWS_CloudHSM
#AWS_災害対策
AWS Well Architected
目標
アーキテクチャの評価/改善ができる
設計がビジネスに与える影響を理解できる
目的
アーキテクチャのベストプラクティスに対する認識を向上させる
無視されがちな基礎的分野への対応
一貫性のある原則でアーキテクチャを評価する
どのようなものか
AWS エキスパートによる一連の質問事項
それらの質問事項を設計に投げかけ、評価する
https://aws.amazon.com/jp/architecture/well-architected/
基本的に日本語版は古いので、英語版を参照するのが良い。
TODO
具体的なネットワーク設計例を書く
フェデレーションについてまとめておく
メモ
後ほどまとめる予定のもの
ワークロードを分ける、すなわち、S3 に同じリージョンの別アカウントにすれば同じリージョンの S3 にアクセスさせないようにできる
NAT ゲートウェイの可用性をあげるために、AZ ごとに NAT ゲートウェイを立てると良い
gard duty
トップドメイン?CNAME?エイリアス?DNS...
耐障害性は高可用性のサブセット
耐障害性はエラーを 0 に近づける
高可用性は利用不可時間を (エラーが発生しても) 0 に近づける
Direct Connect の効果妖精は、契約数を増やす
VPN 接続と併用する
複数契約する
別会社で契約する
同じ会社の別の場所で契約する
lambda
Auto Scaling が増減させることができるのは EC2 インスタンスのみ
Docker コンテナ等は lambda から増減させるのが良い? -> ECS が行なってくれるので別に
Auto Scaling の制約としては、アラームの仕組み内でしか動作しない。複雑なメトリクスの変化に合わせてスケーリングするには、lambda が選択肢に入ってくる
lambda 自体はスケーリングするので、置き換えるのもあり
Lambda とスケーリング
インフラストラクチャを疎結合にすると、
スケーリングしやすくなる
耐障害性が上がる
結合点には、高い可用性/拡張性が必要となる。そのため、そういった場所には AWS のマネージド型のサービスを利用する。
例えば、多数の EC2 インスタンスが各々みつ結合しているのはアンチパターン。ELB を介して各々アクセスするようにできると良い。このとき、ELB が落ちると全てダメになるが、ELB は高い可用性がある
SQS について
http://kumagi.hatenablog.com/entry/queue_struggle
cloudWatch で SQS の中身を監視して、それにトリガーして Auto Scaling する。Auto Sclaing は ELB が必須というわけではない
分散キューの苦しみを知っておく必要がある。
ポーリングが基本
Amazon SNS
SQS と同様に、メッセージングのサービス
メッセージをトピックに対して発行し、クライアントはそれを Subscribe する
Sbscribe/Publisher モデル
メッセージを Sbuscriber に push できる
ActiveMQ
EC2 にインストールして利用できるが、マネージド型の方が良い
これが Amazon MQ
標準的なメッセージングプロトコルを活用できるのが特徴。
SQS や SNS ではこれができない
ステートをどこに保存しておくか?
Neptune
EMR
質問
Blue/Green Deployment を CloudFormation や CodeDeploy 等を組み合わせて行いたい場合、Code Pipeline 等を利用するのが良いのか?
AMI から EC2 インスタンスを立ち上げ、デプロイを行い、CNAME を切り替えたい場合、どうやって実現するのが良い?
CodeDeploy は ELB がないと Blue/Green Deployment ができない
例えば、例に出ていた CloudFormation を利用した手順は、どのように自動化すべき?
バケットポリシー等と IAM ロールの使い分け
利用される側とする側のどちらに設定するか、という違いのみ?
インスタンス/RDS 間の暗号化は、 VPC 内部のみでのやりとりの場合はやらなくてもよい?
EC2 インスタンス/ELB 間の暗号化もいらない?
assume role api は、role の arn が分かっていれば、誰でも叩けてしまう?