20110406aws accenture

1,537
-1

Published on

0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,537
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

20110406aws accenture

  1. 1. オリンパス様事例にみる、 クラウドでシステム開発・運用の勘所 アクセンチュア株式会社Copyright © 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
  2. 2. システム紹介 -1- Copyright © 2011 Accenture All Rights Reserved.
  3. 3. サービス概要本システムは、ユーザがデジタルカメラで撮った写真を、PCアプリケーションやPC上からブラウザを使ってWebにアップロードし、Web上で見たり共有したりプリントに利用できるBtoCサービスを提供しています。2011年4月時点で、日本とアメリカにサービスを展開しています。 PCアプリケーション デジタルカメラデジタルカメラで撮った PC上の写真を、アプリ写真を、USB経由でPC ケーション、ブラウザで上の専用アプリケーショ Web上にアップロードンに登録 URL : http://www.ibonthenet.com Webアプリケーションの主な機能 保存 写真をWeb上にアップロード。ユーザは写真を蓄積するストレージとして利用可能 ビュー Web上に蓄積されている写真を、PCアプリケーション・ブラウザ・携帯電話(日本)で参照 共有 写真にコメントをつけて家族、友達、スポーツチームといった他人と共有。非会員にメールで写真を公開も可能 プリント ユーザがアップロードした写真で、フォトブック、フォトプリントを編集、注文 Webアプリケーションで提供する全体機能を、Amazon Web Serviceの基盤上に構築しています。 -2- Copyright © 2011 Accenture All Rights Reserved.
  4. 4. 基盤としてAWSを選んだ背景プロジェクト開始当時、主に以下のベンダーがクラウドサービスを提供していました。今回のシステムでは、カスタムで開発する範囲が多く、ある程度自由に開発できることが必要と考え、HW以外をカスタマイズできるAWSを採用しました。 SaaS PaaS IaaS Service Cloud 2 Force.com Google Apps Windows Azureク CRM専用 開発範囲 開発範囲ラ サービスウ 開発範囲 API API APIド (.Netベース)サ 開発範囲ー SDK SDK SDKビス Software Software Software Software Server Server Server Server Server NW NW NW NW NW CRMに特化したサー Salesforce.comのプ Google上で提供して Microsoftのプラットフ Server上のOSで動く ビスを提供しているた ラットフォームを利用 いるWebサービス機 ォームを利用して、シ ソフトであれば全て利 め、CRMに限れば短 して、システムを構築 能のAPIを活用可能。 ステムを構築可能。 用可能。特 期間で構築可能。 可能。 ただし、開発言語は 但し、現時点ではサ 従って開発自由度が徴 Salesforce.comが提 PythonとJavaのみで ービス提供がされて 高く、機能的な制約が 供するAPIを利用した 開発自由度が低い。 おらず、2009年秋頃 少ない。 開発が可能。 からサービス稼動 本プロジェクト採用 -3- Copyright © 2011 Accenture All Rights Reserved.
  5. 5. システム構成 -4- Copyright © 2011 Accenture All Rights Reserved.
  6. 6. Webアプリケーションシステムサマリー本システムは、AWS US Westリージョンでインスタンスを起動し、WAS、DBサーバをスケールアウトができるように構築しています。現在、本番環境では、14の64bitインスタンスを利用しています。 Notes A ・・・Operation Agent DNS 外部のDNSサービスを利用 M ・・・Operation Manager C C ・・・Operation Client Mail 外部のメールサービスを利用 運用端末ユーザ( 日本/US ) A Operation PC DB #1 Client A (Master) M ネ 運用サーバ ッ WAS #1 ト A ワ Load A DB #2 ー WAS #2 Storage(EBS) Balancer (Slave) ク A 携帯電話 基 盤 WAS #3 A DB #3 Backup ・ Scale out ・ (Slave) Storage(S3) ・ ・ Scale out ・ Cloud Front ・ I/F接続サーバ 外部システム 分析機能 (外部システム) -5- Copyright © 2011 Accenture All Rights Reserved.
  7. 7. プロジェクト開始後にAWSで提供された機能プロジェクト開始当時には、いくつかの機能がまだAWSから提供されておらず、代替の方法やソフトウェアを使ってシステムを構築しました。AWS上で新規にシステムを構築する場合、AWSからどのような機能が提供されているかを確認してから、AWSにないが、システム上必要となる機能をどのように実装するかを検討する必要があります。 項目 AWS提供機能 現在の実装 DNS Amazon Route 53 外部サービスを利用 メール Amazon Simple Email Service 外部サービスを利用 VPN Amazon VPC Open VPNを利用 ロードバランサ Elastic Load Balancing Apacheのmod_proxy_balancerを利用 システム監視をして、リソースが閾値を超えたら Auto Scaling Auto Scaling サーバを手動で追加 -6- Copyright © 2011 Accenture All Rights Reserved.
  8. 8. システム全体アーキテクチャ 本システムは、AWSが提供しているOS、ソフトウェアを使ってシステム基盤を構築し、その上でアプリケーションを開発してい ます。 Presentation Function Data フロント 画面系 コントロール アプリケーション I/F 外部システムI/F Java 外部連携(XML) 外部 JSP システム ShellPCアプリ HTML Java SA-Struts DB処理 トランザクション管理 Database Apache JavaScript SQL S2DAOブラウザ 共通ファンクション SSL Seasar2 Cloud Front MySQL携帯電話 Infrastructure Red Hat JBoss Java SE/ Java EE Enterprise Linux Platform Amazon EC2 and S3 Notes: :Business application :Common function :System infrastructure on Cloud (Amazon ) -7- Copyright © 2011 Accenture All Rights Reserved.
  9. 9. クラウド環境での開発 -8- Copyright © 2011 Accenture All Rights Reserved.
  10. 10. 開発時におけるシステム開発・テスト環境プロジェクト開始当初、開発はローカルサーバに統合開発環境を構築し、システムテストからAWS上に構築した環境でテストを実施しました。開発・テストは従来のやり方と同じです。 開発環境 検証環境 本番環境ローカルサーバー Storage Storage Amazon S3 Amazon S3 バージョン管理 Database Server Database Server ローカル環境では、 検証環境でテストが 開発から結合テスト Application Server 完了したプログラム Application Server WAS/DB を本番環境へ移送 までを実施。結合テ ローカル環境 JBoss JBoss ストが完了したら、 検証環境へプログラ ムを移送 Web Server Web ServerEclipseによるローカル Apache 統合開発環境 Amazon EC2 Amazon EC2• Eclipse• JDK• JUnit• Ant ブラウザ PCアプリ ブラウザ PCアプリ -9- Copyright © 2011 Accenture All Rights Reserved.
  11. 11. グローバル開発拠点からのアクセス開発・テストをするメンバーの拠点が散らばっていたため、全拠点からアクセスするのに、パフォーマンスを考慮して、USWestにあるインスタンスを利用しました。各拠点からのアクセスの設定、制御は容易に行うことができました。 中国 アメリカ 韓国 日本 インド - 10 - Copyright © 2011 Accenture All Rights Reserved.
  12. 12. プログラムのバージョン管理ローカルの開発環境下にSubversionでバージョン管理用のリポジトリを構築し、テスト、本番環境への移送モジュールをBuildしてから、必要なファイルをAWS上の環境に移送しています。 開発環境 検証環境 本番環境 Javaプログラム WAS WAS アプリ アプリ Build 移送資源 ケーション ケーション Java Build プログラム Configuration Build configuration Configuration Configuration 移送 Configuration Configuration データ Server WAS configuration ベース Configuration SQL Database Configuration Configuration configuration Database resources開発が進むにつれて、移送時にローカル環境から大容量のファイルをAWS上に転送する必要があり、アップロードに時間がかかりました。アクセス速度が速いAWS東京上にリポジトリを構築すれば、移送時間を短縮して行えます。 - 11 - Copyright © 2011 Accenture All Rights Reserved.
  13. 13. 開発環境の移設ローカル環境での移送ファイルが大きくなることを解消するために、ローカルサーバの環境をAWS上に移設しました。 開発環境 検証環境 本番環境 Amazon EC2 Storage Storage Amazon S3 Amazon S3 バージョン管理 Database Server Database Server ローカル環境では、 検証環境でテストが 開発から結合テスト Application Server 完了したプログラム Application Server WAS/DB環境 までを実施。結合テ を本番環境へ移送 JBoss JBoss ストが完了したら、 検証環境へプログラ ムを移送 Web Server Web ServerEclipseによるローカル Apache 統合開発環境 Amazon EC2 Amazon EC2• Eclipse• JDK• JUnit• Ant Browser PCアプリ Browser PCアプリ - 12 - Copyright © 2011 Accenture All Rights Reserved.
  14. 14. 開発時の注意点-EBSとS3のディスクの速度の違いEBSとS3では、ファイルを読み書きするためのディスクの速度が違うため、最初にEBSにファイルに書いて、非同期でS3に書き込んで、通常処理はEBS上のファイルで行っています。☆書き込み速度の違い S3 EBS実測値で、EBSへのファイルの読み込み、書き込みの方がS3よりも約8倍~30倍程度速いので、書き込み時は最初EBSに書いて、参照でよく Read速度 16M/s 100M/s利用するファイルをそのままEBSに格納し、他のファイルを非同期でS3に書いています。 Write速度 16M/s 100-400M/s WASインスタンス End user 処理であまり使わないファイ ルを非同期でS3に書き込み PC ファイル EBS S3 アップロード ファイルを EBSに書き 込み ファイル ダウンロード EBS上のフ ァイルを読 み込み - 13 - Copyright © 2011 Accenture All Rights Reserved.
  15. 15. 開発時の注意点-AWSで開発・テスト環境の構築AWSのインスタンスが簡単に短時間で準備できるため、テスト時には環境利用の時間的制約やシステム制約を回避するために、テスト環境を乱立させがちになります。それぞれの環境の用途と構成管理のコントロールが重要になります。 # 環境 用途 主担当 1 結合テスト環境 機能関連系の検証 アプリT 2 トレーニング環境 コールセンターオペレータのトレーニング、動作確認 CS 3 PCアプリI/F環境 PCアプリケーションとのIF連携検証 アプリT 4 他社I/F検証環境 他社システムとのI/F機能検証 各対向システム担当 5 UI検証環境 画面のUI、ユーザビリティ検証 デザインT 6 統合テスト環境 ユーザ操作シナリオの正常動作確認 アプリT 7 脆弱性テスト環境 OS/NW/アプリケーションのセキュリティ、脆弱性確認 基盤T 8 パフォーマンステスト環境 各画面の応答時間、高負荷時の動作、限界性能の確認 アプリT 9 End to Endテスト環境 外部システムとの統合連携確認 各対向システム担当 10 運用テスト環境 運用フローの正常性確認 運用担当 11 受入テスト環境 受入テスト実施 クライアント - 14 - Copyright © 2011 Accenture All Rights Reserved.
  16. 16. クラウド環境でのシステム運用 - 15 - Copyright © 2011 Accenture All Rights Reserved.
  17. 17. 運用管理・監視項目Amazon Cloud Watchで参照できるHWリソースの監視項目に加えて、プロセス監視、アプリケーションのログ管理(Exception監視)、ジョブ管理を行うため、独自で運用機能を構築しています。 カテゴリ 項目概要 実施項目 CPU使用率 CPU使用率(idle、user、sys)を取得 CPU情報 ロードアベレージ 直近1、5、15分間のロードアベレージを取得 Cloud Watch 仮想メモリ使用率 仮想メモリに関するメモリ使用率を取得 メモリ情報 実メモリ使用率 実メモリに関するメモリ使用率を取得 で 可 能 デバイス別ディスクI/O回数 デバイス単位のディスクI/Oの読み取り/書き込み回数を取得 ディスク情報 デバイス別ディスクI/O量 デバイス単位のディスクI/Oの読み取り/書き込み量(バイト/S)を取得 ファイルシステム使用率 マウント位置単位のファイルシステム使用率を取得 プロセス監視、 プロセスの稼動監視 利用しているソフトウェアが稼動していることを監視 ポート監視 ポートの監視 ソフトウェアが利用しているポートがOpenとなっていることを監視 独 自 アプリケーション アプリケーションレベルのExceptionをモニタリングして、Exception発生 に 例外監視 実 ログ監視 時に運用担当者にメールで通知 装 ジョブのスケジューリング ジョブスケジュール ジョブ管理 ジョブの実行状況を取得し、エラーとなった場合に運用担当者にメール ジョブ実行管理 で通知 - 16 - Copyright © 2011 Accenture All Rights Reserved.
  18. 18. システム監視方法 すべてのシステム状況が監視できるように、Amazon Cloud Watchと並行して運用端末で管理コンソールを使った監視を実施し ています。リソースが閾値を超えた場合や、エラーを検知した場合には、画面にアラート表示とメールの通知を行っています。 システム監視構成図(一部) 管理画面イメージ 1 Mail WAS Agent 1 2 DB(Master) Operation Amazon インターネット S3 Agent Manager 3 1 Operation DB(Slave) RDP 運用端末 Client Agent1. 監視対象サーバにSNMPエージェントをインストールし、プロセ ス監視、ログ監視、HWリソース監視、ジョブ管理結果を Operation Managerへ送信2. 監視対象のインスタンスからポーリング、SNMPエージェントよ り定期的に情報を取得3. GUIでOperation Managerで保持しているサーバの状態を表示 - 17 - Copyright © 2011 Accenture All Rights Reserved.
  19. 19. バックアップ概要システムでは、AWSが提供するバックアップ方式に加えて、障害発生に備えて、システム独自でのバックアップ方式を採用しています。 バックアップ方式 バックアップ対象 実行方法 バックアップデータ格納場所 OS情報(モジュール、ライブラリ、設定ファイル等) 各ソフトウェア情報 cron AMIによる -Apache、JBOSS、MySQL、Operation 及び Amazon S3 バックアップ -Webアプリケーション 運用担当者AWS OSおよび各ソフトウェア、Webアプリケーションパラメータ値提供 Amazon S3に格納している全ファイル cron RAID1による -RAID1(ミラーリング)構成を組んでいるため、自動的にバックアップ 及び 他サイトのAmazon S3 バックアップ を取得 運用担当者 ユーザデータ情報 Amazon EBS -ユーザがアップロードした画像ファイル、サムネイル (画像のみ) アプリケーショ ログファイル ンによるバック cron -OS独 アップ Amazon S3 -各ソフトウェアおよびWebアプリケーション自 -アプリケーションログ (ログファイル)に実装 レプリケーショ DBデータ ンによるバック MySQL DB Slaveサーバ -MySQLによるMasterからSlvaeへのDBデータコピー アップ - 18 - Copyright © 2011 Accenture All Rights Reserved.
  20. 20. セキュリティ対策AWSのインスタンス上でのサーバの設定と、セキュリティソフトウェアを組み合わせることによって、これまでWebサービス向けに実施してきた脆弱性検証で担保するのと同等のセキュリティを持ったシステムを構築しています。 Notes 8 ウイルスチェックソフトのインストール N AWSの機能 9 セキュリティパッチの適用 N 独自で開発した機能 5 Firewallによるアクセス制限 10 仮想サーバのアカウント管理 6 Firewallによる接続数制限 11 ログ証跡 1 http通信をSSL で暗号化 PCアプリ 12 IDS(Snort)による不正アクセスの監視 運用サーバ LB インターネット 外部IP Firewall ブラウザ 13 SQLインジェクション検知 内部IP Web/APサーバ 14 クロスサイトスクリプティング 15 パラメータチェック 携帯電話 DBサーバ ストレージ 7 (S3) 2 SSHによるアクセス 運用端末からアク 16 DBサーバにアクセスするIPアド セスするIPアドレス レスの制限 の制限 3 ParosProxyによる 脆弱性のチェック I/Fサーバ 4 VPN用認証キー の配布 外部サーバ 運用端末 - 19 - Copyright © 2011 Accenture All Rights Reserved.
  21. 21. 今後の検討 - 20 - Copyright © 2011 Accenture All Rights Reserved.
  22. 22. サービス展開に合わせたインスタンスの配置グローバルにサービスを展開していく場合、パフォーマンス、コスト、コンプライアンスの観点を考慮し、それぞれの地域でどこの国にあるインスタンスを使うか、あるいはインスタンスを1箇所に統合すべきかを検討する必要があります。 サービス提供地域(現在) 今後のサービス提供予定地域 US 日本 アジア ヨーロッパ オセアニア 南米 ・・・ US East US West Web/AP Web/AP US Westのインス タンスのみを利用 DB DB し、全サービスを シンガポール? EU? ? ? 実装 Storage Storage (S3) (S3) ネットワークの速度を考慮すると、日本はAWS東京 サービス提供地域に応じて、どの地域にあるAWSインスタンスを使え を使うことを検討。US Westと比較して、AWS東京を ば、パフォーマンス面、コスト面安いか、コンプライアンス面で問題が 使った場合、アップロードは約3倍、ダウンロードは約 ないかを検討し、最終的にどこのリージョンを使うのが最もよいかを決 8倍ネットワークが高速 定 - 21 - Copyright © 2011 Accenture All Rights Reserved.

×