- 0.1. ドメイン駆動設計のミッション層を設計する手法を紹介
- 0.2. AWS IAM メモ
- 0.3. AWSの監視入門したのでCloudWatchについてざっくりまとめ
- 0.4. Prisma CloudでAWSリソースの脆弱性管理(Lambda編)
- 0.5. Amazon FSx for Windows の構築と仕様(2020年6月アップデート)
- 0.6. 【Amazon CloudWatch】アラームの設定(※作成中)
- 0.7. 【サーバーレス初心者向け】Serverless Framework + SwaggerでWeb APIを作る!第1回(全3回)
- 0.8. Red Hat OKD4 on AWS を使って見た
- 0.9. DjangoをEC2にデプロイしてわかった事
- 0.10. TerraformでCloudFrontにACL(AWS WAF)を定義するときのエラー対処方法
- 0.11. AWS Free Tier limit alert が来て焦った件
- 0.12. Rust用AWS SDKのRusotoでdefault以外の名前付きプロファイルを使用する
- 0.13. 【AWS-SAA】VPC関連用語の備忘録
- 1. VPC
- 2. VPCエンドポイント
- 3. Private Link
ドメイン駆動設計のミッション層を設計する手法を紹介
今回の記事では、前回の**「エリック・エヴァンスが提唱したアーキテクチャの4層モデルを拡張する」**の記事で紹介した
5層アーキテクチャモデルの**ミッション層**を設計する方法について紹介する。前回の記事について以下のURLを参照
https://qiita.com/aLtrh3IpQEnXKN7/items/b7fe2014ccefcbb9e458![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593586/cce220d6-dab2-863e-c7f6-d7b682f59b6a.png)
#ミッション層を理解する鍵は抽象表現主義
**抽象表現主義**とは人間の心象世界を絵画に表現することを目指した表現技法。
現実の世界に基づい絵画を描写する**写実主義**とは対極に位置する心象風景をモチーフに絵画を記載する手法。
**抽象表現主義**は**オートマティスム**と呼ばれる「何か別の存在に憑依されて肉体を支配されているかのように、自分の意識とは無関係に動作を行ってしまう現象
AWS IAM メモ
後で書き直す
IAM:AWS全体の認証認可基盤
IAM user
アカウント作成時のルートユーザーとは異なる作成されたユーザー
権限を制限したIAM userを付与するのが基本
policyやroleをアタッチできる
しかしIAM groupへpolicyやroleをアタッチして使うのがベストプラクティスIAM group
roleやpolicyをアタッチ可能な集合
ここにユーザーを所属させるのがベストプラクティスIAM policy
デフォルトで用意されているAWSへのアクセス権限IAM role
EC2やlamdaにアタッチして権限付与ができる
内部的には使い捨てのキーとパスを発行しているらしい
AWSの監視入門したのでCloudWatchについてざっくりまとめ
ブログからの転載です
—-
最近こちらのハンズオンをちらほら進めております.
https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/:embed:cite今日は監視編をやってみましたが, CloudWatchって色々機能あって驚いたのでメモしておきます.
全て網羅しているわけではないです.# まとめ
| サービス | 用途 | 備考 |
| —- | —- | —- |
| メトリクス | ちょい調べたい ときに使える | |
| ロググループ | インサイトでクエリの対象になる. mysqlでいうテーブル的な. | ロググループへログを集める設定が別途必要 |
| インサイト | クエリ書いてログをより好きなように見れる.(4xx系のエラーだけにフィルタしたり)||
| アラーム | 何か異常起きたら知らせれる. | SNS使って知
Prisma CloudでAWSリソースの脆弱性管理(Lambda編)
Palo Alto社のセキュリティ製品、Prisma CloudをでAWSリソースの脆弱性管理を行ってみます。
今回は、Lambdaに対して、脆弱性診断をかけてみます。# 準備
Prisma Cloudアカウントがない方は、以前の投稿をご参照ください。
https://qiita.com/Hiroyama-Yutaka/items/0c5205749bc54e3ec056# 脆弱性診断
Computeメニューに存在します。
今回は、(AWS Lambda)に対して、実施してみます。### 準備
手順はこちら。
https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin-compute/vulnerability_management/serverless_functions適当にLambdaファンクションを作成。今回はSAMでPythonベースのファンクションを作りました。
今回は、意図的に脆弱性のあるライブラリバージョン(numpy1.16.0, request2.2.1)を使用して
Amazon FSx for Windows の構築と仕様(2020年6月アップデート)
# Amazon FSx for Windows の構築と仕様
今回はAWSでWindowsファイルサーバを構築する際のベストプラクティス(?)のFSx for Windows を構築していきます。FSx for Windows自体は2019年から東京リージョンでも利用可能なのですが今年6月のアップデートで更に便利になりましたので、クラウドにファイルサーバを移管したいという場合はご検討を!
AWSの回し者っぽくなりましたが、上手く活用できればお安く運用できますので(笑)# Amazon FSx for Windows (以下FSx)とは
[AWS公式サイト](https://aws.amazon.com/jp/fsx/windows/)
> Amazon FSx for Windows ファイルサーバーは、業界標準のサーバーメッセージブロック (SMB) プロトコルを介してアクセスできる、信頼性が高くスケーラブルな完全マネージド型のファイルストレージを提供します。Windows Server 上に構築され、ユーザークォータ、エンドユーザーファイルの復元、Microsoft Acti
【Amazon CloudWatch】アラームの設定(※作成中)
# 1. アラームを作成
## 1-1.
[アラームの作成]をクリック
![CloudWatch_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682986/a86bdbcc-6408-622b-7f72-2d3fb887829f.jpeg)## 1-2.
[メトリクスの選択]をクリック
![CloudWatch_2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682986/64daf88f-f373-1ab9-78e7-be50c463ec7a.jpeg)## 1-3.
今回は、EC2の「CPU 使用率(CPUUtilization)」メトリクスを取得するため、「AWS/EC2」名前空間をクリック
![CloudWatch_3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682986/2e1df4f6-bc63-e572
【サーバーレス初心者向け】Serverless Framework + SwaggerでWeb APIを作る!第1回(全3回)
# はじめに
こんにちは!
最近、仕事で初めてサーバーレスアプリを作る機会がありました。その際Serverless Frameworkを使ったのですが、結構お手軽にアプリを作ることができたので、初めてサーバーレスをする方にお勧めだと思いました。今回は自分の整理も兼ねてその手順を記事として残したいと思います。
今回はSwaggerをAPI Gatewayのテンプレートの一部として組み込む方法もご紹介したいと思います。
全部で記事が三つと長いですが、サーバーレスが初めての方でもAPIを構築できるように書きましたので、最後までご覧いただけたら嬉しいです。# 今回作るもの
今回は以下のアーキテクト図のようなWeb APIバックエンドを作っていきます。
API GatewayでクライアントからのAPIリクエストを受信し、該当するLambda関数を呼び出し、必要に応じてDynamoDBからのデータ読み出しおよび書き込みを行います。さらに、WAFを適用することでセキュアにします。![slsTestAppArchitect.png](https://qiita-image-store.s3.a
Red Hat OKD4 on AWS を使って見た
OKD4 が 2020年7月にGAとなった。ドキュメントを読むかぎり、Minishiftとは大きく異なり、ハイブリッドクラウドを意識した内容となっているので、実際に動かしてみることにした。
OKD4 は、The Origin Community Distribution of Kubernetes の略とされる(なんか順番違うけど)。OpenShift v4 の大部分の上流となっているオープンソースプロジェクト Origin から配布される。これは Apache License, Version 2.0. で配布されるオープンソースである。
## ダウンロード
パソコンに、ocコマンドがインストールされていれば、以下のコマンドでダウンロードすることができる。
~~~
$ oc adm release extract –tools quay.io/openshift/okd:4.5.0-0.okd-2020-07-14-153706-ga
~~~バイナリをブラウザでダウンロードする場合は、https://github.com/openshift/okd/releases か
DjangoをEC2にデプロイしてわかった事
# はじめに
今までクラウドプラットフォームはHerokuを使っていたのですがEC2に移行する機会があったので移行作業中に躓いたところの解決策と、EC2にwebアプリをデプロイする上での注意点等についてまとめました。今回は以下のディレクトリ構造を想定しています
“`
root
├── etc
│ └── systemd
│ └── system
│ └── sampled.service
└── home
└── ubuntu
└── sample
└── sample.py
“`
また1分おきに”OK”を出力するPythonプログラムです“`:sample.py
#!/usr/bin/env python3
import syslog
from apscheduler.schedulers.blocking import BlockingSchedulersched = BlockingScheduler()
@sched.scheduled_job(“interval”, mi
TerraformでCloudFrontにACL(AWS WAF)を定義するときのエラー対処方法
## エラー内容
TerraformでCloudFrontにWeb ACLを付与しようとした際にプロビジョニングエラーが発生しました。
“`terraform
resource “aws_cloudfront_distribution” “sample” {
web_acl_id = ${var.waf_web_acl_id} # ex) bbbbbbbb-xxxx-yyyy-zzzz-aaaaaaaaaaa
}
“`“`bash
Error: error creating CloudFront Distribution: InvalidWebACLId: Web ACL is not accessible by the requester.
status code: 400, request id: 1815419a-666c-4b68-8bbe-10a5b77
“`## 対応策
#### AWS WAF v2を使用している場合
AWS WAF v2を使用している場合、`web_acl_id`にACL **ID**を指定するとエラーとなり
AWS Free Tier limit alert が来て焦った件
## AWS Free Tier limit alert
こんな内容のメールが来てびっくりしました。>AWS Free Tier usage limit alerting via AWS Budgets
Dear AWS Customer,
>
Your AWS account 8*********** has exceeded 85% of the usage limit for one or more AWS Free Tier-eligible services for the month of July.
>
| AWS Free Tier Usage as of 07/27/2020|AWS Free Tier Usage Limit|
|:—————–|——————:|
|641.0 Hrs|750 hours of Amazon EC2 Linux t2.micro instance usage|今月750時間の上限のうち、641時間使用してますよ〜
注意してくださいね〜という内容で、まずは一安心。
ただちょっと
Rust用AWS SDKのRusotoでdefault以外の名前付きプロファイルを使用する
# はじめに
RusotoはRustのためのAWK SDKです。
↓はDynamoDBの全てのテーブルを表示するサンプルコードです。“`rust
use rusoto_core::Region;
use rusoto_dynamodb::{DynamoDb, DynamoDbClient, ListTablesInput};#[tokio::main]
async fn main() {
let client = DynamoDbClient::new(Region::UsEast1);
let list_tables_input: ListTablesInput = Default::default();match client.list_tables(list_tables_input).await {
Ok(output) => match output.table_names {
Some(table_name_list) => {
println!(“Tables i
【AWS-SAA】VPC関連用語の備忘録
#はじめに
AWS-SAAにおいてVPCの理解をきちんとしなければ、合格することは難しいだろう。その一方でVPC関連用語が多く、似たような機能が多いので覚えづらく感じる。本稿では特に覚えづらいVPC関連用語の理解を深めるため、備忘録としてまとめていきたい。#VPC関連用語
VPC
VPCとは?
・ユーザーが定義した仮想ネットワーク環境。概要
・ネットワーク、サブネットの範囲、ルートテーブル、ネットワークゲートウェイなどの設定ができる。VPCエンドポイント
VPCエンドポイントとは?
・VPC内からVPC外へ接続するための、接続点を作るためのサービス。概要
・VPCに対応しているサービスと対応していないサービス、どちらも連携するために接続。Private Link
Private Linkとは?
・Amazonのネットワーク内で、VPC、AWSのサービス、オンプレミスアプリケーション間のプライベート接続が可能になるサービス。概要
・Private Linkを使うことでインターネットに出る必要がなくなる。これによ
CDKでサクッとCodeCommit+CodePipeline
# はじめに
本投稿は、AWS CDKの勉強を兼ねて試作してみたCodeCommit+CodePipelineでS3にファイルをアップロードする機構について紹介しています。
エンジニアチーム内で「触ってみたいですよね」という声があり興味があった所に、別部署のエンジニアの方からも「CDKいいっすよ〜」という評判を聞いたので触ってみました。# AWS CDKとは?
[AWS CDK](https://aws.amazon.com/jp/cdk/)とは、`AWS クラウド開発キット (AWS CDK) は、使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースをモデル化およびプロビジョニングするためのオープンソースのソフトウェア開発フレームワーク`だそうです。PythonやTypeScriptなんかでインフラの定義がかけて便利です。# 背景
## 最初期
過去、制作用の環境としてCloud9が使用されていたのですが、その時の選定要件は、1. 同時編集できる
2. 成果物をプレビューできる
3. プレビューにBasic認証入れられる
4. バージョン管理できるだ
Amazon Linux 2でGoをインストールする
## EC2にインストール
### 利用できるバージョンの確認
“`
# amazon-linux-extras list | grep golang
29 golang1.11=latest enabled \
“`### インストール
“`bash
amazon-linux-extras install golang1.11
“`### GOPATHの追記
“`bash
export GOPATH=”$HOME/go”
export PATH=$PATH:$GOPATH/bin
“`### インストール確認
“`
# go version
go version go1.13.4 linux/amd64
“`
[AWS] Cognitoの基本まとめ
# Cognitoとは
一言で説明すると、ウェブアプリケーションやモバイルアプリケーションに、さくっと認証・認可、ユーザ管理の仕組みを構築できるためのサービス、ということになります。
その中で、– ユーザープール
– IDプール
– Cognito Syncなどの代表的な機能について、まとめました。
## ユーザープール
公式のドキュメントには「何億人」とまで記載されていますが、それくらい巨大なユーザ数を、セキュアに管理できる、フルマネージドサービスのユーザディレクトリで、認証の機能を提供します。ユーザは、
– Amazon
– AppleなどのソーシャルIDプロバイダーやSAMLベースのIDプロバイダ経由でサインインすることもできます。
プロバイダ経由でサインインする場合でも、ユーザープールのディレクトリプロファイルにアクセスすることができます。
ディレクトリプロファイルには、– ユーザ名
– 電話番号
– 住所
– タイムゾーン等、標準的なOpenID Connectベースのプロファイルがサポートされています。
Lambda(node.js)とJavaScriptのタイムゾーン
Lambda(node.js)で日付の計算をしたら思ったより面倒だったのでまとめる。
# やりたかったこと
日本標準時(JST)で先週/先月の範囲を、世界標準時(UTC)で取得したい。
例えば、今日が 2020-07-29 とすると先週の範囲は日曜日始まりでこんな感じ。| タイムゾーン | 開始 | 終了 |
|:-:|:–|:–|
| JST | 2020-07-19T00:00:00+0900 | 2020-07-26T00:00:00+0900 |
| UTC | 2020-07-18T15:00:00Z | 2020-07-25T15:00:00Z |# やりたくなかったこと
大した処理じゃないので余計なライブラリは使いたくない。
# 結論
– タイムゾーンの設定はそのままにプログラム内で対応する
– タイムゾーンオフセット値からJSTを自力で設定する
– UTCへの変換も自力でやる# それぞれのタイムゾーン
## Lambdaのタイムゾーン
UTCに固定されている模様。
ググるとTZ環境変数を設定すればいいという記事が大量にヒットする。
ただ、
AWS EventBridgeでCronで設定した時間に起動しない原因と対処法
AWS EventBridge のcron設定でつまづいたので、
その内容を共有します。もし同じ現象の方がいましたらぜひ参考にしてください。##現象
cronの設定を下記の画像のように設定した。上記の画像のように設定したが
**平日の月曜日〜金曜日の8時に起動する認識だったが指定した時間に起動しなかった。**
##原因
Cronの設定を見直してみると下記のように設定されていた。
# 概要
これまでEC2サーバ毎(コーポレートサイト、Redmine、GitLab等)にサーバ証明書を発行しており、証明書の更新作業が煩雑になっていました。
今回、EC2サーバにロードバランサーを挟むことでサーバ証明書を一つにまとめる作業を実施しました。## 以前のサーバ構成
下記図のようにEC2サーバそれぞれが独立し、サーバ証明書を別々に使用している状態となっていました。
– https://○○○(ドメイン名).co.jp
– https://redmine.○○○(ドメイン名).co.jp
– https://gitLab.○○○(ドメイン名).co.jp etc…![サーバ構成図_作業前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682549/d3438db5-b171-e1a6-90c0-1bb6c6172506.png)
## 今回の作業後のサーバ構成
下記図のようにELBを挟み、ACMから発行されるサーバ証明書一つに設定しました。
Gitlabについては、以
AWS: lambdaを使わないでEC2の定期起動・定期停止するCloudFormationを作る
## はじめに
EventBridgeを使ってEC2の定期起動・停止するCFnを作る時たくさん悩んだので、未来の私がCFn見直した時に思い出せるようにするためのメモ。※投稿してしまったのですが確認したら今CFnが思うとおりに動いていないので修正中です‼
## CloudFormation
### 1. このCFnでつくられるもの。
■ CloudWatch Event Rule
– 起動させるイベントルール
– 停止させるイベントルール■ IAM Role
– 自動化用のAutomationAssumeRole
– AWSマネージドポリシー
– 起動イベント用のロール
– カスタムポリシー
– 停止イベント用のロール
– カスタムポリシー—
### 2. つくったテンプレート。
“`yaml
AWSTemplateFormatVersion: 2010-09-09
Description: EC2_Start_StopParameters:
EC2Insta