- 1. AWインフラ構築【デプロイ】/ 初めてのAWS忘備録②
- 2. 【AWS Summit 2021】日立がチャレンジするクラウドネイティブな社会イノベーション!①
- 3. 【AWS】【Salesforce】CTIフローからApexクラスのメソッドを呼び出す
- 4. プレフィックスリスト 作ってみた
- 5. [Route53 ドメイン] 時々アクセスできる、時々NXDOMAINエラーが発生する
- 6. Active MQを触ってみる
- 7. RedshiftのUNLOADコマンドを試してみた
- 8. AWSアカウント作成/ 初めてのAWS忘備録①
- 9. そのsupervisord.serviceファイルちゃんと動きますか?
- 10. EC2からgithubにssh接続
- 11. EC2にnode.jsをインストール
- 12. EC2にpython3をインストール
- 13. AWS初心者が覚えておく用語集
- 14. ふらっとAWS CloudFrontの署名付きCookieを使って認証画面を作った話
- 15. AWS CloudFormation でリソースを別のスタックに移行する
- 16. AWS LambdaでBoxSDK(JWT認証)を使おうとしてハマった件(備忘録)
- 17. Amazon Linux 2 のカーネルアップデート – CVE-2022-0847(Dirty Pipe)
- 18. AWS lambdaでログが重複して出力される理由と対処法(Python)
- 19. プレフィックスリスト ってなに
- 20. AWS Cognitoを使わずに多要素認証を実装したいんよ
AWインフラ構築【デプロイ】/ 初めてのAWS忘備録②
前回の続き→[AWSアカウント作成/ 初めてのAWS忘備録①](https://qiita.com/mmaumtjgj/items/1db37045baa2059a7152)
クラウドにアプリをデプロイする環境を作成していく。
まずはクラウド上に自分の作業スペースを作り、外部とのネットワークの設定を作る。
これからの作業はrootアカウントではなく、IAMユーザアカウントで進める。## リージョンの選択
クラウドサーバーを構築する、地域(リージョン)を指定する。
AWSは全世界で利用されており、各地域でホスティングされている。
画面右上のアカウント名の隣のプルダウンから「東京」を選択。>**ホスティング**
サーバーを借りること、ここではサーバーを利用されている(借りられている)という意味## タグの命名
**タグとは**
AWS リソースを識別および整理するためのメタデータとして使用される単語やフレーズ。
タグはキーと 1 つのオプションの値で構成されてる。例えば EC2 が10台起動しているとし、どのEC2が自分のプロジェクトのものなのか一覧できると便利。そうした
【AWS Summit 2021】日立がチャレンジするクラウドネイティブな社会イノベーション!①
みなさんこんにちは。子育てしながらクラウド推進!日立のモフママです。
モフママのQiitaデビューが遅かったのでちょっと遅くなってしまいましたが,今回はAWS Summit Online Japan 2021 での日立セッションについてご紹介しようと思います。


!
【AWS】【Salesforce】CTIフローからApexクラスのメソッドを呼び出す
# 1.概要
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/[前回の記事](https://qiita.com/Aichi_Lover/items/06573a82d9af2f982b7f)ではApexクラスの作成について記載したので、
**今回はCTIフローからApexクラスのメソッドを呼び出す方法について記事にしたいと思います。**この記事がCTI Adapter、Salesforceについて勉強中の方の参考になれば幸いです♪
(*^^)v# 2.はじめに
## 2.1.Apexとは
Apexとは、JavaベースのSalesforce独自のプログラム言語です。Salesforce内のオブジェクトの検索や作成をするメソッド等が提供されており、
それらを組み合わせて処理を記述することができます。Apexクラスとは、オブジェクト指向におけるクラスと同様のものとなります。
## 2.2.CTI Adapterとは
AmazonConnectとSalesforceを連携させる際に使用するクラウドサービスのことです。
(厳密にはAWSのサービスです
プレフィックスリスト 作ってみた
## プレフィックスリストとは
プレフィックスリストの概要は [こちら](https://qiita.com/miyuki_samitani/items/141a192f6bef839de58e) をごらんください。
一言でいうと複数のCIDRブロックを一元管理することができるVPCの機能です。## プレフィックスリストの作成
– VPCに移動し、プレフィックスリストを作成

– 詳細設定を記載
プレフィックスリスト名とエントリ数を記載します。
今回はIPv4ですが、IPv6であればアドレスファミリーも変更してください。ブラウザでドメインにアクセスする場合、
時々アクセスできる
時々NXDOMAIN(ERR_NAME_NOT_RESOLVED)エラーが発生する。nslookupコマンドを実行して確認すると、結果は
## 原因
サブドメインの委任設定(NS レコード設定)が Cloudflare、OpenDNS などの DNS リゾルバーで階層構造をたどって名前解決を実行する仕様を満たしていないことが原因となります。具体的には、第 4 レベルサブドメイン(「help.cloud.example.link」など) NS レコードが第 2 レベルドメイン(「example.link」など)に配置されております。
![image.png
Active MQを触ってみる
## はじめに
業務でActive MQを扱ったのですが、情報量の少ないシンプルなコンソールで、なかなか全体像が見えにくいと感じました。今回はActive MQや、そのようなMQサービスと連携できるAmazon MQについて概要をまとめてみようと思います。## Amazon MQとは
Amazon MQはAWSのサービスの一つです。マネージドメッセージブローカーサービスと呼ばれるものです。Active MQとRabbitMQなど、既存のMQサービスと連携して移行することができます。
メッセージブローカーサービスとは、2システムが直接メッセージデータのやりとりをするのではなく、その間に入って中継(ブローカー)するサービスのことを指します。このようなサービスを使うことによって、2システム間でメッセージ送受信のタイミングを図らずとも、よしなにデータのやりとりをしてくれます。
また各コンポーネントを疎結合化し、相互の依存性を小さくすることで保守性も高めることができます。AWSMQを使うメリットは以下のようなものがあります。
– プロトコルはAWS独自のものではなく、業界標準の
RedshiftのUNLOADコマンドを試してみた
# 背景・目的
Redshiftのドキュメントの手順に倣い、RedshiftのデータをS3にUNLOADする。# 内容
## 概要
### UNLOADの特徴
– クエリの結果をS3にエクスポートする。
– ファイルの形式には、テキスト、CSV、Parquet、JSON等指定が可能
– デフォルトではパイプ(|)で区切られる。
– Parquetでエクスポートすると、テキスト形式と比較し、最大2倍高速で、ストレージ使用量も最大6倍少なくなる。
### 構文
“`
UNLOAD (‘select-statement’)
TO ‘s3://object-path/name-prefix’
authorization
[ option [ … ] ]where option is
{ [ FORMAT [ AS ] ] CSV | PARQUET | JSON
| PARTITION BY ( column_name [, … ] ) [ INCLUDE ]
| MANIFEST [ VERBOSE ]
| HEADER
| DELIM
AWSアカウント作成/ 初めてのAWS忘備録①
## アカウント作成する前に
AWSには、異なる2つのユーザタイプがある。・AWSアカウント作成時に生成される“ルートユーザー(アカウント所有者)“
・ルートユーザまたはアカウントのIAM管理者によって作成される“IAMユーザー“
## ルートユーザーとは
AWSアカウントを作成した時に用意したEメールアドレスとパスワードを使用してサインインできるユーザーのこと。アカウント所有者なので、AWS上のサービスほぼ全てを制限なく実行が可能。## IAMとは
IAMユーザーを理解する前に、IAMって?から理解した方がわかりやすい。IAMとは「Identity and Access Management」の略で、その名のとおり“IDとアクセス権を管理する機能“。
IAMを使用すれば、誰がどのサービスにアクセスできるのかを、許可または拒否することができる。
全ての人が全てのサービスやデータに対してアクセス権を持つというのは安全ではないので、必要な人に、必要最低限の権限のみを付与することが推奨されている。管理機能が必要な理由として、アカウント1つでも使うことはできるが
そのsupervisord.serviceファイルちゃんと動きますか?
## supervisord.serviceファイルとは
supervisorをsystemctlコマンド動くように登録するための設定ファイルです。
以下のディレクトリに**supervisord.service**ファイルを用意します。“`bash
/etc/systemd/system/
“`## 先人の知恵
これまで多くの方が、このファイルの作成方法を指南してくださっています。
https://nyan.blog/2021/05/21/laravel7-xsupervisor%E3%82%92%E5%B0%8E%E5%85%A5%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%EF%BC%81/
https://blog.shinki.net/posts/amazon-ilnux-2-supervisor
設定ファイルの中身は大体以下のような感じです。
“`shell:supervisord.servi
EC2からgithubにssh接続
# 概要
日常の仕事でec2からgithubのリポジトリをcloneしたり、pullしたりする事がありますが、
毎回ユーザー名とパスワードで接続することができますが。
現在、githubの仕様でユーザー名とパスワードで接続場合はアクセストークンで2回認証しないといけないです。
毎回githubにアクセストークン作成のは結構ややこしいですね。
もしsshでgithubに接続すれば、ユーザー名とパスワードの入力は要らなくなります。楽になります。# 手順
## ec2にec2にアクセスして、ユーザーを切り替え
“`
$ sudo su –login ec2-user
“`
## 以下のコマンドでssh鍵を作成“`
ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphra
EC2にnode.jsをインストール
## 概要
デフォルト、EC2にnode.jsをインストールされてないですが、
今回ec2にノードバージョンマネージャー (nvm) でnode.jsのインストール方法を説明させて戴きます。# 手順
## ec2にアクセスして、ユーザーを切り替え
“`
sudo su –login ec2-user
“`## ノードバージョンマネージャー (nvm)をいンストール
“`
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
“`## nvm を有効にする
“`
. ~/.nvm/nvm.sh
“`## nvm を使用して Node.js の最新バージョンをインストール
“`
nvm install node
“`## nodeバージョン確認
“`
$ node -v
v17.7.1
“`EC2に最新のnode.jsをインストールする事が確認できました。
EC2にpython3をインストール
# 概要
EC2にデフォルトpyhtonバージョンは2.7.18ですが、
今回ec2にpyenvというpythonバージョン管理ツールでpython3のインストール方法を説明させて戴きます。# 手順
## ec2にアクセスして、ユーザーを切り替え
“`
$ sudo su –login ec2-user
“`## デフォルトpyhtonバージョンを確認
“`
$ python
Python 2.7.18 (default, Jun 10 2021, 00:11:02)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-13)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
“`## yumパッケージ管理ツールを更新
“`
sudo yum update -y
“`## よく使うパッケージをインストール
“`
sudo yum -y install gcc gcc-c++ git libffi-devel ope
AWS初心者が覚えておく用語集
## IAM(アイアム)
“AWS上のサービスを操作するユーザーとアクセス権限を管理するのがIAM(AWS Identity and Access Management)“。ユーザーがアクセスするための認証情報やAWSリソースを制御するための権限を集中管理することができる。
## VPC
AWS VPC(Amazon Web Service Virtual Private Cloud)とは、“ユーザー専用のプライベートなクラウド環境を提供するサービス。“ AWSでは基本的にVPCが必須だが、最初に使うVPCはAWS側が自動的に用意してくれる。## Region(リージョン)
AWSサービスのバックボーンは、「リージョン」と呼ばれる地理的に離れた領域のデータセンター群がそれぞれ接続されることで構成されている。各リージョンではAWSのサービスがそれぞれ独立して提供されている。
例をあげると、日本には東京リージョン(ap-northeast-1)があり、米国にはバージニア北部リージョン(us-east-1)、オレゴンリージョン(us-west-2)などがある。##
ふらっとAWS CloudFrontの署名付きCookieを使って認証画面を作った話
## はじめに
以前、AWS Cognitoを使って認証画面を作りました。https://qiita.com/Kodak_tmo/items/f3c40abad36b7e4ea13f
その後、そういえばCloud Frontには署名付きCookieやURLを設定できるので、認証画面っぽいのを作ることができるなぁと思ったので作ってみることにしました。
## AWS構成図
AWSの構成図を書くと認証の仕組みは、大体このようなイメージ。
構成としては、前回のAWS Cognitoとほぼ同じ。
プライベートページへのアクセスはCloudFrontの署名付きCookieを使うので、Lambda@Edgeがいりません。
固定のIDとパスワードであれば、API GatewayとLambdaだけで実装可能です
AWS CloudFormation でリソースを別のスタックに移行する
とりあえずで作ったテンプレートが肥大化しそうになり、あとから分けたいというときなどに。
# 移行前
DynamoDB に Service 、 Games という2つのテーブルが存在する。
このうちの Games を新しいテンプレートに移行する。移行前ののテンプレートがこちら
“`yaml:source.yml
AWSTemplateFormatVersion: ‘2010-09-09’
Description: source templateResources:
ServiceTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: Service
AttributeDefinitions:
–
AttributeName: key
AttributeType: S
KeySchema:
–
AttributeName: key
KeyType: H
AWS LambdaでBoxSDK(JWT認証)を使おうとしてハマった件(備忘録)
# はじめに
本記事はタイトルの通りです。とてもハマったため、備忘録として残しておこうと思ったのと同じようにハマって
しまった方の参考になればと思います。結果的にAWS Lambda上でBoxSDKを使ったAPIは動作しました。
先にどうやって動いたかを紹介したあと、ハマった経緯や原因などの解説にはいります。# Lambda環境(BoxSDK動作確認済み)
こちらの記事を参考にBoxSDKをインストール、ZIP化、S3への格納、Lambdaへのレイヤー追加を行います。cryptographyのレイヤー追加、記事ですがBoxSDKもかなり関わってました。
レイヤー追加時ですが、互換性のあるランタイムにpython3.7/3.8/3.9を指定
互換性のあるアーキテクチャはx86_64を指定しました。https://qiita.com/Bacchus/items/7dcfc0237df196d1ab67

# はじめに
「Dirty Pipe」という脆弱性が見つかりました。
– [The Dirty Pipe Vulnerability – The Dirty Pipe Vulnerability documentation
Dirty Pipe](https://dirtypipe.cm4all.com/)これは、2016年に公開された「Dirty COW(CVE-2016-5195)」と類似していますが、それよりも悪用が容易なこともあり危険度が高いとされています。
今回の脆弱性を悪用されると、リモートからシステムの制御権が乗っ取られる危険があるとのことです。# セキュリティパッチ
この脆弱性は「CVE-2022-0847」として取り上げられ、セキュリティパッチも各種OSで公開されています。AmazonLinux2 では、以下のページにてパッチバージョンなどが確認可能です。
https://alas.aws.amazon.com/cve/html/CVE-2022-0847.html
)
つまり、自分で新たなハンドラを登録すると、ハンドラが複数存在することになり、ログが重複して出力されてしまう。#### コード
“`python: デフォルトで存在するハンドラの確認
from logging import getLogger, StreamHandler, DEBUG, Formatter
def lambda_handler(event, context):
logger = getLogger()
logger.setL
プレフィックスリスト ってなに
## 勉強前イメージ
vpcのなにか?
## 調査
### プレフィックスリスト とは
AWSのVPCの機能で、複数のCIDRブロックを一元管理することができます。
元々セキュリティグループで接続元の拠点を絞る際、複数プロトコルがあったら以下のようにいっぱい書かないといけなかったです。
22,80,443(3プロトコル) * 2拠点 = 6個 の記載が必要でした。“`
22番ポート x.x.x.x
80番ポート x.x.x.x
443番ポート x.x.x.x
22番ポート y.y.y.y
80番ポート y.y.y.y
443番ポート y.y.y.y
“`ここで拠点をリスト化して、重複したIPの設定を省略できるのがプレフィックスリストになります。
イメージとしては以下のように楽に設定ができるようになります。“`
拠点リスト : x.x.x.x, y.y.y.y
22番ポート : 拠点リスト
80番ポート : 拠点リスト
443番ポート : 拠点リスト
“`画面から見ると以下のように設定されています。
![1マネージドプレフィックスリスト _
AWS Cognitoを使わずに多要素認証を実装したいんよ
こんにちは。エンジニアブログの楽しさを知ったと同時にクソリプをもらってネット社会の恐ろしさを知った、むっそです。
先日スタートアップ転職あるあるという、科学的根拠も情報の出典もあまり書いていないようなN=1のポエムが、大変恐縮ながらちょっとばかりおバズりいたしました。不確実性の高い時代だからかこういう体験談ってみんな好きなんですかね。
**物好きなかたもいるんですね。**https://qiita.com/muson0110/items/b0a997e8b3221a2786d5
# はじめに
じつは上のリンクの記事の中にちょっとだけ伏線があって、こんなことを書きました。> 入社1日目でバグ修正させられたり、多要素認証実装しろとか言われたり、なんなんってなります。(経験談)
そうです。**多要素認証です。(伏線回収決め顔)**
なので今回は多要素認証を実装してみたという記事を書いてみようかと思います。仕事では**フロントエンドをReact、バックエンドをPythonで書いていて、主にAWSのインフラを使って開発**をしておりまして、なにかと多要素認証の記事は役に立つんじ