- 1. (備忘録)AWS EC2でLinuxサーバー構築
- 2. AWSとのVPN接続 ネットワーク側の冗長化について
- 3. Amazon CloudWatch Syntheticsを試してみた
- 4. プライベートネットワークのEC2にCloudWatch Agentを設定
- 5. AWS Lambda のパフォーマンスを Dynatrace で監視・分析する方法
- 6. AWS Cloud9で行番号を表示させる
- 7. AWS 基礎
- 8. [CloudFormation]WebACLAssociationのArnが指定できない
- 9. (備忘録)AWSアカウント作成&初期設定
- 10. Cognito+API Gateway+LambdaでログインAPIを作りたいんだー!
- 11. AWS 紹介
- 12. S3 → Lambda → Transcribe → S3 で文字起こしパイプラインを作成する
- 13. 試験に出るAWS:SAAでしょう 第3夜
- 14. APIGateway + Lambda + Comprehend でサーバーレスなWeb API を作成する
- 15. Active DirectoryでLinux on EC2を一元管理する
- 16. AWSを触る ~作ったサーバへのSSH接続~
- 17. MFA端末を紛失して2要素認証ができない場合、AWSに問い合わせる方法
- 18. AWS上のAmazonLinuxから同じサブネットのLinuxサーバへsshしてみた
- 19. ミニマムなVue.jsコンポーネントプログラミングその5(動的なデータ取得:サーバ準備)
- 20. Mac OSXでaws cliを利用する準備
(備忘録)AWS EC2でLinuxサーバー構築
# 1. はじめに
2020年5月3日に[ヤマムギ](https://yamamugi.connpass.com/)様主催にて開催された[ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築ハンズオン](https://yamamugi.connpass.com/event/174794/)について、自分への備忘録としてまとめてみました。ご参考になれば幸いです。# 2. 学んだ内容
– やること構成図の確認
– IAMロールの作成
– EC2インスタンスの起動
– EC2へセッションマネージャで接続
– メタデータの確認
– EC2インスタンスの終了# 3. 学習サイト
– [ヤマムギ vol.8 (AWS)EC2でLinuxサーバー構築](https://www.yamamanx.com/yamamugi-8-handson/)
# 4. 学習メモ
“`plaintext:学習メモ
ロールの作成、一般的なユースケース:
EC2ポリシー:
AmazonSSMManagedInstanceCoreロール名(任意):
EC2RoleAmazonマシ
AWSとのVPN接続 ネットワーク側の冗長化について
#まえがき
社会人2年目になり、Qiitaでちょっと技術的なことを発信していこうと思っているRKと申します。
職種はNWエンジニアやってます。
最近はNWだけでなくサーバやクラウドの学習もしています。今回はAWSとのVPN接続をする際にネットワーク側で勉強になったことをまとめようと思います。
(仕事でも丁度やっていたので...)
##参考サイト
・自宅とAWSをVPN接続してみた (Ciscoルータ編)
https://dev.classmethod.jp/articles/aws-cisco-site-to-site-vpn/
・HSRPとは
https://www.infraexpert.com/study/fhrpz01.html
##ネットワーク物理構成
使用したルータはCisco 891Fです。
物理構成としては以下の画像になります。
FWは友人に設定してもらい、赤色の枠で囲った部分を私が担当しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612471/57
Amazon CloudWatch Syntheticsを試してみた
Amazon CloudWatch SyntheticsがGAになったので試してみました。
https://aws.amazon.com/about-aws/whats-new/2020/04/amazon-cloudwatch-synthetics-generally-available/
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html## どんなもの
WEBやAPIを監視するサービスです。
TOPページやAPI監視以外にもリンク切れワークフロー監視のBlueprintsが用意されています。
UIのスクリーンショットを保存することも可能です。## WEB監視
### 準備
##### 1. 時々200以外のステータスを返すLambdaを用意する
“`lambda.py
import randomdef lambda_handler(event, context):
status = random.choi
プライベートネットワークのEC2にCloudWatch Agentを設定
## 0.事前準備
プライベートネットワークにCloudWatch Agentを設定するには事前に以下の設定が必要。
SSMに関してはこのページを見れば大体書いてあった
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-systems-manager-vpc-endpoints/
### IAMポリシー
以下のIAMポリシーまたは同等のアクセス権限をロールに設定
ロールをEC2インスタンスに設定
* AmazonSSMFullAccess
* CloudWatchAgentAdminPolicy
* AmazonSSMManagedInstanceCore
* Amazon S3 バケットアクセスのカスタムポリシー### VPCエンドポイント
以下のVPCエンドポイントを作成する
* com.amazonaws.ap-northeast-1.s3
* 以下のPolicyの付与が必要“`
{
“Version”: “2012-10-17”,
“Statement
AWS Lambda のパフォーマンスを Dynatrace で監視・分析する方法
### AWS Lambda を含むシステムに対して Dynatrace で分散トレーシングな監視をする手順を紹介します。
**Lambda関数内のコードレベルでのパフォーマンスの分析が容易になります。**2020年4月 現在、NodeJSに対応しています。\(他の言語については近く対応予定\)
それとは別に、関数毎の実行時間や起動回数など、Cloud Watchで確認できるLambda関連メトリックは、AWSとAPI接続する設定だけで収集できますので、本記事では割愛します。
## 前提:
・ローカル環境に、NodeJSがインストールされている必要があります
・Dynatraceのテナントを持っていること **\([2週間フリートライアルできます](https://www.dynatrace.com/ja/trial/)\)**
・AWS Lambdaが利用できること## 1. Serverless integration の申し込み
現在のところ、Lambda 監視
AWS Cloud9で行番号を表示させる
AWS Cloud9で行番号を出力させる方法がわからなかったので備忘録として残します。
1. Cloud9を立ち上げ, 「Preferences」を選択
2. 「USER SETTING」>「Show Line Numbers:」をNormalに選択
3. 「Show Gutter」がオン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/483101/3c96acc9-395b-db17-e01d-1224d208dafb.png)
AWS 基礎
#前提
AWSについて学んだことを殴り書きしていきます。#本題
RDS(Amazon Relational Database Service)について記述していきます。##RDSとは
マネージドサービスとして提供されるリレーショナルデータベースサービスの総称。
マネージドサービスなので、運用管理はAWS。
自分でセットアップせずに、出来合のデータベースサーバーが起動し、すぐに利用できるようになる。
このようにして作成したデータベースサーバーのことをDBインスタンスと言う。
※マネジメントコンソールで操作するだけでデータベースサーバーが作れる。##メリット
アンマネージドサービスとマネージドサービスの違い。
アンマネージドサービスであるEC2インスタンスを使ってデータベースを構成する場合、データベースソフトウェアのアップデートなどの保守管理、データのバックアップや冗長化などは、全て自分で面倒を見なければならない。
それに対して、マネージドサービスであるRDSを利用すれば、そうした面倒は全てAWSに任せることができる。
一般には、AWSが安定した運用をしてくれるRDSの方が信頼
[CloudFormation]WebACLAssociationのArnが指定できない
# 問題
AWS::WAFv2::WebACLAssociationでWebACLとALBの紐付けをしようとするが、スタック作成時に「WebACLがArnで指定できてない」とFailedする。参照値を見ると、!Ref MyWebACLでは「my-webacl」のようにIDが出力されている。(!Ref MyALBではちゃんとArnが出てるのに…)
“`yaml:before.yml
WebACLAssociation:
Type: AWS::WAFv2::WebACLAssociation
Properties:
WebACLArn: !Ref MyWebACL
ResourceArn: !Ref MyALB
“`# 解決策
ALBとWebACLではデフォルトの戻り値が異なる。ALBではArn [(ドキュメントはこちら)](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancin
(備忘録)AWSアカウント作成&初期設定
# 1. はじめに
2020年5月2日に[ヤマムギ](https://yamamugi.connpass.com/)様主催にて開催された[ヤマムギ vol.7 AWSアカウント作成 & 最初の設定ハンズオン](https://yamamugi.connpass.com/event/174792/)でのAWSアカウント作成について、自分への備忘録としてまとめてみました。ご参考になれば幸いです。# 2. 学んだ内容
– AWSアカウントの作成
– ルートユーザーのMFA設定
– パスワードポリシーの設定
– IAMグループの作成
– IAMユーザーによる請求情報の有効化
– IAMユーザーの作成
– 請求アラームの作成# 3. 学習サイト
– [ヤマムギ vol.7 AWSアカウント作成 & 最初の設定ハンズオン 手順](https://www.yamamanx.com/yamamugi-7-handson/)
# 4. 参考サイト
– [Multi-factor Authentication](https://aws.amazon.com/jp/iam/features/
Cognito+API Gateway+LambdaでログインAPIを作りたいんだー!
[前回](https://qiita.com/seobomi/items/d2ab34bf2d3c4dcc98d5)の続きで、Cognitoを使ったユーザ認証を行う。
#やりたいこと
APIでログイン
– ログイン名 と パスワードをリクエストボディに指定しAPIをコールしアクセストークンを取得する#参考
[LambdaでCognito認証(ユーザー認証)](https://qiita.com/minmax/items/12e65cd51d85f419faa5)#やってみよう
###Lambda用IAMロール
前回同様に、Lambdaの基本的なポリシーに加えて、「AmazonCognitoPowerUser」をアタッチする。###ログイン用のLambda関数を作成
前回と異なっていた点ですが、引数に渡すUSERNAME・PASSWORDは大文字で記載しないとエラーになりました。“`index.js
‘use strict’;const AWS = require(‘aws-sdk’);
const cognito = new AWS.CognitoIdentit
AWS 紹介
この記事は初学者がAWS意味わかんねってなったので各種サービスをわかりやすく紹介していきます。
順不同です。
##Amazon Route53
AWSの提供するフルマネージド型のDNSサービスです。
ドメインとIPアドレスをつなぐ役割です。
123.45.67.89(IPアドレス)
http://www.abcd.com(abcd.comがドメイン名)
ドメイン名で検索すればIPアドレスの部分を表示する
それが、DNSです。要するに好きなドメイン名にできるよってことです。
##RDS
AWSのリレーショナル型のデータベースです。
一言で言うとDBです。
MysqlやOracle経由で使えます。
##EC2
Amazonが提供している仮想サーバー構築サービスです。
IPアドレスを発効してくれます。
使い方は難しい気がします。
##S3
実は?EC2と一緒です。仮想サーバー
イメージ的にですが、静的Webサイト(HP等)はS3のみで可能ですが
動的Webサイト(アプリ等)はEC2&S3みたいな感じで使うっぽいでです。##VPS
セキュリテ
S3 → Lambda → Transcribe → S3 で文字起こしパイプラインを作成する
##1 S3(input)##
音声用ファイルのS3バケットを作成しておく。
##2 Lambda##
`s3-get-object-python`を利用していきます。
![スクリーンショット 2020-05-02 13.24.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6fde4114-89cd-0143-184d-e588590a4bc3.png)「1 S3(input)」で作成したS3バケットを選択し、「トリガーの有効化」にチェックを入れる。
![スクリーンショット 2020-05-02 13.29.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/40e8c87a-326b-eb5f-8554-c014d5a9505d.png)“`python
import json
import urllib.parse
import boto3print(‘Loa
試験に出るAWS:SAAでしょう 第3夜
AWSの本を読んでいると
勉強をしている、というよりAWSの宣伝を読んでいるようで
こりゃ使ってみたいぞ、と思わせてくれるのがいいですよね
まだ、自分用にAWSアカウントを持っていないので登録するつもりですちなみにAWSロフトって知っていますか?
自分はそういった名前のサービスかと思っていましたが
めっちゃおしゃれなフロア(作業スペース)なんですね!
エレベーターの扉とか見ました!?
あのAamazonのダンボールを模してるんですよ、すごくないですか?
行ったことないけどそのうち行ってみたいものです
どうですか? 一緒にいってみませんか!?水曜どうでしょうは去年(2019)に最新作が放映されたんでしたっけ?
まだ観てないんですよね
観ましたか? どうでしたか? 録画しました? 貸してください!# 受験生諸君(自分)!!
[これ↓](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-
APIGateway + Lambda + Comprehend でサーバーレスなWeb API を作成する
#1.Lambda#
実行ロールにデフォルトの「管理ポリシー」に加えて、『ComprehendFullAccess』の「AWS 管理ポリシー」を付与する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/41215cca-2a57-0a08-8946-fc5a8d7bb264.png)ランタイムは「python3.8」で、関数コードは以下のとおり作成。
“`python:Comprehendfunction
import json
import boto3comprehend = boto3.client(‘comprehend’)
def lambda_handler(event, context):
input_text = “とても美味しいです!”
response = comprehend.detect_sentiment(
Text=’input_text’,
LanguageCode=’
Active DirectoryでLinux on EC2を一元管理する
#経緯
EC2のデフォルトでは、秘密鍵(xxx.pem)を利用してSSHアクセスをする。
この秘密鍵をチーム全員で共有することは論外であるが、意外とやっているところが多そう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629414/cabd822f-25a0-c3ba-a8e0-2b72c5e061e9.png)この構成は色々と危険性がある。
1. 誰がアクセスしているか分からないので、ユーザーごとにアクセス制御ができない。
2. 退職者が秘密鍵持っている場合、引き続きアクセスできるので、キーペアを変更する必要がある。
3. キーペアを変更すると、全員に秘密鍵を再配布する必要がある。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629414/7eb70b0a-be56-3ec4-7f4f-fa6c832ab6b6.png)
ユーザーごとにアクセス許可/拒否ができる機能をAct
AWSを触る ~作ったサーバへのSSH接続~
前回はサーバーの構築をやりました。
[AWSを触る ~サーバーの構築~](https://qiita.com/roku28632/items/6a64dab3ea814905230e)
今回は前回作ったサーバーへの接続を試してみようと思っています。
自身のクライアントがWindowsなので、接続クライアントとしてはTeratermを利用します。
まず、Teratermの導入から始めていきます。#Teratermの導入
まず、導入用の資材をダウンロードしてきます。
自分は、「「Tera Term」定番のターミナルエミュレーター – 窓の杜」からダウンロードしてきました。
ダウンロードできたらexeを実行します。
MFA端末を紛失して2要素認証ができない場合、AWSに問い合わせる方法## 無料会員中に作成したEC2インスタンスが起動中だった
無料会員中にCloud9を利用していたが、そのままEC2インスタンスを立ち上げたまま放置していた。
最低スペックのインスタンスが4つ立ち上がっていて、毎月7ドル強課金され続けていた。
## MFA端末が手もとにない場合のAWSへの問い合わせ方法
今回は一番面倒であろう、電話番号が有効でなかった場合だったのでそちらを例にしている。
まず、MFA設定中のアカウントでログインする。
ルートユーザーでログインを試みた際の画面を表示している。
メールアドレスとパスワードを入力すると、以下のような画面になるがMFAコードが発行できないので以下の「MFAのトラブルシューティング」をクリックする。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87431/72942595-5405-1c9e-6950-c4f5f3f06f8c.png)
次に以下のような画面が表示されるので「別の要素を使用したサインイン」をクリックする。
![2.p
AWS上のAmazonLinuxから同じサブネットのLinuxサーバへsshしてみた
#概要
AWS上に立てたAmazonLinuxサーバから同じサブネット内のサーバへsshできずに困っておりました
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411353/07761db4-3fef-13ac-2f10-de9bd39be1c2.png)**※私の個人情報が記載されていますが、既に削除しております!**
#解決方法
早速ですが原因はTeraTermコンソールに表示されている通りです。“`TeraTerm.txt
>>Permissions 0644 for ‘/home/ec2-user/.ssh/ansibleKey.pem’ are too open.
“`
キーのアクセス権が足りていないようですね。。。ですので「ansibleKey.pem」のアクセス権をchmodコマンドで「700」に変更します。
“`TeraTerm.txt
$ sudo chmod 700 ~/.ssh/ansibleKey.pem
“`その後、再度ssh接続
ミニマムなVue.jsコンポーネントプログラミングその5(動的なデータ取得:サーバ準備)
その1:ミニマムなシングルコンポーネントVue
その2:ミニマムなルータ
その3:ミニマムなサブコンポーネント
その4;ミニマムなデータ取得(静的)ときたので、今回は動的なデータ取得ですが、まずはデータを取得できるサーバを準備します。
WebAPIサーバを外部に立てて、WebAPIコールで画面に表示するデータを更新します。
画面サーバを立てるわけではないので、CakePHPとか、ララベルとかそういった
リッチサーバフレームワークは不要なので、軽量かつ直感的にコード実装できる
Flaskを使いたいと思います。(RestFullなWebAPIを実装するためのライブラリも充実してるようだし)Flaskが動作して外部公開できるサーバなら何でもよく、無料レンタルサーバとか、選択肢は
いろいろあるのでしょうが、ここは流行りのAWS上にサーバ立てしようと思います。
AWSへのアカウント登録の説明ははしょりますが、ベーシック(無料枠)で登録しました。#NC2インスタンスの生成/起動
なにはなくとも、まずこれです。
いろんなAWSサービスも、立てたEC2インスタンスの上で動作しています。
Mac OSXでaws cliを利用する準備
AWS CLI バージョン 2 をMac OSXにインストールする手順です。
# 前提– Mac OSX のPCを持っている
– インターネットに接続できる
– AWS のアカウントを持っている
– AWS CLI バージョン 2 がインストール対象です# 事前準備
始める前に AWS CLI を操作するための IAMユーザを作っておきます。
– AWSコンソール
– IAM
– アクセス管理 > ユーザ
– ユーザを追加
– ユーザ名:(任意)
– アクセスの種類:プログラムによるアクセス
– アクセス許可の設定:(任意)ユーザを作成すると `Access key ID` と `Secret access key` が割り振られます。
後ほどconfigureする時に必要なので控えておいてください。# AWS CLI をインストール
[AWSドキュメント](https://docs.aws.amazon.com/ja_j