20170311 jawsdays 新訳...

67
#jawsdays #jd2017_a

Transcript of 20170311 jawsdays 新訳...

Page 1: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Page 2: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

はじめに

ご紹介JAWS-UG ARCH

アーキテクチャ専門支部

Page 3: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

はじめに

アーキテクチャって重要ですよね?

Page 4: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

はじめにだがしかし

アーキテクチャ談義をする場が無かった

Page 5: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

• JAWS-UG 初 ( ? ) の 抽象論 専門支部• 興味対象は、 AWS によるクラウドデザインパターン• 議論中心の相互勉強会• 「事例とアーキテクチャ」を重視

• ネイティブクラウド分科会• ハイブリッドクラウド分科会

• CDP のアウトプットやハンズオン開催が目標

支部のご紹介

JAWS-UG ARCHアーキテクチャ専門支部

Page 6: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

支部運営方針

JAWS-UG ARCHアーキテクチャ専門支部

• クラウドアーキテクチャ中心の相互勉強会• 参加者が積極的に発言&交流するコミュニティにしたい• 定期的 (1 〜 2 ヶ月に 1 回程度 ) 開催

• 運営チーム制• 支部長でもなくコアチームでもなく「運営チーム」

• 会場は AWSJ さんのご支援をいただいています• ありがとうございます!!

Page 7: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

今日は諸事情により欠席。。「運用でカバー」の波田野さん

Page 8: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

JAWS-UG 初心者支部 ( 卒業 )JAWS-UG アーキテクチャ専門支部

JAWS-UG 情シス支部JAWS-UG 東京

山 奈緒美﨑AWS Samurai

2015

Page 9: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

支部へのご参加にあたって

JAWS-UG ARCHアーキテクチャ専門支部

• 勉強会の申込みは connpass で受付けています• https://goo.gl/ZY9tpC

• 新 CDP 案や利用方法の議論 Issue を Github で立てています• https://goo.gl/huoVg7

Page 10: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

はじめに

Page 11: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

運用、超大事。

Page 12: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・• システム構築・運用にかかるコスト

– 開発時は 3 割– 運用時は 7 割

• 開発フェーズよりも運用フェーズの方が長い• 構築時に運用設計をしっかりする事が大切

「運用でカバー」を極力減らす

Page 13: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

そもそもシステムって?システムを構築する際に・・・

Page 14: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・

システムとは、本来は目的を遂行するための体系 / 組織を意味する≠ コンピューターシステム

Page 15: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・

世界で最も古い情報システム=複式簿記 ( 約500年前 )

Page 16: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・ 業務システム=企業活動における業務を効率よく円滑に回し、利益を得るための仕組みコンピューターシステム=企業活動における業務を IT 技術を利用して効率よく円滑に回し、利益を得るための仕組み

Page 17: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・

業務に使うモノ ( ソフトウェア ) の品質特性は「業務そのものに求められる品質」と同じでは?

Page 18: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・業務そのもの = 運用フェーズ

運用って大事ですよね♪

Page 19: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・

ソフトウェア品質 = 運用品質

設計・実装時にしっかりと設計しましょう

Page 20: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

システムを構築する際に・・・ISO/IEC 9126ソフトウェア品質の評価に関する国際規格

に当てはめて考えてみよう

Page 21: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

ソフトウェア品質6特性機能性信頼性使用性

効率性保守性移植性

外部品質 内部品質

Page 22: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

運用品質6特性機能性信頼性使用性

効率性保守性移植性

サービス品質 デリバリ品質

Page 23: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

リリースフェーズをイシキ

機能性信頼性使用性

サービス品質:実装フェーズで意識する。要求事項を担保すること

ユーザビリティの担保、エラーメッセージやヘルプを充実させること

障害を極力防ぎ、目的の機能が十分に実現できること

Page 24: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

リリースフェーズをイシキ目的達成の際にリソースを無駄に消費しないこと

別の環境へのソフトウェア移行が容易であること

新たな要求を満たすための改良が容易であること

効率性保守性移植性

デリバリ品質:プレリリースフェーズで意識する

Page 25: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

AWS Cloud Design Pattern

• システム構成の課題• 解決策・実装方法• 利点と注意点

AWS クラウドデザインパターン

ノウハウとしてパターン化

Page 26: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

AWS Cloud Design Pattern

クラウドアーキテクチャーにも運用品質の担保が必要運用品質を意識したCloud Design Pattern

Page 27: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

今日のお話の全体構成図

Office

Direct Connect

VPN connection

Cloud Front

Route 53

RDS DB instance

RDS DB instance standby

(multi-AZ)

AWS Directory Service

Amazon API Gateway

AmazonCognito

AWSLambda

AmazonDynamoDB

AmazonS3

AMI

Auto Scaling

EC2

Amazon Provided

DNS

EC2

Stagingserver

Prodserver

Prodserver

Bastionserver

corporate data center

EC2

Elastic Load Balancing

EC2

DNS Server

Page 28: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

今日のお話の全体構成図

Office

Direct Connect

VPN connection

Cloud Front

Route 53

RDS DB instance

RDS DB instance standby

(multi-AZ)

AWS Directory Service

Amazon API Gateway

AmazonCognito

AWSLambda

AmazonDynamoDB

AmazonS3

AMI

Auto Scaling

EC2

Amazon Provided

DNS

EC2

Stagingserver

Prodserver

Prodserver

Bastionserver

corporate data center

EC2

Elastic Load Balancing

EC2

DNS Server

Page 29: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

今日のお話の全体構成図

Office

Direct Connect

VPN connection

Cloud Front

Route 53

RDS DB instance

RDS DB instance standby

(multi-AZ)

AWS Directory Service

Amazon API Gateway

AmazonCognito

AWSLambda

AmazonDynamoDB

AmazonS3

AMI

Auto Scaling

EC2

Amazon Provided

DNS

EC2

Stagingserver

Prodserver

Prodserver

Bastionserver

corporate data center

EC2

Elastic Load Balancing

EC2

DNS Server

Page 30: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Route53 as theHybrid cloud

2017/3/11JAWS-UG ARCH 山﨑奈緒美

Page 31: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

今日のお話の全体構成図

Office

Direct Connect

VPN connection

Cloud Front

Route 53

RDS DB instance

RDS DB instance standby

(multi-AZ)

AWS Directory Service

Amazon API Gateway

AmazonCognito

AWSLambda

AmazonDynamoDB

AmazonS3

AMI

Auto Scaling

EC2

Amazon Provided

DNS

EC2

Stagingserver

Prodserver

Prodserver

Bastionserver

corporate data center

EC2

Elastic Load Balancing

EC2

DNS Server

Page 32: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Route53 を使ったハイブリッドなやーつ

Page 33: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

ハイブリッドクラウドってなんだっけ?

Page 34: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

雑に言うとこんなの

WEB Server DB ServerLoad balancer

Page 35: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

• オンプレ環境の DNS サーバの運用負荷を減らしたい• 社内から AWS環境にあるリソースを名前解決したい• オンプレ・ AWS環境のレコード管理を統合したい

解決したい課題

Page 36: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Private IP アドレスオンプレから名前解決パターンその1

Page 37: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

AWS公式ブログでも

Page 38: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

ガチ本番環境導入済

Page 39: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

1. オンプレ環境と Direct Connect または VPN で接続する2. Directory Service(Simple AD) をつくる3. VPC の DNS Resolution, DNS hostnames を YES にする4. Route53 で Private Zone を作ってレコード登録5. オンプレ環境の DNS サーバのフォワーダーの宛先を

Directory Service の IP アドレスで設定

レシピ

Page 40: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

stgweb : 172.31.0.20

アーキテクチャ図

Office

Direct Connect

VPN connection

Route 53

RDS DB instance

RDS DB instance standby

(multi-AZ)

AWS Directory Service

AmazonS3

AMI

Auto Scaling

EC2

Amazon Provided

DNS

EC2

Stagingserver

Prodserver

Prodserver

Bastionserver

corporate data center

EC2

Elastic Load Balancing

EC2

DNS Server

www : internal-xxx.ap-northeast-1.elb.amazonaws.com

Zone : xxxinc.local

bastion : 172.31.0.21

172.31.0.21

172.31.0.20

Internal-xxx.ap-northeast-1.elb.amazonaws.com

Page 41: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

もちょっと詳しく

Page 42: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Simple AD = Samba 4 ベース

Page 43: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Samba 4 の機能• Active Directory ドメインコントローラー• ディレクトリーサービス (LDAP)

• Kerberos認証によるシングルサインオン (SSO) 機能• ドメインコントローラーのレプリケーション• 内蔵 DNS および外部 DNS(BIND) との連携• Active Directoryグループポリシーのサポート• Windows GUIベースのリモートサーバ管理ツール (RSAT) 対応• ファイルサーバ機能

Page 44: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Simple AD の機能• Microsoft AD の一部機能• ユーザーとグループ機能• グループポリシー• EC2 インスタンスへのセキュアな接続• Kerberos認証によるシングルサインオン (SSO) 機能

Page 45: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Simple AD での非対応機能• 他ドメインとの信頼関係• ActiveDirectory管理センター• PowerShell サポート• Active Directory recycle bin(ゴミ箱 )

• グループの管理されたサービスアカウント• ActiveDirectory スキーマ拡張

Page 46: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

VPC の DHCP オプションDHCP オプション内の domain-name-servers が Amazon-Provided DNS に設定されている場合Amazon-Provided DNS は VPC 内のインスタンスに対してプライベート DNSホスト名又はパブリック DNSホスト名を付与 Public DNS (IPv4)

ec2-52-XX-XXX-XXX.ap-northeast-1.compute.amazonaws.com

Private DNSip-172-31-XXX-XXX.ap-northeast-1.compute.internal

Page 47: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Amazon-Provided DNS

• VPC のアドレス範囲に 2 をプラスした IP アドレスを利用• Route53 private hosted zone にある DNS ドメイン名を解決• Simple AD は DNS リクエストを Amazon-Provided DNS へ

フォワードVPC作成時にデフォルトで作成されるオプションセットの値domain-name = ap-northeast-1.compute.internal

domain-name-servers = AmazonProvidedDNS

Page 48: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

VPC と Amazon-Provided DNS

以下の手順で VPC 内の名前解決にAmazon-Provided DNS が使用されるようになる。

• VPC を作成して DHCP options set の紐付け※デフォルトでだいたいイケる

• DNS Resolution, DNS hostnames を YES にする

Page 49: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

オンプレ DNS のフォワーダー設定• オンプレ環境の DNS のフォワーダーに Simple AD を指定する• ローカルで解決できない DNS クエリを指定した外部 DNS サー

バへ転送する

条件付きフォワーダーとして特定のドメイン名に関するDNS クエリを転送することも可能

Page 50: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

オンプレから名前解決パターン利点

• Private hosted zone の名前解決が可能• Private と Public で応答内容を変えて Split horizon が可能• DNS をフルマネージドで運用可能

注意点• VPC との接続の信頼性を高く保つことが前提• オンプレ DNS は権威サーバではなくスタブリゾルバが前提• オンプレ DNS にレコード登録するとメリット享受できない

Page 51: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Private IP アドレスオンプレから名前解決パターンその2

Page 52: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

アンチパターン!?アーキテクチャ専門支部内で大論争を生んだパターン

Page 53: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

• オンプレ環境の DNS サーバの運用負荷を減らしたい• 社内から AWS環境にあるリソースを名前解決したい• オンプレ・ AWS環境のレコード管理を統合したい• というかむしろオンプレに DNS サーバ持ちたくない

解決したい課題

Page 54: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

1. オンプレ DNS サーバがインターネットで名前解決ができるようにする。DNS サーバでなくてもルーターでも良い

2. Route53 Public Zone をつくる3. プライベート IP を Public Hosted Zone にレコード登録

レシピ

Page 55: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

stgweb : 172.31.0.20

アーキテクチャ図

Office

Direct Connect

VPN connection

Route 53

RDS DB instance

RDS DB instance standby

(multi-AZ)

AWS Directory Service

AmazonS3

AMI

Auto Scaling

EC2

Amazon Provided

DNS

EC2

Stagingserver

Prodserver

Prodserver

Bastionserver

corporate data center

EC2

Elastic Load Balancing

EC2

DNS Server

www : internal-xxx.ap-northeast-1.elb.amazonaws.com

Zone : xxxinc.local

bastion : 172.31.0.21

172.31.0.21

172.31.0.20

Internal-xxx.ap-northeast-1.elb.amazonaws.com

Page 56: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

こんな疑問ありませんか?

Page 57: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

Public Hosted Zone にPrivate IP アドレスを登録していいの?

Page 58: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

RFC1918プライベート IP アドレスはグローバルな意味を持たないのでプライベートネットワーク内のみで使用されるべき。プライベートアドレス空間を使用しないルーター、特にISP のものはプライベートネットワークの経路情報を拒絶するよう設定されるべきである。

Page 59: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

セキュリティ観点ではdig ればプライベート IP アドレスがダダ漏れなので

攻撃者へ情報を与えてしまうことに

Page 60: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

結論:あまりオススメできません

Page 61: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

でもね・・・

Page 62: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

ELB internal access only

Page 63: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

ELB internal access only

Page 64: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

RDS internal access only

Page 65: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

RDS internal access only

Page 66: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

AWS さん、どうなん?

Page 67: 20170311 jawsdays 新訳 とあるアーキテクトのクラウドデザインパターン目録

#jawsdays #jd2017_a

ご利用は計画的に。