インフラエンジニアの技術ブログ

日々学んでいることをブログでまとめていきます。

AWS_ec2 インスタンスの作成→Webサーバー作成して外部公開

 

 

AWSのEC2にてインスタンス作成
AWSトップページ-サービス-EC2をクリック
・画面右上のリージョンが東京であることを確認する
・[インスタンスの作成]をクリック
 ・手順1:Amazonマシンイメージ(AMI)
   無料利用枠のみ---チェック入れる
   Amazon Linux AMI---選択
 ・手順2:インスタンスタイプの選択
   デフォルトのまま[次の手順]をクリック
 ・手順3:インスタンス詳細の設定
   デフォルトのまま[次の手順]をクリック
 ・手順4:ストレージの追加
   ボリュームタイプ---マグネティックを選択→[次の手順]をクリック
 ・手順5:タグの追加
   以下設定
   name:webserver
   Dept:eigyo(所属している部門を想定)
   id:101010(社員番号を想定)
 ・手順6:セキュリティグループの設定
   セキュリティグループ名:dmz (わかりやすい任意の名前をつける)
   説明:dmz(わかりやすい任意の名前をつける)
   ルールの追加で
   http
   https
   の2つを追加→[確認と作成]をクリック
   [汎用(SSD)から起動する]ウィンドウ
   「このインスタンスのブートボリュームとしてマグネティックを継続する」を選択
 ・手順7:インスタンス作成の確認
   ->[起動]をクリック
   [既存のキーペアを選択するか、新しいキーペアを作成します。]ウィンドウ
   [新しいキーペアの作成]
   キーペア名---key(任意の名称)を設定
   [キーペアのダウンロード]をクリック
   [インスタンスの作成]をクリック
   ・作成ステータス
   画面右下の[インスタンスの表示]をクリック
   インスタンスが1つ作成されていることが確認できる。
   しばらくするとステータスがrunningとなる。
   IPv4パブリックIPにはIPアドレスが付与されている。

■公開準備
[キーペアのダウンロード]でダウンロードしたkey.pemファイル
AWS操作環境PC上の仮想環境(Oracle VirtualBox上のcentos6.9)を起動→winscp
ホストOS(windows10)からゲストOS(centos6.9)へ.pemをアップロード

key.pemのパーミッション400として仮想環境へ配置

# mkdir ssh
# ls |grep/tmp |grep .pem
key.pem
# ls /tmp |grep .pem-l
-rw-rw-r--  1 user user 1696  3月  9 20:16 2019 keyparename.pem
# mv /tmp/keyparename.pem /root/ssh/
# cd ssh
# ls -l
合計 4
-rw-rw-r-- 1 user user 1696  3月  9 20:16 2019 key.pem
# chmod 400 keyparename.pem

sshコマンド実行

# ssh ec2-user@52.194.219.133 -i kyeeyparename.pem
The authenticity of host '52.194.219.133 (52.194.219.133)' can't be established.
RSA key fingerprint is 0d:a1:53:36:b1:df:7d:b2:cc:2e:e8:f3:2c:be:e9:02.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '52.194.219.133' (RSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
10 package(s) needed for security, out of 15 available
Run "sudo yum update" to apply all updates.

rootでhttpd導入->index.html作成->httpd起動

ec2-user@ip-172-31-47-85 ~]$ sudo su
[root@ip-172-31-47-85 ec2-user]# yum install httpd
読み込んだプラグイン:priorities, update-motd, upgrade-helper

~~~以下省略~~~

完了しました!

index.htmlを/var/www/html以下に用意する

# cd /var/www/html
# vi index.html
# cat index.html
<html><h1>koreha test dayo</h1></html>
# service httpd start   

■外部からアクセス
AWS操作環境にて新規ブラウザを入力後IPv4パブリックIPに記載されたIPアドレスでアクセスすると
index.htmlの記載内容(koreha test dayo)が表示されることを確認する。
IPv4のアドレスがxxx.xxx.xxx.xxxなら
http://xxx.xxx.xxx.xxx
とURLを打ち込むこと
               

雑談_ドラクエをいまさらはじめる

IT業界は、ゲームをされている方が非常に多いと思う。

 

 

 

自分は全く持ってゲームの経験がない。

 

というわけで、40手前でゲームをやってみることにする。

 

セレクトしたのは

 

 

ドラゴンクエスト1

 

ここでチャレンジしてみることにする。

 

以下からエミュレータを用意

スーパーファミコン エミュレータ Snes9x の使いかた : Windows 10 編 – チャーリーが乗っています。

 

ROMを読み込ませて開始

 

攻略サイトは以下を参照

ドラクエ1攻略|極限攻略データベース

 

進捗度合い

らだどーむの町でこんぼうを購入

 

攻略データベースをみながら、たまに進めてみたいと思う。

aws_corsの設定を確かめる

CORS要点
異なるバケットにあるファイルを閲覧できるようにする

http://cors-test-190302.s3-website-ap-northeast-1.amazonaws.com/load.html

http://cors-test-190302.s3-website-ap-northeast-1.amazonaws.com/load.html

HTML ドキュメントの文字エンコーディングが宣言されていません。ドキュメントに US ASCII 外の文字が含まれている場合、ブラウザーの設定によっては文字化けすることがあります。ページの文字エンコーディングはドキュメント中または転送プロトコルで宣言されなければなりません。 bucket-s3-6-190302.s3-website-ap-northeast-1.amazonaws.com

クロスオリジン要求をブロックしました: 同一生成元ポリシーにより、http://cors-test-190302.s3-website-ap-northeast-1.amazonaws.com/load.html にあるリモートリソースの読み込みは拒否されます (理由: CORS ヘッダー ‘Access-Control-Allow-Origin’ が足りない)

バケットを2つ作成(リージョンは東京)
→オブジェクトは公開可能とする

htmlファイルを3つ
index.html
error.html
test.html

1.
バケット1上にて
→[プロパティ]タブ
→Static website hosting
→[このパケットを使用してウェブサイトをホストする]をチェック
インデックスドキュメント
→index.html
エラードキュメント
→error.html

2.
→[概要]タブ
index.html
error.html
test.html
の3つをアップロード
「このオブジェクトにパブリック読み取りアクセス権限を付与する」
を選択すること

3.
バケット1をクリック
→[プロパティ]タブ
→Static website hosting
→URLがあるのでクリック
→hello.htmlとtest.htmlの内容が表示されることを確認
(hello.htmlはtest.htmlの内容も読み込むように記載済み)

2
2-1
バケット2つ目(バケット2)を作成
 アクセス許可の設定
 チェックボックス4つをはずす
 「このオブジェクトにパブリック読み取りアクセス権限を付与する」
 
2-2
→[概要]タブ
test.html
をアップロード
「このオブジェクトにパブリック読み取りアクセス権限を付与する」
を選択すること

2-3.
バケット上にて
→[プロパティ]タブ
→Static website hosting
→[このパケットを使用してウェブサイトをホストする]をチェック
インデックスドキュメント
→index.html
エラードキュメント
→error.html2

2-4.
バケット2をクリック
→[プロパティ]タブ
→Static website hosting
→URLがあるのでクリック
→403エラーとなる
→URLに"/test.html"を追記するとtest.htmlが表示→コピーしてテキスト貼り付け

3
3-1.
index.htmlに元から記載
test.html
の文字を2-4でテキストコピーした値に編集して保存(

3-2
バケット1で
index.htmlとtest.htmlを削除
→3-1で編集したindex.htmlをアップロード
「このオブジェクトにパブリック読み取りアクセス権限を付与する」
を選択すること

3-3
バケット1をクリック
→[プロパティ]タブ
→Static website hosting
→URLがあるのでクリック
→index.htmlの編集前の内容が表示
→→ここではパケット2のtest.htmlの内容をみることができない。
→→ここでCORSの設定をしてパケット1からバケット2の内容をみられるようにする

4-1.
バケット2より
[アクセス権限]タブ
→[CORSの設定]
→画面左下[ドキュメント]をクリック
→doc中ほどにあるサンプルのコードをコピー
→CORS構成エディターへ貼り付けで一部編集し、以下のようにする
------
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
------

4-2.
バケット1をクリック
→[プロパティ]タブ
→Static website hosting
→URLの値をコピー

http://.s3-website-ap-northeast-1.amazonaws.com

4-3.
4-1のバケット2のCORS構成エディター内の
<AllowedOrigin>と</AllowedOrigin>の間にバケット1のURL内容を追記


------
<CORSConfiguration>
 <CORSRule>
   <AllowedOrigin>http://.s3-website-ap-northeast-1.amazonaws.com
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>
</CORSConfiguration>
------

4-4.
バケット1をクリック
→[プロパティ]タブ
→Static website hosting
→URLがあるのでクリック
→index.htmlとバケット2のtest.htmlの内容が表示された。

 

aws_s3_バケットにポリシーを作成して、暗号化したファイル(オブジェクト)のみアップロード

1.s3上で、バケットを作成

2.作成したバケット名をクリック
→[アクセス権限]タブをクリック
→「バケットポリシー」をクリック

3.画面下部「ポリシージェネレーター」をクリック

4.別画面が表示。以下設定する
select Type of Policy  -> S3 Bucket Policy
Effect -> Deny
Princpal -> *
Actions -> PutObject
Amazon Resource Name ->パケットポリシーエディター ARN:から右側の文字列をコピーアンドペースト

Add Conditions
 Condition ->StringNotEquals
 Key -> s3:x-amz-server-side-encryption
 Value -> aws:kms
 
4.[Add Statement]をクリック
->[Generate Policy]をクリック

5.[Policy JSON Document]が表示
表示されるコードをコピー→[Close]をクリック

6.5でコピーしたコードをパケットポリシーエディター ARN:の文字列の下側のコード記載する箇所
(グレーっぽい色)にペースト

7."Resource":の行右端から
/*
を追記->保存
完成したのがこちら
------
{
    "Version": "2012-10-17",
    "Id": "Policyxxxxxxxxxxxxx",
    "Statement": [
        {
            "Sid": "Stmtxxxxxxxxxxxxx",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::encrypted-backet/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        }
    ]
}
------
8.Amazon S3に戻り作成したバケット名をクリック
[概要]タブから[アップロード]をクリック

9.アップロード
①ファイルの選択→任意のファイルを選択し[次へ]をクリック
②アクセス許可を設定する→そのまま[次へ]をクリック
③アクセス許可を設定する→暗号化セクション「AWS KMSマスターキー」を選択し[次へ]をクリック
(他選択ではファイルのアップロード失敗)
④確認→[アップロード]をクリック

ファイルがアップロードされることを確認

 

補足
③アクセス許可を設定する→暗号化セクション

なし
もしくは
Amazon S3マスターキー
を選択した場合はファイルアップロードは失敗する

excelのvba機能で自動でoutlookのメール作成実施

業務都合上、定期的にメールを送付することが多い。

 

定期的に送付するメールの場合、コピペで作成するのも面倒になってきた。

 

なので、メール作成することにした。

 

所感

参考ページが多数あり。

なので、情報かき集めればメール作成までたどりつける。

VBAってそもそも何かがわからなくてもなんとなった。

VBA=Visual Basic for applications

(エクセルがあれば、少し設定追加することで利用可能)

これもたくさんの人が情報upしてくれているおかげです。

 

手順

VBAoutlookメールの作成
1.
VBAをつかうため、開発タブを追加

参考

エクセルVBA超入門!たった10分でスタート地点に立つための方法

 

2.コードウィンドウを表示
VBA上、[挿入]-[標準モジュール]

参考

エクセルVBA超入門!たった10分でスタート地点に立つための方法

 

3.コードウィンドウ上にコードを記載

記載したコードを以下参照

参考サイト

Outlookの定型メールをワンクリックで自動作成する方法(VBA+Outlook) - シュンカの日記


最初のコードならコピペでいける。

実際はエクセルのセルから読み取った値を入力させたいのでさらに以下を参照

【Excel】VBAでOutlookメールを作成する - 意外となんとかなる日記


4.コードがかけたら
F5
で実行する。

注意
本文の行数が多いときは複数行を1セルにまとめること
行数が多いと_が多すぎるエラー
行継続文字(_)を使いすぎています。
が発生
行の制約は24

 

参考

Excel VBAで改行する方法のまとめ: 小粋空間

 

5.想定通りのメールが作成できたら、ボタンを作成→ボタン1クリックでメール作成できるようにする

[開発] タブの [コントロール] グループで [挿入] をクリックし
[フォームコントロール] の [ボタン]アイコン をクリック

ボタンを作成したい箇所にカーソルあわせて、ボタンのサイズ分ドラックアンドドロップ
→メール作成のマクロが選択できる画面が表示されるので、該当マクロを選択

参考

フォームまたはコントロール ボタンにマクロを割り当てる - Office サポート


6.ボタンが作成されるので、ボタンをクリックしてメールが作成されることを確認

 

7.保存時は、ファイルの種類を"Excelマクロ有効ブック"に設定すること

参考

エクセルVBA超入門!たった10分でスタート地点に立つための方法

 

 

aws_s3_ライフサイクルマネジメント(LCM)の設定

Sライフサイクルマネジメントの設定
用途:一定期間が経過したファイルを削除

事前準備
1.AWSログイン後,S3サービスから新規でバケットを作成
パケット名---ユニークな名称をつける
リージョン---アジアパシフィック(東京)
「同じバケット内でオブジェクトのすべてのバージョンを保持します」---チェックつける

事前準備で用意したバケット名をクリック
管理タブをクリック→[ライフサイクルルールの追加]をクリック

以下の設定を実施
名前とスコープ 編集 

①名前とスコープ
[ルール名を入力する]
→任意の値を入力

②移行
[現行バージョン]にチェック
[移行を追加する]をクリック
[オブジェクト作成]→[標準-IAへの移行の期限]を選択
オブジェクト作成からの日数---30を選択
[移行を追加する]をクリック
[オブジェクト作成]→[Amazon Glaclerへの移行の期限]を選択
オブジェクト作成からの日数---60を選択

[以前のバージョン]にチェック
後は現行バージョンと同じ設定を実施

③有効期限
[現行バージョン]にチェック
([オブジェクトの現行バージョンを失効するもチェックありを確認すること])
[以前のバージョン]にチェック
([オブジェクトの現行バージョンを失効するもチェックありを確認すること])

④確認
[保存]をクリック

ライフサイクルルールがひとつ作成される。