Your SlideShare is downloading. ×
AWS Hackathon 模範アーキテクト
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

AWS Hackathon 模範アーキテクト

704

Published on

2013/09/10に開催した、学生向けイベントAWS Hackathon( http://hackathons.doorkeeper.jp/events/4972 )でご紹介した、模範アーキテクト(解答)です。

2013/09/10に開催した、学生向けイベントAWS Hackathon( http://hackathons.doorkeeper.jp/events/4972 )でご紹介した、模範アーキテクト(解答)です。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
704
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 模範アーキテクト AWS HACKATION
  • 2. アーキテクトの特徴 CLOUD DESIGN PATTERNを組み合わせた、基本に沿った構成 にしています システムの可用性を向上させるため、処理単位ごとに機能を独 立し、疎結合なアーキテクトにしています 想定される負荷に沿ったシステム拡縮小の対策を講じています なるべく既存のサービスやOSSを組み合わせて、スクラッチ開 発をしない構成にしています
  • 3. システムアーキテクト図 Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信
  • 4. CDPの適用場所 Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 SCALE OUT SCALE OUT WEB STORAGE QUEUING CHAIN BOOT STRAP LOG AGGREGAT ION STACK DEPLOYME NT
  • 5. 処理フロー Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 ①REQUEST ③キューを取得 ④写真をS3から取得 ⑤加工してS3へ保存 ②キューに格納 ⑥配信
  • 6. Infrastructure as code!! 各インスタンスは、定められたStatusに従い、起動時に自動的にセットアップ が完了した状態で立ち上がる Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing 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...
  • 7. 1. Backup ◦ 障害時にシステムが復旧できるように、環境のBackupを取得してください。 Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing 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の冗長化がされている
  • 8. Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing 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
  • 9. 7. 可用性 * 本サービスはダウンタイム0を目標とします。サービス停止が発生した場合は、30分位内を目 処に復旧できるようにしてください。 Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 ✴システムの死活監視は、CLOUDWATCHと統合監視ソフトのZABBIXで監視す る ✴不具合が発生したインスタンスは、サービスから切り離し、新しいインスタン スを起動させてサービスを復旧させる(不具合の原因調査は、サービスを復旧さ せてからじっくりと) ✴一時的にインスタンスのスペックを増強して、不具合を修正する時間を稼ぐ!
  • 10. 8. 拡張性 * アクセスピーク・オフピークに合わせて、インフラを拡縮小できる構成としてください。 * アクセスピークのタイミングについては、写真のUPLOADについては予測可能(イベント開催 時、)であるが、写真投稿サイトへのアクセスのピークは予測困難です。(有名ブロガーに取り上げ られ、アクセスが集中する事がままあります) Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 変換リクエストの受け付けについては、 インスタンスをELBにより負荷分散させる。 スケールアウト・インの判定は、CLOUDWATCHのメトリッ クを用いて行う。
  • 11. 8. 拡張性 * アクセスピーク・オフピークに合わせて、インフラを拡縮小できる構成としてください。 * アクセスピークのタイミングについては、写真のUPLOADについては予測可能(イベント開催 時、)であるが、写真投稿サイトへのアクセスのピークは予測困難です。(有名ブロガーに取り上げ られ、アクセスが集中する事がままあります) Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 画像加工処理については、 SQSのQUEUEのINPUT MESSAGEの数(=未処理変換ク エストの溜まり具合い)により、処理するサーバの台数を 増減(スケールアウト・イン)させる。 スケールアウト・インの判定は、CLOUD WATCHのメトリ ックを用いて行う。
  • 12. 8. 拡張性 * アクセスピーク・オフピークに合わせて、インフラを拡縮小できる構成としてください。 * アクセスピークのタイミングについては、写真のUPLOADについては予測可能(イベント開催 時、)であるが、写真投稿サイトへのアクセスのピークは予測困難です。(有名ブロガーに取り上げ られ、アクセスが集中する事がままあります) Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 写真投稿サイトについては、 アクセスのピークが予測困難とのことから、スケールを意 識する必要のないS3のWEB配信機能を利用してコンテン ツを配信 ⃝補足 動的処理が必要な場合は、当該処理のみ冗長化したEC2で処理を行い、静的フ ァイルをS3から配信する S3は、アクセスログの出力も可能、指定したS3のバケットに出力してくれる
  • 13. 4.ログの保管 サーバーノードのWebアクセスログは、後日解析できるように以下に一元的に保管してください。 サーバーノードの画像加工処理ログは、以下の条件で出力し保管してください。 Availability Zone -A Availability Zone -B Auto scaling Group Auto scaling Group Instance Instance Instances Instances In-Queue Out-Queue Elastic Load Balancing Elastic Load Balancing S3 Bucket S3 Bucket S3 Bucket S3 Bucket CloudWatch Template AWS CloudFormation Client 変換リクエスト 受け付け 画像加工処理 INPUTの 写真置き場 DEPLOY CODE の置き場 LOG の置き場 写真投稿サイト 配信 各インスタンスに を入れて、 直接S3にLOGをUPLOADさせる
  • 14. WHAT IS THE FLUENTD? ✴オープンソースのログ収集ツール ✴大規模システムでも採用され、高可用性さを有する

×