20170311 jawsdays 新訳...

Post on 21-Mar-2017

261 views 7 download

Transcript of 20170311 jawsdays 新訳...

#jawsdays #jd2017_a

#jawsdays #jd2017_a

はじめに

ご紹介JAWS-UG ARCH

アーキテクチャ専門支部

#jawsdays #jd2017_a

はじめに

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

#jawsdays #jd2017_a

はじめにだがしかし

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

#jawsdays #jd2017_a

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

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

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

支部のご紹介

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

#jawsdays #jd2017_a

支部運営方針

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

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

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

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

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

山 奈緒美﨑AWS Samurai

2015

#jawsdays #jd2017_a

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

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

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

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

#jawsdays #jd2017_a

はじめに

#jawsdays #jd2017_a

運用、超大事。

#jawsdays #jd2017_a

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

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

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

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

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

#jawsdays #jd2017_a

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

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

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

#jawsdays #jd2017_a

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

運用って大事ですよね♪

#jawsdays #jd2017_a

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

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

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

#jawsdays #jd2017_a

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

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

#jawsdays #jd2017_a

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

効率性保守性移植性

外部品質 内部品質

#jawsdays #jd2017_a

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

効率性保守性移植性

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

#jawsdays #jd2017_a

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

機能性信頼性使用性

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

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

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

#jawsdays #jd2017_a

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

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

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

効率性保守性移植性

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

#jawsdays #jd2017_a

AWS Cloud Design Pattern

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

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

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

#jawsdays #jd2017_a

AWS Cloud Design Pattern

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

#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

#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

#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

#jawsdays #jd2017_a

Route53 as theHybrid cloud

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

#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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

雑に言うとこんなの

WEB Server DB ServerLoad balancer

#jawsdays #jd2017_a

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

解決したい課題

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

AWS公式ブログでも

#jawsdays #jd2017_a

ガチ本番環境導入済

#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 アドレスで設定

レシピ

#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

#jawsdays #jd2017_a

もちょっと詳しく

#jawsdays #jd2017_a

Simple AD = Samba 4 ベース

#jawsdays #jd2017_a

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

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

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

#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

#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

#jawsdays #jd2017_a

VPC と Amazon-Provided DNS

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

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

• DNS Resolution, DNS hostnames を YES にする

#jawsdays #jd2017_a

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

バへ転送する

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

#jawsdays #jd2017_a

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

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

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

解決したい課題

#jawsdays #jd2017_a

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

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

レシピ

#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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

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

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

#jawsdays #jd2017_a

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

#jawsdays #jd2017_a

でもね・・・

#jawsdays #jd2017_a

ELB internal access only

#jawsdays #jd2017_a

ELB internal access only

#jawsdays #jd2017_a

RDS internal access only

#jawsdays #jd2017_a

RDS internal access only

#jawsdays #jd2017_a

AWS さん、どうなん?

#jawsdays #jd2017_a

ご利用は計画的に。