こんにちわ!Qiita初投稿です。
現在、「AWS上にDjangoで開発したwebアプリをgunicornとNginxを使ってデプロイした」という地点にいます。
まだまだエンジニア初学者ですので、Qiitaの記事にはいつもめちゃめちゃ助けて頂いています。
げ、MarkDown記法とわ?というレベルのブログ素人でもありますので、しばらくは僕と同じ目線くらいの初学者向けに「賢く、超簡単に」とモットーに投稿していきたいと思います。
まずはAWSのお話にて。
4月に社内の検討会で「作ったwebアプリをAWS上で立ち上げます」と言い放った後から始めましたが、「ぜ、全然わからん…」という不毛なスタートからようやく軌道に乗りました(泣)Djangoも本読んで覚えたままにスタートしたので幾度となく壁に突き当たりましたが「やいやいAWSさん、あなたもまた色々壁を用意しましたね」と泣きたくなるも大人なので泣かない日々です。
最初はとにかく名前です。VPCやAMIといった3文字の用語が多いこと。。論理演算子やK-分割交差検証やら日本語も大概でしたが、英語も割と大概じゃないか。。私は「演算子」の時点で「ん?」と序盤からつまづいたタイプです(汗)
そこで、まずはAWSでwebアプリをインターネットに公開する上で、大切なAWS用語をこれ以上ないほど簡単に説明します。
#初めに、AWSとは
AWS(Amazon Web Service)
AWSを端的に言うと「クラウドサーバーをサブスクで使えるサービス」です。
Elastic(伸縮自在)という言葉をあちこちに見かけますが、自前でサーバーを購入して運用するオンプレミスとは違い、まさにマシンパワーやストレージ容量などが使い方に応じて伸縮してくれるイメージで、いざ使うとオンプレミスとは比較にならないほど優秀だということがよーくわかります。
大量のアクセスがある時はその分だけパワーを用意し、使わない時は最小限に、という感じで、使った分だけの従量課金になります。その上、やろうと思えばコマンドライン操作無しでも大抵の事ができます。
オンプレミスが食材や調理場の手配から値段交渉までイチからやるのに対し、クラウドサーバーはまさに最新の調理器具がすべて揃った調理場が今すぐ使えて、コストも最適化されているので納得!という感じです。
そして更に!「1年間の無料枠」というハンパではない大盤振る舞いがあります。私もドメインの取得以外は現状0円です。
もちろん使い放題ではありません。ここまでは1年無料ですよ、という利用枠がありますが、対象の仮想サーバーを1年起動してても無料です。
#VPC
AWSのアカウント登録をした後、最初に「VPC」を設定すると思います。
VPCとは、virtual private cloud(仮想プライベートクラウド)の略です。
これは、AWSという広大な仮想空間のなかで、「ここはうちのエリアです」と仮想的な領域を決定するような感じです。
#リージョン
AWSは世界中の色んな場所にデータセンターがあります。
日本は東京と大阪にあります。このデータセンターがある物理的なエリアをリージョンと呼びます。
「東京リージョン」「大阪リージョン」といった感じです。
#アベイラビリティゾーン(AZ)
リージョンの中では、リスク分散などの為にデータセンターを3箇所や4箇所に分けて設置しています。東京は4箇所です。
「東京リージョンには4つのアベイラビリティゾーンがある」といった感じです。
クリック1つで、どのゾーンに仮想サーバーを構築するかを選択できます。
#サブネット
サブネットはあのサブネットです。AWS上ではCIDR表記(/24など)で設定します。
ちなみにサブネットは、現実世界で言えば「この部分のエリアにはこれを建てる」という枠を決める感じです。
AWSにはパブリックサブネットとプライベートサブネットの2つがあり、パブリックはインターネットと接続するエリア、プライベートはそうでないエリアです。
#EC2
Elastic Compute Cloud(Cが2つでEC2)
これがAWSにおける仮想サーバーです。
出ましたねElastic!
EC2の設定画面で、OS何にする?ストレージ容量は?など決めていきます。
すごい柔軟で、汎用用途向けや、データベース向け、GPU使用タイプなど様々な種類から仮想サーバーを構築できます。HDDにするかSSDにするかなどもクリック操作で構築できちゃうんです。スマート!
ちなみに、EC2を設定した後はAWSのコンソール画面からSSH接続できます。もちろんご自身のPCからTeratermなどのツールを使っても可能です。
#インターネットゲートウェイ
これが、EC2のパブリックサブネットとインターネットを接続してくれるゲートウェイです。
簡単な設定をした後、パブリックサブネットにアタッチするだけです。
#RDS
これは普通にリレーショナルデータベースサービスです。
アプリはパブリックサブネット、DBはプライベートサブネットに構築します。
#ElasticIPアドレス
また来ましたねElastic!
これが固定IPアドレスです。EC2は、再起動などするとパブリックIPアドレスが変わってしまいます。
そのため、インターネットに公開する場合はElasticIPアドレスを割り当ててあげます。
#Route53
あとはEC2でwebサーバーなどを設定すればインターネットに公開可能ですが、ドメイン名をつける場合はRoute53を使います。
Route53とは、AWSにおけるDNS(ドメインネームシステム)です。設定めちゃ簡単。。
空いてるドメイン名の検索や購入もすぐできますし、ElasticIPアドレスにドメイン名を割り当てるのもすぐに終わります。
初学者向けに、DNSとは要はグローバルIPアドレスに「〇〇.com」といったURLを割り当ててくれるシステムです。もちろんそれ以外の機能も担っています。
初めてなので、今回は以上でござる。
MarkDown記法もわからんかった奴ですが、これからも勉強継続します。
ネットは広大だわ。。
※この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com