この記事の目的
rubyやPHPでの開発経験やAWSのEC2、RDSの知見を活かして、AWSのLambda,APIGateway,DynamoDBをざっくりと理解する(例ではRuby on Railsで解説)
こんな方に読んでほしい
- RubyやPHPで開発を経験を積んでいるとインフラはAWSの「EC2,RDS」を使用するケースが多い
- 今回、初めてAWSの「Lambda,APIGateWay,DynamoDB」を活用する事になった
- まだエンジニアの経験が浅い為、新しい知識や技術を理解するまで時間がかかる
無駄な前置きはなしにして、結論から!
経験値はこう置き換る
- APIGateWay = Ruby on Railsで言う所のroute.rb
- Lambda = Ruby on Railsで言う所のController(〇〇controller.rb)
- DynamoDB = schema.rb
これだけだとちょっとざっくりしすぎているので、ちょっとだけ深堀りしてみます。
ざっくり深堀
- APIGateWay = 読んで字のごとくAPI(バックエンドの処理の入り口)
Ruby on Railsで言う所のroute.rbですね。Railsをご存じであればGET,POST,PUT,DELETなどのメソッドを定義して、それに紐づくURLが作成されるかと思います。
$ rake routes
ここで生成されるメソッド(GET,POSTなど)とURLがAWSのAPIGatewayで作成できる!といったイメージでしょうか。
- Lambda =APIGatewayで紐づけ&呼び出されて処理実行!
Ruby on Railsで言う所のController(〇〇controller.rb)は以下のコマンドで作成されます。
$ rails g controller Users home
上記コマンドなどで作成されたControllerには「index」の場合の処理、「post」などの処理の【中身】を記述していくかと思いますが、Lambdaにも同様の働きがあります。(これはLambda関数内に定義します。)
- DynamoDB = データベースを格納する倉庫!
これは置き換えるまでもなく分かりやすいかと思いますが、切っても切り離せないので燃ため。
Ruby on Railsで言う所のschema.rbに近い存在かと思います。
rails g migration add_column_to_User
Railsではのmigrationファイルにデータベースの中身(カラム名やデータ型の定義)をしていくかと思いますが、DynamoDBでも似たような働きをします。
終わりに
今回はあくまで簡単な理解の入り口となればと思い記事にしました。
もっと細かな解説をしてほしい!や、いやいや!もうちょっとこういう違いがあるよ!などお気づきの点などあればお気軽にコメントお願いします。
エンジニア募集中
経験が浅くてもいろんなことにチャレンジしたい!そんなエンジニアを募集中です。