- 1. 【AWS】EC2へのMetabaseの導入
- 2. AWS Solution Architect Professional合格レポート
- 3. AWS学習 もくじ
- 4. Aurora(MySQL互換)で、外部キーが絡んだINSERT/UPDATEによるデッドロックが検知されない問題
- 5. syslog受信 → S3保存 してくれるDockerコンテナ お手軽セット
- 6. aws cli S3でよく使うコマンド
- 7. aws cliを複数のプロファイルで使う
- 8. 「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ④アクセスキーのローテーションと削除
- 9. 「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ③CISに準拠するためのモニタリングと通知の設定
- 10. LaravelでAWS認証エラーが起きる?恐らくそれはconfig_cacheの影響です
- 11. AWS SDKやCLIでS3に対するアカウントレベルの操作を行う場合はS3 Controlを利用する
- 12. AWS EC2 AmazonLinux2 のdockerホスト用初期設定
- 13. WindowsにCDK環境構築する手順(Python)
- 14. AWSCDKでVPCをデプロイする
- 15. なぜ僕たちはサーバレスでJavaを諦めTypescriptを採用したか
- 16. AWS EKSを使用したKubernetes自動構築ツール作った
- 17. AWS Amplify を日本語化してみた
- 18. AWS ENI (Elastic Network Interface)について
- 19. ALB を利用したサーバー負荷分散、可用性向上に向けた取り組み – Nextcloud 環境の構築を通じて AWS での環境構築を体験する④
- 20. AWS Lake Formationの概要を図と用語で整理する
【AWS】EC2へのMetabaseの導入
以前、Elastic Beanstalkで構築しようとしたのですが、望んだとおりの結果が得られなかったので、自分でEC2へ導入してみようと思いました。
# EC2インスタンスの用意
今回は「t3.small」を利用することにしました。
EBSは`汎用SSD`の`10GB`にしました。
※ Metabaseはポート3000で起動するので、3000にアクセスできるようにセキュリティーグループの設定をしてください。
※ Metabaseにアクセスする為に、Public IPアドレスを付与してください。
インスタンス生成時の設定 or Elastic IP# EC2へDockerをインストールする
## yumアップデート
まずは、yumをアップデートします。“`sh:yumのアップデート
sudo yum update -y
“`
`complete!`が表示されれば完了です。## Dockerインストール
Dockerをインストールします。“`sh:Dockerのインストール
sudo yum install docker -y
“`## Dockerの
AWS Solution Architect Professional合格レポート
昨日AWS Solution Architect Professionalを受験し、無事合格できましたのでまとめておきます。
合格とは言っても、点数は合格ギリギリなので参考程度に見て下さい。
先日AWS Certified DevOps Engineer – Professionalも一応合格していて、同じくレポート書いてます。
[⇛AWS DevOps Professional合格レポート](https://qiita.com/jusotech10/items/f315d90ceac282b93f53)
## 資格取得状況
| 資格 | 取得日
| ——– | ——– |
| AWS Certified Solutions Architect – Associate (SAA) | 2019-03-01 |
| AWS Certified Developer – Associate (DVA) | 2019-08-29 |
| AWS Certified SysOps Administrator – Associate (SOA)
AWS学習 もくじ
##まえがき このページはAWSの学習用のメモです。
####学習の目的
・AWSの基礎学習
・AWS認定ソリューションアーキテクト-アソシエイト試験の合格
・ハンズオンでAWSの操作方法を学習##1.学習した項目
####IAM
####EC2
####VPC
###[S3(Simple Storage Service)](#https://qiita.com/takuma-yoshida/items/2bb4e51900cb124efda5)
####Route53
####RDB
####ハンズオン##2.学習方法
Udemy
##3.その他
~ Linux学習 ~###参考
Aurora(MySQL互換)で、外部キーが絡んだINSERT/UPDATEによるデッドロックが検知されない問題
# 何が起きたのか
たまーにproduction環境でデッドロックが発生したデッドロック発生時のログや各処理ごとで実行されるSQLのログから調査して
デッドロックが発生するクエリは特定できたがstagingやローカルでは再現せず| 環境 | DB |
|:—————–|:——————|
| production | MySQL互換Aurora
| staging | MySQL
| development| dockerのMySQL各環境は上記の状態だったため
Aurora独自の何かがあるのでは?と思い検証をしてみることに### デッドロック発生後の対処
デッドロック発生時、mysqlコマンドでDBにつないで
原因となるクエリをKILLしてみたが解決せず
リードレプリカをフェイルオーバーさせることで対応した# 検証開始
## デッドロックが起きていたテーブル群– offers
– offer_child_1
– offer_child_2
– documents
– document_offer_child
syslog受信 → S3保存 してくれるDockerコンテナ お手軽セット
https://github.com/yagrush/docker-td-agent-syslog-to-s3
↑成果物は、こちらへどうぞ!# 実現したかったこと
syslogをS3に勝手に保存してくれる環境を、簡単に量産できるようにしたい!
# 作ったもの概要
ポート514にsyslogを送ると S3にgzipで1時間毎に保存してくれるDockerコンテナが、すぐ作れます。
(実際は、Dockerコンテナの中で td-agent が常駐しています)# 必要なもの
## syslogを保存するS3バケット
## S3バケットにアクセス権限を持つIAMユーザー
## `docker`, `docker-compose` が入ったEC2インスタンス
Amazon Linux release 2 (Karoo) で動作確認済。
ポート514の受信許可(セキュリティグループの設定)もお忘れなく。→ 必要でしたら [こちら(AWS EC2 AmazonLinux2 のdockerホスト用初期設定)](https://qiita.com/yagrush/items/e85
aws cli S3でよく使うコマンド
aws cli S3でよく使うコマンドについて記載。
“`
#バケットの内容を表示
$aws s3 ls s3://bucket-name/path#バケットを作成
$aws s3 mb s3://bucket-name#バケットを削除(空の場合は削除されない)
$aws s3 rb s3://bucket-name#バケットを削除(強制削除)
$aws s3 rb s3://bucket-name –force#バケット内のファイルを削除
$aws s3 rm s3://bucket-name/file-name#バケット内のフォルダを削除
$aws s3 rm s3://bucket-name/file-name –recursive#ローカルのファイルをバケットにコピー
$aws s3 cp {ファイルパス} s3://bucket-name/path#ローカルのファイルをバケットに移動
$aws s3 mv {ファイルパス} s3://bucket-name/path#バケットをローカルのフォルダと同期(追加・更新のみ)
$aws
aws cliを複数のプロファイルで使う
aws cliで複数のプロファイルを使う方法について記載
すでにaws cliインストール、デフォルトのプロファイルが設定されている前提。
1.新しいプロファイルを作成する
“`
$aws configure –profile new-userAWS Access Key ID [None]: xxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json
“`
Default output formatについては以下のような感じ、json – JSON 文字列形式で出力されます。
yaml – YAML 文字列形式で出力されます。(AWS CLI バージョン 2 でのみ利用できます。)
text – 複数行のタブ区切り文字列値の形式で出力されます。これは、grep、sed、または awk などのテキストプロセッサに出力を渡すのに役立ちます。
ta
「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ④アクセスキーのローテーションと削除
# はじめに
AWSには、アカウントやリソースへの脅威検知に対応した、**AWS IAM Access Analyzer**, **AWS Security Hub**, **Amazon Inspector**, **Amazon GuardDuty**, **AWS CloudTrail**, **AWS Config** などのサービスが用意されています。
また、[**CIS AWS Foundations Benchmark**](https://d1.awsstatic.com/whitepapers/compliance/AWS_CIS_Foundations_Benchmark.pdf) という**セキュリティガイドライン**が公開されており、このガイドラインは、**AWSアカウントをセキュアに保つために必要なAWSのセキュリティ設定**を集めた**ベストプラクティス集**として活用できます。自身のAWSアカウントがこのガイドラインにどの程度準拠しているのかを確認/監査する手段として、**AWS Security Hub**で、**CIS AWS Foundation
「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ③CISに準拠するためのモニタリングと通知の設定
# はじめに
AWSには、アカウントやリソースへの脅威検知に対応した、**AWS IAM Access Analyzer**, **AWS Security Hub**, **Amazon Inspector**, **Amazon GuardDuty**, **AWS CloudTrail**, **AWS Config** などのサービスが用意されています。
また、[**CIS AWS Foundations Benchmark**](https://d1.awsstatic.com/whitepapers/compliance/AWS_CIS_Foundations_Benchmark.pdf) という**セキュリティガイドライン**が公開されており、このガイドラインは、**AWSアカウントをセキュアに保つために必要なAWSのセキュリティ設定**を集めた**ベストプラクティス集**として活用できます。自身のAWSアカウントがこのガイドラインにどの程度準拠しているのかを確認/監査する手段として、**AWS Security Hub**で、**CIS AWS Foundation
LaravelでAWS認証エラーが起きる?恐らくそれはconfig_cacheの影響です
約6年ぶりくらいにPHP(初Laravel)を触ってるのですがプチハマりしました。残存cacheの影響でハマるとか、物凄く良くありそうなシチュエーションなのに具体的な解決策を見つけられなかったので書いておきます。
LaravelでAWSソリューションを使ってるとこんなエラーレスポンスにめぐりあうかもしれません。
“`
{
“code”: “400”,
“message”: “Client error: `GET http://169.254.xxx.xxx/latest/meta-data/iam/security-credentials/` resulted in a `404 Not Found` response:\n\n
AWS SDKやCLIでS3に対するアカウントレベルの操作を行う場合はS3 Controlを利用する
## はじめに
AWS SDKからアカウントレベルでブロックパブリックアクセスの設定を行いたかったのですが
SDKドキュメントのs3の項目にはバケット単位で設定を行う項目はあるものの、
アカウントレベルで設定を行う項目が見当たりません。
アカウントレベルで設定を行うには AWS S3 Control に対してAPIリクエストを行う必要がありました。## AWS S3 Control
AWS S3 Controlは、アカウントレベルのブロックパブリックアクセス設定や
バッチオペレーション、アクセスポイントの管理など、
Amazon S3 コントロールプレーンに対するオペレーションのアクセスを提供します。提供されているアクションは以下のドキュメントを参照
**Amazon S3 API Reference – AWS S3 Control**
https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_AWS_S3_Control.html## 例
アカウントレベルのブロックパブリックアクセスを設定する場合の例
AWS EC2 AmazonLinux2 のdockerホスト用初期設定
# やりたいこと
AmazonLinux2に、以下の設定をまとめて実行する。
* タイムゾーンを日本に
* 言語を日本語に
* `git` `docker` `docker-compose` 最新版インストール
* 以下のコマンドのエイリアス(ショートカット)作成| 元のコマンド | エイリアス |
|:-:|:-:|
| docker | dc |
| docker-compose | ddc |# コマンド
“`
sudo yum update -y
sudo cp /etc/localtime /etc/localtime.org
sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
sudo mv /etc/sysconfig/clock /etc/sysconfig/clock.bk
sudo echo -e ‘ZONE=’Asia/Tokyo’\nUTC=true’ > /etc/sysconfig/clock
sudo mv /etc/sysconfig/i18n /etc/sysconfig/i18n.
WindowsにCDK環境構築する手順(Python)
CDK環境(python)を整えるための自分用メモです。
※動作未検証です、pythonのバージョンが違うとエラーになった実績もありますので、参考程度でお願いします。・AWS CLI導入
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html#install-msi-on-windows・AWS IAM アクセスキー設定
コマンドプロンプトで下記コマンド実行
aws configure※事前にアクセスキーとシークレットキーを用意すること
・Node.js8.0以上導入
https://nodejs.org/ja/・CDK導入
コマンドプロンプトで下記コマンド実行
npm install -g aws-cdk・Python3導入
https://www.python.org/downloads/windows/
⇒導入後、「python」コマンドが利用できること(Pathが通っていること)を確認する・エディタ(VisualStudio Code+Python拡張)
h
AWSCDKでVPCをデプロイする
# はじめに
AWSCDKはTypeScriptやPythonといったプログラミング言語でCloudFormationのテンプレートを生成できるフレームワークです。
今回はAWSCDK(TypeScript)でVPCをデプロイする書き方を紹介していきます。## 必要なパッケージ
VPC関係の定義は `@aws-cdk/aws-ec2` にあります。
“`terminal
$ npm i -D @aws-cdk/aws-ec2
“`## Stackファイルを書く
“`ts
import cdk = require(“@aws-cdk/core”)
import {
DefaultInstanceTenancy,
RouterType,
Vpc,
Subnet,
CfnInternetGateway,
CfnVPCGatewayAttachment
} from “@aws-cdk/aws-ec2”export class CreateVPCStack extends cdk.Stack {
constructor(scope: cdk
なぜ僕たちはサーバレスでJavaを諦めTypescriptを採用したか
この記事は個人ブログのうち技術に関する箇所のみを抜粋した転載です。
[なぜ僕たちはサーバレスでJavaを諦めTypescriptを採用したか -Junks, GC cannot sweep-](https://munchkins-diary.hatenablog.com/entry/2020/02/05/002748)またブログには書いたのですが、諸事情により先に英語版が存在します。
こちらも書いたのは僕なので、剽窃などではないことはご了承ください。\[元記事\]: [Why we replaced Java with Typescript for Serverless](https://dev.to/csohei/why-we-used-typescript-instead-of-java-on-serverless-39e2) in [dev.to](https://dev.to)
## はじめに
**サーバレス(serverless)**は昨今もっとも注目を集める設計手法の一つで、おそらく多くの開発者が大なり小なり自分のプロダクトに応用し始めているのではないでしょうか
AWS EKSを使用したKubernetes自動構築ツール作った
## Kubernetes構築構築ツール作りました!
やっと出来ました[k8s構築ツール](https://github.com/arthur-maki/eks_env_tool/tree/feature-add_iam_and_vpc)(仮)です!長かった。。Ansibleとシェルスクリプト触ったの久々だしTerraformは初めて触るしで時間にして丸々4日くらいかかりました。。## k8s環境構築ツールを作ろうとした理由
* 半年くらい前に少しだけ触ってたが本格的にk8sの知識が必要になりく勉強する必要が出てきたため。
* 一々手動で環境構築するのが手間だと感じたため## AWS EKSを使用した理由
### k8s勉強用のVM作るのは難易度が高そう
VMを使用してk8s環境作ろうとするとMaster Node用とWorker Node用にVMを複数作成してそれぞれネットワーク接続できるようにして更にもっと作業して。。と今の自分の保有スキルに対して作業難易度が高めかなぁと思ったからです。(ただ今はネスぺの勉強もしてるので近いうちに挑戦してみたいです!)### AWS触っ
AWS Amplify を日本語化してみた
# はじめに
このページでは Amplify の初期画面で作成した認証画面を日本語化するための方法をまとめました
※ 翻訳するメッセージについては以下のページを参考にさせていただきました。
# 開発環境
* Windows 10
* nodist(nodeのバージョン管理)
* node 12.13.0
* VSCode# Amplify で多言語化対応する
## I18n で言語設定をしてみる
Amplify には I18n ライブラリが初めから用意されている。
そのためライブラリを import することで、多言語化対応することが可能ということがわかった。【参考】
https://aws-amplify.github.io/docs/js/i18nということで、前回の投稿したソースコードを少し修正してみた。
“` main.js
import Amplify from “aws-amplify”;
import { I18n } from “aws-ampl
AWS ENI (Elastic Network Interface)について
## ENI (Elastic Network Interface) とは
VPC上で実現する仮想ネットワークインタフェースで、物理的な環境におけるNIC(Network Interface Card)のこと。NICの場合は、サーバーに複数枚挿すことで、サーバーが担う複数の役割に応じてIPアドレスを複数持たせたり、異なるセグメント間で1台のサーバーを動作させたりすることができる。ネットワークインターフェイスには以下の属性を含めることができる。
– VPC の IPv4 アドレス範囲からのプライマリプライベート IPv4 アドレス
– VPC の IPv4 アドレス範囲からの 1 つ以上のセカンダリプライベート IPv4 アドレス
– プライベート IPv4 アドレスごとに 1 つの Elastic IP アドレス (IPv4)
– 1つのパブリック IPv4 アドレス
– 1 つ以上の IPv6 アドレス
– 1 つ以上のセキュリティグループ
– MAC アドレス## ENI の基本
– インスタンスにアタッチしたり、インスタンスからデタッチしたり、別のインスタンスにアタッチ
ALB を利用したサーバー負荷分散、可用性向上に向けた取り組み – Nextcloud 環境の構築を通じて AWS での環境構築を体験する④
「Nextcloud 環境の構築を通じて AWS での環境構築を体験する」 の第 4 回となります。
これまでの記事は下記からどうぞ。* 【第 1 回】[EC2 と RDS を利用した Nextcloud 環境の構築](https://qiita.com/S_Katz/items/756ca04ecece844ce503)
* 【第 2 回】[ElastiCache サービスの導入](https://qiita.com/S_Katz/items/280642e437c709052781)
* 【第 3 回】[EFS ファイルサーバーへの移行](https://qiita.com/S_Katz/items/5b5f37db29c3f800e610)# はじめに
今回は、[前回記事](https://qiita.com/S_Katz/items/5b5f37db29c3f800e610) で作成した環境構成のうち、Web サーバーを複数台構成することにより負荷分散ならびに可用性の向上を図ります。これを実現するために AWS のロードバランシングサービスを利用します。
また、可用
AWS Lake Formationの概要を図と用語で整理する
[AWS Lake Formation](https://aws.amazon.com/jp/lake-formation/)をざっくりと理解するために基本的な概念とコンポーネントを、図と用語で整理してみます。
# AWS Lake Formationとは?
– **AWSでデータレイクを構築・運用するためのマネージドサービス**
– 実体は、ほぼAWSの各種サービスをラップしたもの(Glue, IAM, S3, etc..)
– データレイク専用にアクセス制御を行うために、IAMとは別に独自の権限管理機構を持つ
– **実データも保持しセキュリティ向上と権限管理が簡単に行えるAWS Glue**という印象
– IAMやGlueを個別に駆使してデータレイクを構築・運用するよりデータレイクに特化していて扱いやすい# ざっくりした概念図
図にするとかなりシンプル。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50056/3f3012ba-2336-0e40-