AWSを触る ~VPC領域の構成~
前回アカウントを登録できたので、VPC領域の構成をやっていきます。
プライベート領域の10.0.0.0/16のVPC領域を作ります。
コンソールメニューより「ネットワーキングとコンテンツ配信」の「VPC」を押下します。
右上からリージョンを選びます。
この記事では「東京リージョン」を使うつもりなので、「アジアパシフィック(東京)」を選んでいます。
そのまま、画面の「VPC」を押下します。
既にデフォルトのVPCが存在してますが、気にせず「VPCの作成」を押下します。
項目に入力します。
参考にしている参考書通りに入力しています。
10.0.0.0~10.225.225.225はプライベートアドレスの範囲なので、10.0.0.0/16はプライベートアドレスです。
入力できたら「作成」ボタンを押下します。
これでVPCができました。
簡単です。
次にVPC領域をサブネットに分割します。
10.0.1.0/24のパブリックと、10.0.2.0/24のプライベートです。
メニューのVPCダッシューボードよりサブネットの画面を開きます。
サブネット画面より「サブネットの作成」を押下します。
項目を入れます。
VPCは先程作成した分を指定しています。
CIDRブロックは先程書いたとおり10.0.1.0/24を指定しています。
内容に問題なければ「作成」ボタンを押下します。
できました。
作ったサブネットをインターネットに接続します。
awsではインターネットゲートウェイというのが用意されているので、それを使います。
VPCダッシュボードよりインターネットゲートウェイを開き、「インターネットゲートウェイの作成」を押下します。
名前はつけてもつけなくてもいいようです。
複数ある場合には識別するのに名前をつけたほうがいいでしょうか、今回は1つしか構成しないので、そのまま「作成」を押下します。
これでインターネットゲートウェイもできました。
あと、作ったインターネットゲートウェイをVPCに紐付けます。
先程作ったインターネットゲートウェイはまだ紐付けしていないので「detached」となっています。
対象を選択して、アクションの「VPCにアタッチ」を押下します。
作っておいたVPCを選択し、「アタッチ」を押下します。
これでVPCとインターネットゲートウェイの紐付け設定もできました。
続いて外部アクセスできるように、ルートテーブルを設定します。
ルートテーブルの基本的な考え方は、「X宛への通信をYへ振り分ける、というような経路を決めておく」というものです。
そのうち、ルートテーブルに設定されていない通信すべてがデフォルトゲートウェイの経路になります。
なので、今回の構成でルートテーブルを決めると、内部宛(10.0.0.0/16)への通信とデフォルトゲートウェイ(0.0.0.0/0)への通信です。
内部宛はlocalへ、デフォルトゲートウェイ宛はインターネットゲートウェイへ指定します。
まず、ルートテーブルを作成します。
VPCダッシューボードのルートテーブルを開きます。
ルートテーブルの画面の「ルートテーブルの作成」を押下します。
名前を指定して、作ってあるVPCを選び「作成」ボタンを押下します。
これでルートテーブルが作成できました。
ルートテーブルの内容を設定します。
先程作成したルートテーブルを選択し、下部のルートタブから「ルートの編集」を押下します。
内容としては先程書いたとおりの2つです。
「閉じる」を押下します。
問題なければ「保存」ボタンを押下します。
AWSを触る ~プロローグ~
同僚にawsの本を借りたので、これからやっていきます。
まず、冒頭読んだ感じだと、アプリケーションエンジニアがインフラを知ろう的な本であるようです。
かなり初心者向けに基本的な内容が書かれています。
本編のAWSもこのレベルだとするならば、本当に基礎の基礎の内容な気がしてきます。
さらにすこし読み進めました。
「t2.micro」が1年無料のため、これを使うとあります。
発売されてから少し年数が経っているので、今も変わっていないのか気になるところです。
調べてみました。
このサイトも2019.09.22で更新が最後です。
公式のリンクがありました。
公式なので間違いなさそうです。
1年感はある程度無料枠があるようです。
サーバの起動などは、意図しない請求などがないように、これを見ながらやったほうがよさそうです。
サーバ乞食として、ノーマネーで進めていきます。
とりあえず、全体像の図があったので、自分で一旦模倣してみました。
緑のところの「C数字」がChapter番号です。
なので、この後はCharpter2のVPCの構築部分になります。
VPCではプライベートアドレス10.0.0.0/16を割り当てます。
と、進めようと思ったところ、そもそもAWSのアカウント作成部分の話が出てきません。
アカウントは取得している前提のようです。
といったところで、別記事で進めていこうと思います。
アカウント作成の記事はこちらです。
AWSを触る ~アカウント登録と最低限のセキュリティ設定まで~
AWSでアカウントを作ってみたいと思います。
一応やりながら下に流れを書いていこうと思いますが、こちらに公式がありますので、これからやる人は公式を見たほうがいいと思いますので、参考にしてもらえればと思います。
AWSのアカウント取得
googleで調べたらすぐ出てきますが、AWSのサイトへアクセスします。
無料アカウント作成ボタンを押下します。
メールアドレスとパスワード、アカウント名を入力して「続行」ボタンを押下します。
(記載されているように12ヶ月は無料枠が使えます。)
連絡先情報を入力します。
個人で使う場合はパーソナルです。
住所など半角英数字で入れるのに違和感がありますが、本社が米国なので、そういうものなのでしょう。
次に進むとクレジット登録があります。
変な請求が来ないかとドキドキしながら登録します。
ちにみに、会社の同僚がDBサーバの停止を忘れて、5000円ぐらい請求が来たと言っていました。
利用しないサーバの停止などは注意が必要ですね。
クレジットを登録するとプランを選びます。
勉強用なのでノールックでベーシックプランを選びました。
この画面が出てくればひとまず登録は完了です。
最低限やっておくこと
あと、最低限やっておくことがあります。
アカウント登録とセットで絶対やっておきましょう。
これはセキュリティ上必須です。
クレジットを登録しているので、不正アクセスされたらショックです。
公式にも以下は「まずやっておくこと」と書いてあります。
・アカウントエイリアスの作成
・ルートアカウントのMFA
・管理者用 IAMユーザの作成(ルートアカウントは通常使わないように)
あと、最近変わったのか、画面にセキュリティステータスとして5つの項目が用意されています。
これら5つ分やっておくのが無難なようです。
ということで、すべて網羅しておきます。
(といいつつもルートアクセスキーは初期では存在していないので、4つです。)
なので、合計やっておくことは、3つ+5つですが、2つ重複しているので計5つですね。
アカウントエイリアスの作成
やることを一言で書くと「IAMユーザのサインイン画面のURLを変更」です。
ひとまずコンソールログインします。
ルートユーザでログインです。
トップ画面より「すべてのサービス」から「IAM」を選びます。
IAMユーザのサインインリンクにある「カスタマイズ」を選択します。
好きなエイリアスの文字列を指定すると、画面のURLが変わりました。
ルートアカウントのMFA
MFAとはMulti-Factor Authenticatioの略で、多要素認証のことです。
よくgoogleサインインなどである、他のデバイスへ発行するワンタイムパスワードです。
IAM画面で中央にあるセキュリティステータスの「ルートアカウントのMFAを有効化」を開き、「MFAの管理」を押下します。
MFAの有効化を押下します
登録したいスマホ側にそれ用のアプリが必要です。
今回は「google認証システム」というアプリを使いました。
ちなみに、2台持ちなので、自分は2台登録します。
これも冗長化というやつです。
(登録スマホを紛失しても手立てはあるようですが、めんどくさそうです。)
アプリ側からQRコードを読み込んで、表示されるMFAコードを2つ入力します。
「MFAの割り当て」を押下して完了です。
念の為確認してみました。
ログアウトして、再度ログインしようとすると、MFAコードが求められます。
正常に動作していることが確認できました。
管理者用IAMユーザの作成
アカウントを作成した段階でルートユーザという、最上権限を保持したユーザが作られています。
ルートユーザは何でもできてしまうので、念の為管理者用のIAMユーザを使うことで、セキュリティが向上します。
IAMのコンソールより、「個々のIAMユーザの作成」の「ユーザ管理」を押下します。
ユーザーを追加を押下します
ユーザ情報を入力して、「次のステップ」を押下します。
プログラムによるアクセスにチェックを入れていますが、利用しない限りは生成しなようほうが無難だったかもしれません。
グループを作って、そのグループにロールを持たせ、グループに参加させることでユーザに権限を与えます。
この辺はWindwosなどと同じ考え方ですね。
あと、この作業をやるにあたって他の人の記事なども参考にしていますが、ユーザ作成とグループ作成を別々にやっているようだったので、今のようにユーザとグループを一緒に一気に作成できるようになったのは最近のようです。
かなり便利になっていると思います。
「グループの作成」を押下します。
グループ名を指定してAdministratorAccessを選択し、「グループの作成」を押下します。
画面に作成したグループが表示されたことを確認して「次のステップ」を押下します。
あまりよくわかってませんが、タグのオプションはスキップしました。
内容に問題がなければ「ユーザーの作成」を押下します。
完成画面までたどり着きました。
今作ったIAMユーザにもMFA認証を付与しておきます。
IAMコンソールのユーザ画面でユーザ名のリンクを押下します。
認証情報タブのMFAデバイスの割り当てで「管理」のリンクを押下します。
ここから先はルートユーザに設定したMFAの方法と同じです。
設定すると、「割り当てなし」の表記が文字列に変わります。
IAM管理者のMFAの設定もできました。
ようやく終盤まで来た感があります。もう少しです。
今回管理者用のIAMユーザを今回作ったので、ルートユーザを使うことは今後基本的になくなるかと思います。
IAMユーザはデフォルトで請求情報へのアクセスができないようです。
請求情報へのアクセス権限も付与しておきます。
右上のルートアカウント名を選択し、「マイアカウント」を押下します。
画面中央あたりにあるIAMユーザ/ロールによる請求情報へのアクセスで「編集」のリンクを押下します。
「IAMアクセスのアクティブ化」にチェックを入れて「更新」ボタンを押下します。
IAMパスワードポリシーの適用
IMユーザのパスワードのポリシーを決めます。
「パスワードポリシーの管理」を押下します。
「パスワードポリシーを設定する」を押下します。
好きなポリシーを設定します。
とは言え、あまり指定しなければセキュリティ強化したことにならないので、自身の可用性と相談です。
画面でも「セキュリティステータスが5項目中5項目が完了しています。」とすべて緑色になりましたので、AWS的にもOKというところでしょう。
いろんなwebサーバを使ってHelloWorld ~nginx編~その1
今回は前回IISでやった内容のnginx編です。
ちなみに前回のはこちら。
まず、nginxの資材を手に入れます。
今回はここから取得します。
ダウンロードするのはstable、安定バージョンの「nginx/Windows-1.18.0」です。
ダウンロードできたら解凍して、すきなところに設置します。
nginx.exeを実行します。
ん...、一瞬起動したと思ったら何も変化がありません。
おかしいです。
logフォルダをみると、error.logが更新されていました。
logには下記のようにあります。
10013: An attempt was made to access a socket in a way forbidden by its access permissions
ぐぐってみると、どうやら既に使っているポートを利用しようとしているのがまずいようです。
一応何がポートを使っているのか調べてみます。
httpデーモンのようです。
あまり、記憶にありませんがとにかく80番ポートは別のサービスが使っていることがわかりましたので、他のポートを使うこととします。
IISのときは8080番を使ってましたので、一応8090番を使うことにします。
conf配下にある、nginx.confのポート部分を変更します。
再度nginx.exeを実行します。
firewallの通信メッセージが表示されたので、プライベートネットワークを指定しておきます。
アクセスしてみます。
できました。
あとは、オリジナルの画面にするだけです。
nginx.confにlocaltionという記載があり、パスが書かれています。
デフォルトでは、htmlフォルダがそれにあたります。
index.htmlが既に存在しているので、HelloWorld.htmlを作って格納しました。
HelloWorldは前回と同じく「helloworld html template」と検索したらすぐ出てきたので、それを利用しました。
ではでは、別のPCからアクセスしてみます。
できました!
IISの時と同じくタブの文字がバグっていますが、やりたいことができました。
ではでは。
Gmailを整理する1 ~メール振り分け~
もはやメールといえばGmail一択という感じでGmailを使っています。
現場は内部メールなのでOutlookですが、自社のメールもGmailだし、個人のメールもGmailです。
むしろ今までなんでやってなかったのかという感じですが、今更ながらGmailを整理しようと思っています。
特に個人のメールがいろんなメールで溢れかえってしまっている状態なので、整理したいです。
振り分け設定する
現場で使っているOutlookではフォルダを作って振り分けしてますが、Gmailにはラベルで振り分けするようです。
ラベル付けすることでそれぞれのメールをグループ化することができるというわけです。
振り分けしたいメールを選択して、右上から「メールの自動振り分け設定」を選択します。
振り分けの条件を指定できます。
今回は、今開いたメルカリから来たメールをラベル付けするのでこのまま「フィルタを作成」を押下します。
次にメールが来た時にどういう動作をするかを選びます。
メールを振り分けるだけならば、次の2つを選びます。
受信トレイをスキップ(アーカイブする)
ラベルを付ける:好きなグループ
受信トレイをスキップする(アーカイブする)を選択しておくことで、受信トイレ自体にはメールを溜めずに、それぞれを受信トレイとは別の場所に格納できるようです。上のOutlookのフォルダを作るイメージのような感じですね。
あと、あとから気が付きましたが、「一致するスレッドにもフィルタを適用する。」にチェックを入れておくことで、既存のメールにも振り分けを適用することができます。
既に受信したメールもラベル化したい場合はコレにもチェックしておきましょう。
これでだいぶ見やすくなりました。
他にも調べてGmailの機能があればやりながらブログに書こうと思っています。
いろんなwebサーバを使ってHelloWorld ~IIS編~その1
会社で同僚が内部のwebサーバを立ててredmineを使っていました。
おもしろそうだったので自分でもやってみようと思います。
一番ベタなのはapacheですが、せっかくなのでいろいろなwebサーバでやってみます。
まず、前提条件として自分の環境です。
特にこだわった構成でもありませんが、自宅のインターネット用のルータがあり、
あとデスクトップPCとノートPCがあります。
今回はデスクトップPCでwebサーバを立ててみて、ノートPCからそのwebサーバにアクセスできるか試してみようと思っています。
webサーバでは簡単なHelloWorldを表示させるようにしてみます。
実際続くか不明ですが、カスタマイズしていけたらいいなと思っています。
では、やっていきます。
まず、windows10でIISサーバを有効にします。
windows機能「インターネットインフォメーションサービス」にチェックを入れます。
※一度目やってみるとなぜか、「参照されたアセンブリはシステムにインストールされていません」とエラーになりましたが、もう一度やってみると正常にできたので、深追いはしませんでした。
有効化できると、管理ツールに「インターネット インフォメーション サービス (IIS) マネージャー」が表示されるようになります。
実行して、IISマネージャより、左ペインの「ホスト-サイト」で右クリックし、「Webサイトの追加」を実行します。
サイトを指定していきます。
サイト名は適当な名前を入れて、物理パスも好きなところのフォルダを指定します。
物理は以下の下に今回表示する予定の、HelloWorld用のhtmlファイルを保存しておきます。
helloworldのテンプレートは、グーグルで「helloworld html template」とググればすぐに出てきます。
設定できたらまずwebサーバを構築したデスクトップからアクセスしてみます。
http://localhost:8080/index.html
...エラーがでました。
調べてみると、フォルダのアクセス権の問題のようです。
今回設定したアクセス先のフォルダ「localSite」にユーザ「IUSR」でアクセス権を与えます。
そして、もう一度アクセスしてみます。
(なんかタブが文字化けしてますが、)できました!!
今は、webサーバ自体からアクセスしているので、冒頭に書いたとおり、
ノートPCからアクセスできるか確認してみます。
またうまくいきません!
しかし、調べてみるとすぐにわかりました。
ファイアーウォールのポート開放が問題のようです。
開放してみました。
受信の規則で、今回開放しているポート番号「8080番」をプライベート範囲で追加しています。
完成ですね。
先程まではlocalhostと指定していましたが、webサーバ側のローカルIPを指定しています。
思ったより時間がかかってしましたが、IISでやりたかったことはできました。
次はnginxで同じことをやってみる予定です。
ではでは。
VBAでマトリクス表の指定
毎日できる時に少しでもアウトプットしておく。
エクセルで、ある表データをマトリクス化するときに使った。
あるマトリクス表があり、その表を選択したい場合は、
Sub test() Range(Cells(4, 1), Cells(Cells(4, 1).End(xlDown).Row, Cells(4, 1).End(xlToRight).Column)).Copy Cells(8, 1).PasteSpecial (xlPasteAll) End Sub
テスト的にコピーにしてみた。
rangeのendプロパティでxldownで下方向に、ctrl↓した場合と同じところを指定できる。
また、同じくrangeのendプロパティのxlToRightで右方向に、ctrl→した場合と同じところを指定できる。
xlupで↑、xlToLeftで←。
結果はこんな感じになる。
サクッと書いたけど、可読性的にははこっちのほうがいいのかな
Sub test() Dim startRow As Integer startRow = 4 Dim startColumn As Integer startColumn = 1 Dim startCell As Range Set startCell = Cells(startRow, startColumn) Range(startCell, Cells(startCell.End(xlDown).Row, startCell.End(xlToRight).Column)).Copy Cells(8, 1).PasteSpecial (xlPasteAll) End Sub
ソースの記述方法も他の人のコードを参考にして詰めていきたい。
以上