今更ながらAWSの勉強を始めてみた

今更ながらAWSの勉強を始めてみた

おはようございます。

プログラマーになってから、フロントとサーバーを広く浅くかじりながら、なんとか生き残ってこれた身なのですが、「インフラ」というか環境構築という分野には目を瞑りながら生きてきました。

そして現状として今の常駐先に限らず、AWSを使った開発環境での作業が当たり前になってきていることから以下3点の理由でAWSの勉強を始めてみることにしました。

  • 近年主流になりつつある、DevOps系エンジニアというジャンルに参入してみたいと思った。
  • 環境自体に何か問題が起こった時に自分が対処できるようにしておきたいと思った。
  • そもそも「クラウドサーバー」って今まで使ってきた「サーバー」と何が違うのかと言った知識的な部分を習得しておきたいと思った。

現場に常駐するとサーバーは予め立ててもらっていることが大半で、特に触れることなく作業に着手してきたのと、自宅で個人でwebサービスを作ったりする時は「sakura」や「Xserver」といったレンタルサーバーを借りて成果物をアップしてきたきたので、今まで

「環境を意識する」

といったことをしてきませんでした。

ローカル開発環境としてvagrantを使っていたので簡単なapatchの設定やPHPやMySQLのインストールといったことの知識はあるのですが、かなり浅はかなものです。

今回は、勉強を始める前からもっていた疑問について、少し勉強してみてわかったことをまとめたいと思います。

俗に言うレンタルサーバーとAWSを横に並べて比較するものなのかどうか

僕が日常的に身の回りでよく小耳に挟む会話としては「今時、物理サーバーなんて立てずにクラウドで構築した方がいいでしょ」ということを聞きます。

企業に常駐すると、独自にサーバーを管理されていることが大半なので、インフラチームがいて物理的なサーバーを管理されています。

いつも開発環境のことでわからないことがあれば、「インフラエンジニア」に解決してもらったりしているのですが、みているだけでハイスキルで

「参入障壁がかなり高いジャンル」

というイメージがあります。

この点に関して、個人の開発であればレンタルサーバーを借りて成果物をアップするだけなので、

「自分はファイルのアップ場所を管理しているだけ」

という感覚です。

時代の流れ的にはAWSが主流になって来ているのだから、個人でもAWSを使った方がいいのかとも思ったのですが、AWSはポジション的には「インフラエンジニア」の仕事なのではないかと思い、

「気にはなるが手を出したくても出しにくいもの」

というイメージがありました。

もう一つの懸念点としてAWSはサーバーへのアクセス量に応じて課金されていく

「従量課金制」

を採用しているみたいで、仮に意図しない大量アクセスを仕込んでしまい多重課金が発生した場合に個人にその請求が来てしまうというのは大きなリスクではあります。

実際に過去にそのような意図しないアクセスを仕込んでしまう事例はあるようで、結果的に膨大な請求額が送られてきた人がいるのも事実のようです。

この点に関して、レンタルサーバーであれば決められた月額使用料で決められた物理空間を間借りしてシステムを構築するので、使用ユーザーにはある程度の制限が設けられていて、

「意図しない請求額が発生することはまずない」

と考えて問題ないと思います。

なので総じると、AWSとレンタルサーバーは横に並べて比較するものではなく、AWSを扱うということは、レンタルサーバーで管理しているところよりもっと大きな部分を操作することになるのだと解釈しました。

そして、環境構築に関して大きな視点で操作できる分それなりにリスクが備わっているものとも考える必要があると思いました。

環境構築に関して大きな視点で操作できるようになることのメリットは何か?

AWSを知った当初、

「クラウド上に構築できるLinuxサーバーのようなもの」

という考えを持っていたのですが、AWSはどうもそんなちっさい定義ではないようで、「サーバー」はあくまでAWSが担う「リソース」というサービスの本の1部であることがわかりました。

その他の「リソース」として、「ストレージ」「データベース」「アクセス管理」「ログ管理」「バッチ」などあげだすとキリがないほど無数のリソースが存在していてそれらのリソースを組み合わせて独自のクラウド環境を構築できるものと考える方が正しいようです。

これらのワードからやはり

「システムの環境を構築できるサービス」

ということに間違いはなさそうですが、これらは従来、

「インフラエンジニア」とか「ネットワークエンジニア」

と呼ばれるジャンルの人が一からオンプレミスで構築されるものといったイメージでした。

ここでクラウドサービスとして登場したAWSを使うと、「インフラ」や「ネットワーク」に対して網羅的な知識を持たなくても、サービスが提供してくれている「リソース」を設計要件に合わせて取捨選択することで、今までよりはるかに低コストでシステムの環境が構築できるようになったようです。

企業としては社内で使うシステムにしても、外部に打ち出すサービスにしてもいち早く、低コストで運用を始められる環境が欲しいという要望が多いため、

「イニシャルコストを抑えてシステムの運用を開始する」

ことに着目した結果、AWSを採用する件が増えているようです。

なので業界全体を見通してAWS構築案件の需要が高まっていてAWSエンジニアと呼ばれるジャンルが提唱されるようになったそうです。

AWSの未経験のエンジニア視点からAWSを勉強するメリットとしては上記で挙げたような需要が背景にあるので、今後業界的に求められるスキルの一つとして目をつけておく価値があるのではないかと思いました。

まとめ

AWSについてまだ概要を少しかじった程度の状態ではありますが、自分の中でどういう目的を持って勉強するかはある程度定まりました。

まず、明らかなのは今後の自分個人の成果物をレンタルサーバーと同義で考えてアップする場所として利用は考えません。

「従量課金制」は目に見えないリスクがあるようで一般公開したサービスを野放しにできないので個人利用はしないでおこうと思いました。

そして、対企業と向き合う時の自分を売り込むための一スキルとしてAWSを習得しておこうと思いました。

今後AWSは業界的な需要が高まっていく想定なので、

「AWSでの環境構築もできます」

はかなり武器になるなと思いました。

コメントを残す