1

PostgreSQL データベースと iOS フロントエンドを備えた Django バックエンドに適切な Amazon Web Services セットアップに関して、過去数週間にわたって多くの調査を行ってきました。私はかなりの初心者で、ここでばかげた質問をしているように感じますが、これについてどうすればよいかアドバイスはありますか? 現在、私のセットアップには 2 つのインスタンスが含まれています。

1 つの EC2 インスタンスは、Ubuntu 11.04 を実行する django バックエンド (ラージ インスタンス) 用であり、もう 1 つのインスタンスは、Ubuntu 11.04 を実行する postgresql インスタンス (ラージ インスタンス) 用です。

何ヶ月もの間、私はこのセットアップを 60 人のユーザーによる開発とベータ テストに使用してきましたが、非常に安定しています。つい最近、バックエンドとフロントエンドを完成させ、アプリをアプリストアに提出しようとしています。

承認プロセスの間、本番環境の準備を整え、AWS のセットアップを強化したいと考えています。私のアプリは、ソーシャル写真共有を中心にしています。ユーザーは、ウィッシュ リストに入れたいものの写真を撮り、フォロワーと共有できます。写真はすべてS3に保存されます。

アドバイスをいただければ幸いです。前もって感謝します。

4

4 に答える 4

1

答えは、ダウンタイムの許容範囲とAWSの1か月の予算に大きく依存します。いくつかのポイント:

  • 単一のインスタンスで重要なものを実行しないでください。アプリ層では、Elastic Load Balancerによって負荷が分散された、それぞれが別々のAZにある少なくとも2つのインスタンスを使用する必要があります。

  • Postgresの場合、2つのインスタンスを(これも別々のAZで)セットアップし、レプリケーションを構成します。また、プロビジョニングされたIOPSEBSボリュームとプロビジョニングされたIOPS最適化インスタンスを使用することを強くお勧めします。

  • 間違いなくElasticBeanstalkを調べてください。これにより、自動スケーリングアプリ層の設定が大幅に簡素化され、コードを簡単にデプロイできるようになります。これにより、個別のステージング環境と本番環境を簡単にセットアップできるため、コードをユーザーにロールする前にQ&Aを行うことができます。

  • セキュリティを強化し、ネットワークリソースをより細かく制御するために、VPCを設定することを検討してください。最初の学習曲線は少しありますが、特にDBレプリケーションを設定する場合は、それだけの価値があります。

  • CloudWatchアラームを介してSNSアラートを設定し、問題が発生したときに通知を受け取るようにします。

  • スケールアップする前にスケールアウトしてください。つまり、大きなインスタンスに移動する前に、より多くの小さなインスタンスを使用してください。これにより、自動スケーリンググループでの単一インスタンスの障害の影響が最小限に抑えられます。また、よりきめ細かい自動スケーリングも可能です。アプリケーションのベンチマークを行い、それらが必要であることがわかるまで、大きなインスタンスを使用しないでください。

  • 実際に必要なインスタンスのサイズがわかったら、予約済みインスタンスを購入して、12か月で少なくとも40%節約します。

私はブログでこれらの項目のいくつかについてより詳細に説明します(そして他のいくつかのヒントを提供します)。

于 2013-01-16T06:08:27.397 に答える
1

私は最近、自分の django サイトを AWS にデプロイし始めた開発者です。サーバーは苦手ですが、開発用のマイクロ インスタンスを取得して迅速に進めるために使用するセットアップ プロセスがあります。これらは、サーバーをセットアップするために私が取る手順の一部です: http://yaconiello.com/blog/setting-aws-ec2-instance-nginx-django-uwsgi-and-mysql/ . AWS ラージ インスタンスでまだ行っていないことがある場合にのみリンクします。

あなたのアプリと私のアプリの大きな違いは、postgres を DB として使用していることです。私は PG を使用するアプリを 1 つ作成しましたが、これまでに行った最大のパフォーマンス向上はpgbouncerのインストール/構成でした。PGbouncer は Boss のように接続プーリングを行います。

また、私は aws が大好きですが、S3 の使用をやめて、rackspace の cloudfiles + django-cumulus パッケージを選びました。S3 の boto/storages サポートの一部が気に入らなかった。

于 2013-01-15T05:12:30.310 に答える
0

私はいくつかのプロジェクトで Google App Engine を使用しましたが、それが嫌いでした。AWS は App Engine よりも優れていると聞きましたが、それでも高価です。そのため、Webfaction などを使用したある種の共有ホスティングや専用サーバー ホスティングとは対照的に、クラウドを使用してプロジェクトを軌道に乗せるためにより多くの費用がかかります。トラフィックがクラウドに移動することが正当化される場合よりも、若い Web アプリケーションには Webfaction をお勧めします (ただし、私はそうしません)。

Google App Engine クラウドには、Google も理解していない紛らわしい価格モデルがあり、Webfaction やその他のホスティング プランなどを使用する自由はほとんどありません。

于 2013-01-07T22:02:49.370 に答える