Ends in
00
days
00
hrs
00
mins
00
secs
SHOP NOW

Practice Test + eBook Bundle Sale - Buy our Practice Test and get the supplementary eBook at 50% OFF

Find answers, ask questions, and connect with our
community around the world.

Home Forums AWS AWS Certified Solutions Architect Professional Category: CSAP – Design for New Solutions

Tagged: ,

  • Category: CSAP – Design for New Solutions

  • VG-AWS

    Member
    June 7, 2020 at 9:02 pm

    11. QUESTION

    Category: CSAP – Design for New Solutions

    You are working as an AWS Developer for a mobile development company. They are currently developing new android and iOS mobile apps and are considering storing the customization data in AWS. This would provide a more uniform cross-platform experience to their users using multiple mobile devices to access the apps. The preference data for each user is estimated to be 50KB in size. Additionally, 3 million customers are expected to use the application on a regular basis, using their social login accounts for easier user authentication.

    How would you design a highly available, cost-effective, scalable, and secure solution to meet the above requirements?

    I think, the answer should be: because they are asking “cost-effective”

    Have the user preference data stored in S3, and set up a DynamoDB table with an item for each user and an item attribute referencing the user’s S3 object. The mobile app will retrieve the S3 URL from DynamoDB and then access the S3 object directly utilizing STS, Web identity Federation, and S3 ACLs.

  • TutorialsDojo-Support

    Member
    June 8, 2020 at 7:14 pm

    Hello vipul-gupta,

    Thank you for your feedback.

    The answer to this question is “Set up a table in DynamoDB containing an item for each user having the necessary attributes to hold the user preferences. The mobile app will query the user preferences directly from the table. Use STS, Web Identity Federation, and DynamoDB’s Fine Grained Access Control for authentication and authorization” because it ticks all the boxes for being functionally viable and cost-effective.

    The scenario requires that scalability which DynamoDB provides, where you will store user preferences. This approach uses federated access using Web Identity Provider, and uses fine grained access privileges for authenticating the access.

    “Have the user preference data stored in S3, and set up a DynamoDB table with an item for each user and an item attribute referencing the user’s S3 object. The mobile app will retrieve the S3 URL from DynamoDB and then access the S3 object directly utilizing STS, Web identity Federation, and S3 ACLs.” is incorrect. Although, this approach is possible, accessing the data via S3 would be slower compared to DynamoDB. Best practices for storing user preferences is on a database system such as RDS or NoSQL system such as DynamoDB.

    You can check this link for more information: https://developer.amazon.com/blogs/appstore/post/TxZR5F5K6QINFQ/storing-user-preference-in-amazon-dynamodb-using-the-aws-sdk-for-android

    Regards,

    Kenneth Samonte @ Tutorials Dojo

  • VG-AWS

    Member
    June 8, 2020 at 7:57 pm

    cost-effective is one of the requriment too… so why it can’t be via S3.

  • VG-AWS

    Member
    June 10, 2020 at 3:07 am

    Thanks…

    but question is not asking any perofrmance boost –

    How would you design a highly available, cost-effective, scalable, and secure solution to meet the above requirements?

  • VG-AWS

    Member
    July 17, 2020 at 8:23 am

    Can you please reply to my last question?

    But question is not asking any performance boost –

    How would you design a highly available, cost-effective, scalable, and secure solution to meet the above requirements?

    …?

  • TutorialsDojo-Support

    Member
    July 17, 2020 at 1:52 pm

    Hi VG-AWS

    We follow the best practices base on the given scenario that the user preferences should be stored on DynamoDB. https://developer.amazon.com/blogs/appstore/post/TxZR5F5K6QINFQ/storing-user-preference-in-amazon-dynamodb-using-the-aws-sdk-for-android

    https://aws.amazon.com/blogs/database/how-to-create-a-fast-and-globally-available-user-profiling-system-by-using-amazon-dynamodb-global-tables/

    Also, pricing for DynamoDB is cheaper compare to S3. On S3, beside paying to the storage, you will also pay pero request that you make.

    DynamodDB:

    Write request units $1.25 per million write request units

    Read request units $0.25 per million read request units

    S3:

    PUT, COPY, POST, LIST requests (per 1,000 requests) – $0.005

    GET, SELECT, and all other requests (per 1,000 requests) – $0.0004

    https://aws.amazon.com/dynamodb/pricing/on-demand/

    https://aws.amazon.com/s3/pricing/

    So you for this scenario wherein you will need to store and retrieve user preferences several millions of times, it is better to use DynamoDB, performance wise and cost wise.

    Regards,

    Kenneth Samonte @ Tutorials Dojo

Viewing 1 - 6 of 6 replies

Log in to reply.

Original Post
0 of 0 posts June 2018
Now