Now we’re going to try something a bit more complicated. We’re going to store the packages in S3 and cache the package index in DynamoDB.
Follow the same installation instructions as before.
If you have not already, create an access key and secret by following the AWS guide
The default configuration should work, but if you get permission errors or 403’s, you will need to set a policy on your bucket.
This time when you create a config file (
ppc-make-config -t server_s3.ini),
S3 when it asks where you want to store your packages. Then add the
following configuration (replacing the
<> strings with the values you want)
pypi.fallback = redirect pypi.db = dynamo db.region_name = <region> pypi.storage = s3 storage.bucket = <my_bucket> storage.region_name = <region>
Since you’re using AWS services now, you need credentials. Put them somewhere
that boto can find them.
The easiest method is the
environment variables, but you can also put them directly into the
server_s3.ini file if you wish (see dynamo and
Now you can run
pserve server_s3.ini. On the first run it should create the S3
bucket and DynamoDB tables for you (you may need to tweak the provisioned
capacity for the DynamoDB tables, depending on your expected load).
If you uploaded any packages to the first server and have them stored locally,
you can migrate them to S3 using the
ppc-migrate server.ini server_s3.ini