I want 10 million requests handle concurrently.Does AWS lambda is capable of that as they mentioned only 100 concurrent request as AWS lambda Limits?
Inside the AWS Console navigate to the Support Center. Here you can create a Service Limit Increase for AWS Lambda concurrent executions.
However I don't think they will instantly raise your limit that high. Last time I requested an increase from 100 to 5000 it took some discussion and they wanted the following information:
In the end we agreed on 2000, which was fine for my usecase. But they definitely don't blindly accept any request because of course they need to make sure that the requested resources are available at any time.
The support mostly answers within 24h, so if you are lucky the raise may take place in 1-2 days. In my case it took 5-6 days because of the discussion.
AWS has many regions, lambda has services over 20+ regions. Every region is totally isolated with others. Are your 10 million concurrencies in one region or globally?
If it's globally, the best practice for you is to distribute your service into regions first.
After distributing your service load into 10 regions, each region still gets 1 million concurrencies. You will need to contact AWS cloud support team for the limit increase(even if you are a customer with much smaller concurrency, you should already have a special contact from cloud support to answer your questions)
Depending on your use case, if you can support either fire-and-forget or some means of a callback, since you are using API Gateway it is possible to have API Gateway write your request to Kinesis and then you can have a Lambda function that processes the Kinesis stream. A single stream with a single shard can handle 1000 writes (or 1mb) per second. You can scale out by increasing the number of shards and not have to worry as much about the lambda concurrency limit.
That said, API Gateway is also limited to 1000 transactions/second. Lambda through API Gateway may not be suited to your use case of 10 million concurrent transactions - which isn't the same as 10 million per second. But Lambda could still be used to process events pushed through DynamoDB, Kinesis or some other event source directly supported by Lambda.