フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

Amplifyチュートリアルやって感動した(恐ろしくなった)

f:id:lirlia:20210707013059p:plain

dev.classmethod.jp

これを参考に自分でも手を動かしてやってみました。

ついこの間、Go+Gin+VueでTodoアプリを作ってみたのでチュートリアルもTodoで違いわかるなーと思いながら挑戦しました。その結果わかったことは「Amplifyえげつない」ということですね。

個人的にすごいなと思ったのは

  • DBやホスティング、APIについてほとんど気にする必要がないこと
  • 認証も2〜3行コードを書けばすぐに実装できること(OAuthがどうだとか知らなくても行ける)

まとめると「フロントエンドだけわかればすぐにリリースできる度合いがすごい」ですね…。時代はここまで進んでいるのか。これを体験してしまうと(プロダクションレディかどうかはさておき)アイデアのみでぱっとアプリを作るのは本当に手軽にできる時代になりましたね。。。

コアコンピタンスだったり、既存のデータや顧客基盤だったり、スピード感をとにかく重視していかないと立ち上がりだけだととても差別化できないですね…。

1インフラエンジニアとしての付き合い方

ちょっといままで自分が理解して設計して構築してきたフェーズがまるごとぶっとばされているので、正直「おおう」という感じです。もちろん裏側の仕組みをしっかり知っておくことで、障害解析やもう少しちゃんとしたサービスの運用には使えますし、高難易度の設計にも対応できるのですがこの世界観はすごいな…。

またこれができると初心者でもそれっぽいのがすぐに作れるので非技術職の方からすると、「GraphQLや認証まわりちゃんとやってます!」って言われたときにそれだけで○にしてしまいそうなので注意ですかね。

自分がどのフィールドで戦っていくのか?という話を今一度考えないといけないですね。


仮にフルスタックエンジニアと呼ばれる人間になったとしても勤務先が、受託開発なのかSESなのか、自社開発なのか、はたまたすごいでかいサービスなのか、スタートアップなのか、まだアプリがないのか、成長中なのか、クロージングや移行なのか状態によってスピード感やスキルが全く変わります。

インフラエンジニアがプログラミングを覚えて一通りできます!となったとしても、ローコードやノーコード、今回のAmplifyなどを使ったやり方を知らないとスピード感が全くついてこないです。

一方でそれらのツールだけ詳しくなっても、tcpdumpは作れないですし、NetflixのようなEC2の細かいチューニング力もつかないでしょう。

書いていてフッと気づいたのは、自分が今後生きていく領域においてスピード感というものがどの程度求められるのか?を技術を習得するかどうかをジャッジする1つの要素として考えたほうがよさそうです。

例:要するに重厚なシステム担当するときにAmplifyは絶対使わない。だから勉強をしないという判断をするという感じ。(時間があるならやれば良い)

Amplifyから学べたこと

  • DB、DB操作、API、ホスティング、認証などについては開発者にとっては面倒い作業なのでできる限り自動化、コマンドの操作で制御できるようにしてあげると嬉しい
  • AWSのいろんなサービスをどのように使うべきか?そもそも何があるのか?について選択肢を用意してあげると選ぶだけですむ。なので開発者と話をする場合には要件ヒヤリングだけではなく、こういうのが一般的ですという雛形を示すのがよい
  • また上記の雛形はWell-Known-AchitectなのでAWS推奨だし、熟考されたものなので他のクラウドでもサービスさえあれば転用可能