仕事でAWSを使うように言われているけど、何から勉強したらいいかわからない。
調べてみたらサービスがたくさんありすぎて、どうしたらいいかもわからない。
何かおすすめの勉強方法はあるのかな。
こういったお悩みを解決します。
■本記事の内容
本記事で以下の内容をお伝えします。
- 私が行ったAWSの学習方法
- AWSを利用する上で注意点を学習しておく
- AWSを学習する上で主要サービスを知ること
■本記事の信頼性
この記事を書いている私は、プログラミングを仕事として始めて10年以上経ちます。
今も現役のシステムエンジニアとして仕事をしています。
AWSを学習しはじめて3年以上経ち、実際にシステム開発を行って本番リリースした経験もあります。
AWSの学習をはじめようと思われている方向けの記事になります。
AWSはたくさんサービスがあり、未経験者の方が学習しようとすると何から手を付けたらいいか分からないと思います。
私自身もはじめてAWSの案件に携わったときは、まったく同じ状態でした。
そんな私が、今ではAWSのアーキテクチャの設計、実際に構築も含めシステムを本番リリースまでできるようになりました。
同じように経験されている方向けにAWSを学習する上でのおすすめの勉強方法を、私の経験も踏まえ説明していきます。
私が行ったAWSの学習方法
私が実際に行っていたAWSの学習方法を書いていきます。簡単に3つに絞っています。
順に進めていけば概ねの内容は理解できるかと思います。
学習方法①:AWSとは?クラウドとは?
私自身、当初クラウド自体どういったものかあまり理解していませんでした。
もし同じように理解があいまいな方はもう一度復習をしたほうが理解が進みやすいです。
ご自身で調べて頂くことでもネットにたくさん情報があるのですぐ出てくるかと思いますが、以下の記事にクラウドについて簡単に説明したものがありますので良ければご覧いただければと思います。
上記と合わせて、クラウドを学習していく上で基本となるモデルがあります。
こちらもあわせて勉強しておいたほうがいいです。
簡単に挙げると以下のとおりです。
- PaaS(Platform as a Service)
- IaaS(Infrastructure as a Service)
- SaaS(Software as a Service)
本来、オンプレミスでシステム開発した場合は、ネットワークからサーバ機器のハードウェア、ハードウェアにインストールするミドルウェアやソフトウェアなどすべて自身で用意することになります。
クラウドを利用することで、これら用意しないといけないところをクラウドのサービスが一部担ってくれる形になります。いわゆるユーザが意識する部分が少なくなります。
上記のモデルは、モデルごとにどの範囲までクラウドサービスが提供しているかの範囲を示したものになります。
学習方法②:AWSのドキュメント、ブログを読み漁る
クラウドについて概ね理解ができたら実際にAWSのサービスについて勉強することになります。
何のサービスから勉強したらいいかわからない方もいるかと思いますが、知っておくといい主要サービスについては後ほど書いていきます。
ここでは初めて学習するAWSサービスの勉強方法を書いていきます。
ポイントとしては大きく以下の2点になります。
- AWSのドキュメントを読み漁る
- Qiitaなどのブログを読み漁る
はじめて勉強する方はAWSの本を購入して全体的に勉強するのも有りかと思います。
しかし、AWSの仕様は高頻度で更新され続けているので、最新の情報を仕入れることができるネットでの勉強のほうがおすすめではあります。
勉強する順番としては以下の流れがおすすめです。
- 勉強したいサービスを解説しているブログを読み漁る
- AWSの公式ドキュメントを読み漁る
もしかしたらAWS公式ドキュメントが一番正しい情報なのだからそれだけ勉強したらいいのではと思われている方も多いかと思います。
なぜ先にブログを読むことを書いているかと言うと完全初心者がAWSの公式ドキュメントを見ても専門用語が多すぎて全然理解できないことが多いからです。
キャパシティ、リージョン、アベイラビリティーゾーンなどいろいろAWS特有の用語出てきます。
はじめてこれらを見たときに一般的な専門用語なのかAWS内での専門用語なのかの区別ができなくて混乱します。(私は混乱しまくりました。。。)
なので、おすすめなのはいきなりAWS公式ドキュメントを見るのではなく、ブログなどで分かりやすく解説している記事を見て、大まかなサービス内容を学んだほうが理解しやすいです。
ブログだと実際の設定方法もキャプチャで説明してあって、イメージがつかみやすいです。
ただ、ブログの情報は公式のものではないのでこれだけで終わりにするのは危険です。(情報が古い場合があります)
ブログで大まかな基礎知識を入れた後に公式ドキュメントを確認して、正しい情報を補完していくのが一番理解しやすい方法になります。
学習方法③:実際に使ってみる
最後に実際に使ってみるです。
今まで情報を仕入れるINPUTの学びでしたが、実際に自分で設定して動きを確認したほうが断然理解が進みます。OUTPUTすることで記憶に残りやすくなります。
これを行うことでそのサービスの使い方は概ねできるようになったのと変わりはないので、まず学習して知識を入れたらその情報をもとにサービスを使ってみましょう。
いきなりすべての機能を使いこなさなくてもいいので、自分がしたいことができればとりあえずOKです。
今後、必要になったときに都度勉強していきましょう。
AWSを利用する上での注意点3つ
AWS学習のため、AWSを実際に利用する場合のおさえておいたほうがいい注意点を書いていきます。
■AWS利用時の注意点3つ
その②:利用制限を確認する
その③:AWSからのメールを確認しておく
料金をまず確認する
1つ目は利用するサービスの料金体系を確認しておきましょう。
AWSは従量課金のため、利用した分が課金されていく仕組みになります。
試しに利用する場合でも設定内容によっては、一気に金額が跳ね上がる場合もありますので、まず利用する前にAWSの公式サイトの料金体系を確認しておきましょう。
サービスごとに料金体系がありますので、利用したいサービスの公式ページを開いて、各々確認しましょう。
利用制限を確認する
2つ目は利用制限を確認するになります。
試しに利用する場合であれば、特に意識しなくてもいいかもしれませんが、実際に仕事として開発を行う場合は確認しておく必要があります。
例えば関数処理を提供しているLambdaであれば、同時実行数が1,000といった形で上限があります。
同時に処理が1,001以上実行されると上限を超えてエラーになる可能性があります。
従って、実際にシステム開発する際は顧客の要件が満たせるアーキテクチャであるかを意識しておく必要があります。
以下の公式ページに各サービスの上限値などが書かれています。
利用する対象のサービスは必ず確認しておきましょう。
AWSからのメールを確認しておく
3つ目は、AWSからのメールを確認しておくになります。
AWSを利用するために登録したメールアドレスに日々お知らせのメールが送られてきます。
これらのメールを確認しておきましょう。
こちらも試しに使う分には特に意識しなくても大丈夫ですが、実際に仕事として利用する場合は注意が必要です。
といいますのも利用するプログラミング言語のバージョンなどのサポートが切れたりするとAWS側で利用できなくなることが多いからです。
通常のオンプレミスですと、サポートが切れたとしても一度インストールしたバージョンを利用し続けることができます。(セキュリティの脆弱性の危険性はありますが)
AWSはサポートが切れるものに関しては、そのバージョンのサービス提供を終了するか自動でバージョンアップされることが多いです。セキュリティ上の対策だと思います。
いわば、知らずにほっておくと今まで利用していたバージョンが急に使えなくなったり、勝手にバージョンアップされたりします。
これらのいつ終わりますよといった情報がメールで通知されてくるので日々確認しておいたほうがいいです。
※ほとんど英語の文章で送られてくるのでスルーしがちなのですが、Googleで翻訳するなりして確認しておきましょう。
AWSを学習する上で主要サービスを知ること
AWSを学習していく上で、よく使用するサービスを紹介していきます。
AWSのサービスはたくさんあります。(以下公式のリンクです。)
見て頂いたら分かる通り、はじめての方は何から手をつけたらいいか分からないと思います。
そんな方向けによく使用するサービスを紹介していきたいと思います。
大きく分類を分けると以下の3つのくくりで勉強すると分かりやすいと思います。
・サーバレス環境
・アカウント系サービス
仮想サーバ環境
まず、1つ目が仮想サーバ環境になります。
VMwareやVirtualBoxのような仮想サーバ環境を構築できるサービスがAWSにあります。
オンプレで動作しているシステムをそのままクラウド化しやすい構成なので、これらのアーキテクチャの導入例がたくさんあります。
この仮想サーバ環境を構築する上でよく利用するサービスを紹介します。
EC2
仮想サーバを構築できるサービスです。
EC2サービスの管理コンソールへ行くとインスタンスという単位でサーバを立てることができます。
仮想サーバを構築する際には、サーバのスペックやOSはどれにするか選ぶことができます。
ELB
ロードバランサーのサービスになります。
EC2の手前に配置することでスケーラブルな使用が可能になります。
また、WAFのサービスをELBに紐づけることによって、簡単にWAFをあてることも可能です。
RDS
データベースサービスになります。
EC2同様に構築する際にどういったスペックにするか選択する形です。
OracleやMySQLなどの有名なリレーショナルデータベースは一通り揃っています。
いちいちこちらでインストールする必要はありません。
VPC
プライベートのネットワークサービスになります。
EC2やRDSなどのサーバ系のサービスはこのネットワークに属しておく必要があります。
このVPCの機能にセキュリティグループといったものがあり、あるIPアドレスのみネットワークの接続を許可させたり、あるポートのみ許可させたりなど、ファイアウォールのような機能も持ち合わせています。
上記、EC2などの環境を構築する際にセキュリティ上必ず必要になってきますので、勉強しておくといいでしょう。
サーバレス環境
2つ目がサーバレス環境になります。
サーバレスと言われてあまりピンとこないかもしれませんが、言葉通りサーバという概念がない環境になります。
具体的にどういったことかというと先ほど上記で説明した仮想サーバ構築のサービスはオンプレミスと同じようにネットワークやサーバのスペックを意識する必要があります。
しかし、サーバレス環境ではこれらのインフラ部分を意識する必要がなくなります。
いわば、アプリだけを作るのに集中することができます。
これらの環境で利用する主要サービスをご紹介します。
API Gateway
オンプレミスでいうApacheTomcatのような役割をしています。
クライアントから来たリクエストをURIをもとにどの処理を実行するか振り分けるイメージです。
Lambda
Javaのよくあるオンプレミスで例えるとサーブレット部分にあたります。
上記のAPI Gatewayと関連付けることにより、処理を実行することができます。
ランタイムとして、JavaやNodejs、Pythonなどよくあるプログラミング言語でコーディングすることができます。
DynamoDB
サーバレスのデータベースになります。
リレーショナルデータベースと違い、非リレーショナルと呼ばれるNoSQL型のデータベースです。
RDSと考え方が変わってきますので注意が必要です。
S3
ストレージサービスです。
オンプレミスでいうHDDやSSDみたいなイメージです。
ファイルを保存したりできます。
アカウント(ユーザ管理)系サービス
最後にアカウント系サービスについて、ご紹介します。
AWSの設定などを行うためにAWS管理コンソールへログインするユーザアカウントサービスとアプリ開発などのユーザ管理を行うことができるサービスの2種類紹介いたします。
IAM
AWS管理コンソールへログインするためのユーザの管理や、権限の管理を行います。
ユーザによって閲覧可能なサービスを制限させたり、変更不可にしたりなどの設定をIAMというサービスで管理することができます。
はじめにAWSと契約するとマスターとなるルートアカウントができます。
しかし、実際に開発を行う際は複数名で行うことが多いのでこのルートアカウントとは別にIAMアカウント発行してあげることで他の方もAWSの環境を利用できるようになります。
Cognito
続いてCognitoになります。
こちらはIAMアカウントとは違い、実際にシステム開発を行う上で必要になってくるユーザ管理などをしてくれるサービスになります。
オンプレミスの場合だと自身でユーザ管理テーブルを作成して、クライアントからサインイン要求があればサーバ側でパスワードが正しいかチェックしたりするかと思います。
これらの処理を標準で行ってくれるサービスになります。
このサービスを利用することで認証・認可の実装を作りこまなくて済みます。
最後に
AWSの学習方法について、勉強方法と注意点など書いていきました。
日々、アップデートされているので今後も新しいサービスが出てくるかもしれませんが、はじめは上記で紹介した主要サービスを押さえておけばいいと思います。
はじめは時間がかかるかもしれませんが、実際に触ってみると雰囲気が掴めてくるようになります。
一番おすすめはAWSのビジネスサポートプランに加入すれば、AWSのサポートに問い合わせることができます。
実際に仕事で利用する場合は、上記プランで問い合わせたほうが正確で分かりやすく教えてくれます。
ただ、月1万程度かかるので職場に言ってお願いしてみましょう。
コメント