AWS Hackathon 模範アーキテクト
-
Upload
tomoya-ishida -
Category
Technology
-
view
771 -
download
2
description
Transcript of AWS Hackathon 模範アーキテクト
模範アーキテクトAWS HACKATION
アーキテクトの特徴
CLOUD DESIGN PATTERNを組み合わせた、基本に沿った構成にしています
システムの可用性を向上させるため、処理単位ごとに機能を独立し、疎結合なアーキテクトにしています
想定される負荷に沿ったシステム拡縮小の対策を講じています
なるべく既存のサービスやOSSを組み合わせて、スクラッチ開発をしない構成にしています
システムアーキテクト図
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
CDPの適用場所
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
SCALEOUT
SCALEOUT
WEB STORAGE
QUEUING CHAIN
BOOTSTRAP
LOG AGGREGAT
ION
STACK DEPLOYME
NT
処理フロー
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
①REQUEST
③キューを取得
④写真をS3から取得⑤加工してS3へ保存
②キューに格納
⑥配信
Infrastructure as code!!各インスタンスは、定められたStatusに従い、起動時に自動的にセットアップが完了した状態で立ち上がる
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
CLOUD INIT インスタンス起動時にGITのインストール
GITのREPOSITRYからセットアップに必要なものを取得CODE、SHELL、CONFIG...
1. Backup◦ 障害時にシステムが復旧できるように、環境のBackupを取得してください。
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
AMI AMI✴インスタンスのイメージをAMIでBACKUP(インスタンスが起動時に、自動的に必要なミドルウェア・プログラムをセットアップして起動してくる)✴S3上の写真及びSQS上のキューについては、以下の理由によりBACKUPを取得しない
•S3は標準でデータの冗長化がされている(データ保証 99.999999999%)•1万個のファイルをUPして、1,000万年に1個消える程度の確率•それでもBACKUPが必要な要件があれば、他のストレージ(GLACIERなど)にBACKUPする
•SQSは標準でMESSAGEの冗長化がされている
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
セキュリティについては、AWSのセキュリティグループにより行う。TIPS・セキュリティグループは、機能サーバ単位で作成すると良い(SG-WEB, SG-AP)
10. セキュリティ * L4レベル(TCP/IP, UDP/IP)の実装とし、必要最小限のPORTのみ通信を許可するようにしてください。 * WEBでI/Fする部分については、HTTPで構いません。(HTTPSの実装は不要です) * 写真投稿サイトに対する、ユーザ単位での認証やアクセス権限の実装は不要とします。ただし、アクセス元のIP制限をかけてください。 * 許可するアクセス元のIPアドレス(会場のWIFIのIP ADDRESS) * 49.133.175.0/24, 119.72.197.0/24
7. 可用性 * 本サービスはダウンタイム0を目標とします。サービス停止が発生した場合は、30分位内を目処に復旧できるようにしてください。
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
✴システムの死活監視は、CLOUDWATCHと統合監視ソフトのZABBIXで監視する✴不具合が発生したインスタンスは、サービスから切り離し、新しいインスタンスを起動させてサービスを復旧させる(不具合の原因調査は、サービスを復旧させてからじっくりと)✴一時的にインスタンスのスペックを増強して、不具合を修正する時間を稼ぐ!
8. 拡張性 * アクセスピーク・オフピークに合わせて、インフラを拡縮小できる構成としてください。 * アクセスピークのタイミングについては、写真のUPLOADについては予測可能(イベント開催時、)であるが、写真投稿サイトへのアクセスのピークは予測困難です。(有名ブロガーに取り上げられ、アクセスが集中する事がままあります)
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
変換リクエストの受け付けについては、インスタンスをELBにより負荷分散させる。スケールアウト・インの判定は、CLOUDWATCHのメトリックを用いて行う。
8. 拡張性 * アクセスピーク・オフピークに合わせて、インフラを拡縮小できる構成としてください。 * アクセスピークのタイミングについては、写真のUPLOADについては予測可能(イベント開催時、)であるが、写真投稿サイトへのアクセスのピークは予測困難です。(有名ブロガーに取り上げられ、アクセスが集中する事がままあります)
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
画像加工処理については、SQSのQUEUEのINPUT MESSAGEの数(=未処理変換クエストの溜まり具合い)により、処理するサーバの台数を増減(スケールアウト・イン)させる。スケールアウト・インの判定は、CLOUD WATCHのメトリックを用いて行う。
8. 拡張性 * アクセスピーク・オフピークに合わせて、インフラを拡縮小できる構成としてください。 * アクセスピークのタイミングについては、写真のUPLOADについては予測可能(イベント開催時、)であるが、写真投稿サイトへのアクセスのピークは予測困難です。(有名ブロガーに取り上げられ、アクセスが集中する事がままあります)
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
写真投稿サイトについては、アクセスのピークが予測困難とのことから、スケールを意識する必要のないS3のWEB配信機能を利用してコンテンツを配信◯補足動的処理が必要な場合は、当該処理のみ冗長化したEC2で処理を行い、静的ファイルをS3から配信するS3は、アクセスログの出力も可能、指定したS3のバケットに出力してくれる
4.ログの保管サーバーノードのWebアクセスログは、後日解析できるように以下に一元的に保管してください。サーバーノードの画像加工処理ログは、以下の条件で出力し保管してください。
Availability Zone -A
Availability Zone -BAuto scaling Group Auto scaling Group
Instance
Instance
Instances
Instances
In-Queue Out-Queue
Elastic LoadBalancing
Elastic LoadBalancing
S3 Bucket
S3 Bucket
S3 Bucket
S3 Bucket
CloudWatch
Template
AWS CloudFormation
Client
変換リクエスト受け付け
画像加工処理
INPUTの写真置き場
DEPLOY CODEの置き場
LOGの置き場
写真投稿サイト配信
各インスタンスに を入れて、直接S3にLOGをUPLOADさせる
WHAT IS THE FLUENTD?✴オープンソースのログ収集ツール✴大規模システムでも採用され、高可用性さを有する