#はじめに
AWSでインターネット接続のできるEC2を作成したときのメモです。それだけです。
たったそれだけなんですが、プロジェクト変更による作業環境の違いによってここまで焦るものなのか。。と学んだため、初心忘れるべからずで記事を作成しました。
ちなみに作業環境の違いとは、
・以前:IAMでロール管理していないrootアカウントとMacで好き勝手にバリバリやってOK
・現在:IAMで管理されたReadOnlyのアカウント(作業時にロールの切り替えが必要)、踏み台複数経由、マシンのスペックが低い
です。
面倒でもパラメータシート書いたほうがいいなとか、サービスローンチ後の運用を考慮したときにIAMでガチガチに管理するのは大切(当然かもしれませんが)だしそうあるべき、とか学びは多いのですがそれでもやっぱりパフォーマンスは発揮しにくいですね。
ちなみに今回久しぶりにAmazon Web Services 基礎からのネットワーク&サーバー構築 改訂版を読み直しました。よき。
#作業開始
##ターゲットの把握と手順を妄想
今回は「適当にEC2作る」「それをインターネット接続できるようVPCも触る」です。
今までですとEC2から作りはじめていたのですが、今回はサーバを立てるNW環境から作成します。
こっちのほうがわかりやすいというか頭の整理がしやすい。
##VPCの作成
最初にVPCを作成します。VPCってEC2のおまけくらいにしか当初思ってなかったのですが(マジです)、今考えると全然そんなことないですね!w
CIDRは10.0.0.0/16で作成します。
AWSアーキテクチャでNWとか基盤の設計構築って完全に独学なのですが、VPC作成したら連動してACLとかルートテーブルってできるの今手を動かしてて知りました。。
##サブネットの作成
先ほどのVPCの中にサブネットを作成します。NW領域(VPC)の中に更にNWを作る。
RDSを考慮して2つ作成します。アベイラビリティゾーンは別にする。
CIDRは10.0.1.0/24と10.0.2.0/24で。
##インターネットゲートウェイの作成&アタッチ
VPCにGWを作ります。オンプレでこれやるならコストかかるんだろうなーと思いました。抽象化すごい。
##セキュリティグループの作成
インバウンドのルールにsshを追加します。IPはip nowとかでググったグローバルを指定。よくわからなければ0.0.0.0/0でも構いませんがセキュリティの観点から大変よろしくないのでw、モジュールを載せる前の環境に限るなど限定した方が望ましいと思います。
##ルートテーブルの設定
Destinationは0.0.0.0/0、先ほど作成したゲートウェイと紐付けます。
##EIPの割り当て
ここでVPCの作業は完了。EC2を立てるNWが完成しました。
##インスタンスの作成
CentOS7で。EIPも紐づけてグローバルIPを付与します。
この時点で外部との接続可能になっています、それでもsshできなければNW(社内ルールとか踏み台とか)を確認しましょう。自分のせいではないですw
#所感
NWの口(全社的な出入り口)のセキュリティが高いプロジェクトに参画した際、プロキシしてたりACLでがっちりコントロールしてたりで、my ipでヒットしたグローバルIPをセキュリティグループに入れたくらいじゃアクセスできないことを知りました。
それを知らずに作業していたらEC2に一生sshできませんでして。
なぜおれはこの作業にこんな時間かかっとーとや。。(福岡出身です)と、自分が情けなくなったので今回改めて整理した次第です。
おそらくですが金融系とかになるともっとキツそうな気がします。
システム受託開発系の作業環境とか作業ルールはよく確認&管理者に質問しまくりましょうっていうお話でした。
以上です。