- 0.1. AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その2:CodeCommitの準備)
- 0.2. aws cloudformation パラメータ設定の際に、CommaDelimitedList にはまった
- 0.3. PythonでDynamoDBの単一テーブル設計を扱う
- 0.4. VPC Flow Logs
- 0.5. Amazon QuickSight のセルフハンズオンキット日本語版その1のメモ
- 0.6. JP Contents Hubを上から実施する
- 0.7. Lambda でコンテナを実行する
- 0.8. オリジナルアプリをIaC化+データ移行
- 0.9. AWS日記47(AWS Lambda – CORS)
- 0.10. Terraformを思い出す
- 0.11. 【AWS CDK v2】IPを固定化したLambdaの作成方法
- 0.12. ReactからRails経由でS3へファイルをアップロードする方法
- 0.13. 【合格体験記】AWS DevOps Engineer Professional (DOP) を受験して
- 0.14. Auroraのフェイルオーバー優先順位
- 0.15. 特定のEC2のみセッションマネージャの利用を可能にする
- 0.16. AWSのvpnで2トンネル設定する際の注意点
- 0.17. [AWS]クラウドプラクティショナーを受験しました
- 0.18. Cloud9の[設定]が見つからないときの対処法
- 0.19. 【備忘録】AWS S3 クロスリージョンレプリケーション(CRR)の設定方法
- 1. はじめに
- 2. S3バケットの作成
AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その2:CodeCommitの準備)
# はじめに
前回は`Systems Manager`の`RunCommand`機能を使って`Ansible`を実行してみました。今回は`Ansible`の`Playbook`等を格納するGitリポジトリを`CodeCommit`を使用して作成&アップロードしてみようと思います。
– 【前】[AnsibleをAWS Systems Managerから実行するCI/CDを構築する。(その1:Systems ManagerからのAnsible実行)](https://qiita.com/sakai00kou/items/5604b94dd2c87922538f)
# CodeCommitとは
`CodeCommit`は`AWS`で提供しているGitリポジトリとなり、他の`AWS`サービスと連携がしやすくなっているサービスとなります。# CodeCommitの作成
`CodeCommit`のGitリポジトリの作成は簡単で、マネジメントコンソールから「`AWS CodeCommit`」→「**リポジトリを作成**」でリポジトリを作成します。![Monosnap_20220914
aws cloudformation パラメータ設定の際に、CommaDelimitedList にはまった
## 表題の通り、はまったのでメモ
#### cloudformation で可変長の変数を使用するために文字列のリストを使用しようと思ってハマったのでメモ
“`yaml:yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Parameters:
Valueinclude:
Type: CommaDelimitedList
Description: Values included.
Default: “a,b,c”・・・
“`– 上記のようにパラメータに、文字列のリストを指定しようとしたら、以下のエラーが出た。
“`py:!Ref でパラメータを取得しようとした場合の error
Property validation failure: [Value of property {/Environment/EnvironmentVariables/9/Value} does not match type {String}]
“`“`py:!Sub でパラメータを取得しようとした場合の error
T
PythonでDynamoDBの単一テーブル設計を扱う
PythonでDynamoDBを単一テーブル設計で使うためのライブラリを作りました。
https://github.com/medaka0213/DynamoDB-SingleTable## 概要
DynamoDBは高パフォーマンスでサーバーレスなNoSQLデータベースですが、テーブル設計が大変なのが難点です。
単一テーブル設計を使えば、一個のテーブルと数個のGSIを用意するだけで、一個のサービスの全てのデータモデルを効率的に管理することができます。## 使い方
### インストール
“`
pip install ddb-single
“`### テーブルを作る
DynamoDBのテーブルを作ります
DynamoDB-Localを使う場合、`endpoint_url=”http://localhost:8000″` でローカルのエンドポイントを設定できます。“`python
from ddb_single.table import Table
from ddb_single.query import Querytable = Table(
ta
VPC Flow Logs
## 特徴
inbund,outbundの通信をキャプチャする。
デフォルトでは無効
インターフェースレベルでキャプチャする。
ただしリアルタイムではない。全てのIPトラフィックをキャプチャするわけではない。
取らない通信はAWS DNS Serverへの通信、Windows License Activation、 169.254.169.254への通信、 DHCPトラフィック## 有効化
ロググループ作成
フィルターする。Accept、Reject、ALL
送付先。S3、CWlogs
など## log format
– VPC Flow logs Version
– AWS Account ID
– Network interface ID
– src IP
– dest IP
– src port
– dest port
– protocol
– packts
– bytes
– start
– end
– action(Accept or Reject)
– log status
Amazon QuickSight のセルフハンズオンキット日本語版その1のメモ
[JP Contents Hub](https://aws-samples.github.io/jp-contents-hub/#saas)のハンズオンを上から全部やっていきます。
基本的に手順を上から舐めているだけなので、実施した部分は副教材程度に思ってください。**やってみたの部分の記載は画面が変わってたりする部分のや注意したほうがいい部分のメモで手順通りのところは特にメモに残していません。**
最初は[Amazon QuickSight のセルフハンズオンキット日本語版](https://aws.amazon.com/jp/blogs/news/amazon-quicksight-handson-202006/)からスタート。
### このハンズオンで学べること
内容としては、各種イベントなどで実施してきたQuickSightのハンズオンなので、QuickSightを試す事ができます。
提供されているハンズオンは4つで
– QuickSight Basicハンズオン
– QuickSight 販売管理ダッシュボード
– QuickSight 埋め込みハンズオン
– Qui
JP Contents Hubを上から実施する
せっかく日本語ハンズオンが一覧で置いてあるので時間があるときに上から実施していく
https://aws-samples.github.io/jp-contents-hub/#saas
– [Amazon QuickSight のセルフハンズオンキット日本語版その1](https://qiita.com/Yuki_BB3/items/740704b72c21e73dc971)
Lambda でコンテナを実行する
# イメージを作成する
以下のドキュメントを参考に Dockerfile を作成します。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-create.html#images-create-from-base
“`Dockerfile:Dockerfile
FROM public.ecr.aws/lambda/python:3.8# Copy function code
COPY app.py ${LAMBDA_TASK_ROOT}# Install the function’s dependencies using file requirements.txt
# from your project folder.COPY requirements.txt .
RUN pip3 install -r requirements.txt –target “${LAMBDA_TASK_ROOT}”# Set the CMD to your handler (could also be done
オリジナルアプリをIaC化+データ移行
# はじめに
以前、以下のインフラ構成で[オリジナルアプリをデプロイしました](https://qiita.com/Unimaru/items/66a01ad5dab54e66ff47)が、いくつか改善などをしたく、今回別途インフラ構成をIaCで作成の上、移行をします。(Freenomで別の独自ドメインを取得)【旧構成】
![スクリーンショット 2022-09-25 10.33.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1067765/438fac02-196b-0b14-a50e-7b05fd973654.png)【新構成】
![スクリーンショット 2022-09-25 14.14.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1067765/a9e953a9-be23-8d41-7eff-de6b56293c10.png)### 変更点
* スマホの買い替え/MFA関連により、AWSアカ
AWS日記47(AWS Lambda – CORS)
# はじめに
今回はREST API リソースの CORS サポートを有効にします
[REST API リソースの CORS を有効にする](https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-cors.html)を参考に、POST メソッドリクエストに対する設定を行います# 準備
### CloudFormation
“`yaml
AWSTemplateFormatVersion: “2010-09-09”
Transform: AWS::Serverless-2016-10-31
Description: SampleJsonResponse PageParameters:
ApplicationName:
Type: String
Default: ‘SampleJsonResponsePage’Resources:
FrontPageApi:
Type: AWS::Serverless::Api
Properties:
Terraformを思い出す
## 1.はじめに
Terraformによる構成管理に感動したのは良いのですが、プロジェクトで触らなくってはや3年ちょい。
インフラのコード化はてなんじゃったかのー状態のジジイが勘を取り戻すだけの記事です。内容は初心者レベルで目新しいことはございません!
作業環境は2021年型Mac(かっこいい)、個人のAWSアカウント、敬愛するtmknom氏著の実践Terraformです。
## 2.AWSにログイン(数ヶ月ぶり)
ログインしてなさすぎてなんか毎月数百円取られてるなあ状態でしたが、マメな性格ゆえしっかりとメモしてました。
MFAも設定してて偉すぎる。確かこの記事を参照して設定した記憶があります。
これもtmknomさんが書かれてますね!https://qiita.com/tmknom/items/303db2d1d928db720888
## 3.実行環境のセットアップ
AWSC
【AWS CDK v2】IPを固定化したLambdaの作成方法
IP制限がかかっているサーバーにLambdaからアクセスする必要がある場合など、LambdaのIP固定化が必要な際にAWS CDK v2でどのように実装するかを記載します。
## 構成
VPCを作成し、その中でLambdaとEIPを紐付けてIPを固定化し、インターネットにアクセスする構成です。
Lambdaの中身はTypescriptで実装し、[axios](https://github.com/axios/axios)を利用してAPIを実行します。![archtecture.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2412171/5e842cc7-7e9a-6e76-b7cc-9751bf9caebd.png)
## 環境
“`bash
cdk –version
2.21.1 (build a6ee543)node_modules/.bin/tsc –v
Version 4.8.3
“`## 完成系
“`vpc-lambda-stack.ts
im
ReactからRails経由でS3へファイルをアップロードする方法
やっはろー、へっぽこだよ。
Reactでファイルのアップロードをする機能を作ったら案外手こずったから記事にしてみました。バックエンドはRailsでS3にファイルを格納してます。
## ReactからファイルデータをRailsへ飛ばす
まずファイルを添付するボタンを作ります。
色々ありますが、今回は[Material-UI](https://mui.com)を採用しました。
おしゃれかつ痒い所まで手が届く機能を備えてます。まずはMaterial-UIをインストールします。
“`
yarn add @mui/material @emotion/react @emotion/styled
“`次に以下のコードをコピペしてください。
“`typescript:typescript
import React,{useMemo} from “react”;
import Input from “@mui/material/Input”;export default function APP() {
const [file, setFile] = React.useS
【合格体験記】AWS DevOps Engineer Professional (DOP) を受験して
## はじめに
2022/9/26(月)にAWS DevOps Engineer Professionalを受験し、見事合格することが出来ましたので、勉強法を記していきたいと思います。経験は浅いながらもこれで**11冠**
※あくまで自分同様、経験の浅い方向けの記事と思って参考にしていただければと思います!—
## スコアおよび試験の感想
試験結果から言うと…ギリギリ900点越え!
勉強期間としては1か月ちょっとでしたので、自分としては満足のいく点数でした。
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2411418/8ce41801-faa6-b56f-865c-6c44d3a4feed.png)試験については、DVAはサービス機能に関して問われる問題が多かったですが、DOPは複数サービスの連携を前提とした問題が出題されます。
特に以下のサービスについては、しっかり理解をしておかないと合格は不可能なのでしっかり理解を深めておく
Auroraのフェイルオーバー優先順位
# 本文
以下の順序でフェイルオーバー先を決定します。
1. フェイルオーバー優先度が高い方(高 tier-0 > tierー15 低)
* 「指定なし」を選ぶと「tier-1」にされる・・・ように見える
1. インスタンスのサイズが大きい方
* `db.r3.large`と`db.r5.large`のようなファミリー違いの同サイズについては確認中(後日編集予定)
1. フェイルオーバーが発生したものと同じサブネットにある方
1. フェイルオーバーが発生したものと同じAvailabilityZoneにある方
1. それでも一意に決まらなかったら最終候補の中からランダム# 駄文
Aurora Serverlessじゃなく、Aurora Serverless V2でもなく、無印Auroraのお話です。Auroraのインスタンスにはフェイルオーバー優先順位というものを設定できます。
![フェイルオーバー優先順位](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/39622/60cbc9e7-ea7
特定のEC2のみセッションマネージャの利用を可能にする
# やりたいこと
以下にポリシーを限定したい。
– EC2インスタンスのタグの検索
– 特定のEC2インスタンスの起動、開始、再起動
– 特定のEC2インスタンスのみセッションマネージャを利用可能にするやりたいことは基本的なことであるが、ドキュメントはデフォルトのIAMポリシーと追加のIAMポリシーとわかりずらかったため、一つに纏めてみた。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restrict-access-quickstart.html
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/getting-started-restrict-access-examples.html
# 作成したポリシー
“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“
AWSのvpnで2トンネル設定する際の注意点
#### 前提
AWSのSite-to-Site VPNはデフォルトで2トンネルが用意される
Fortigateが2トンネル目を接続した瞬間にAWSからローカルへの疎通が取れなくなる
そこで常時2トンネルにならないように設定をする必要がある#### VPNの設定
AWSのVPNの設定は[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/vpn/latest/s2svpn/SetUpVPNConnections.html)をご覧ください。
もし、GUIからカスタムでいきなり設定して設定どおりにやってうまくいかない場合は、
一度サイト間で作ってからカスタムでコンバートするとうまくいくことがありますので、試してみてください。
GUIからでも十分設定可能です。
なお、付け加えるとすると、vdomグローバルのインターフェースの設定が公式ドキュメントの設定ファイルのダウンロードだと分かりずらいのですが、
要はグローバルvdomからVPNインターフェースにIPを設定し、pingで接続できるようにするだけです。
![aws-vpn.png](https://
[AWS]クラウドプラクティショナーを受験しました
# はじめに
先日、クラウドプラクティショナーを受験しました(合格することができました)。
受験した理由は* なんとなく知っているが、体系的に学んだことはなかった
* 業務でAWSを触ることが多くなってきたこと
* 何よりずっとAWSをやりたかった!です。
受験した感想ですが、受験して本当によかったと思います。
「AWSを学び始めたい」と思っている方には非常におすすめです。
本記事では学習方法と私の備忘録を紹介させていただきます。# 学習方法
## AWS Skill Builder
https://aws.amazon.com/jp/training/digital/
AWS公式のデジタルトレーニングです。
上記の「AWS Cloud Practitioner Essentials (Japanese)」では、クラウドプラクティショナーで学ぶべきことを学ぶことができます。## 【2022年版】この問題だけで合格可能!AWS 認定クラウドプラクティショナー 模擬試験問題集(7回分455問)
https://www.udemy.com/course/aws-42
Cloud9の[設定]が見つからないときの対処法
# TL; DR
上から来るぞ、気を付けろ!
![閉じたメニューバー展開時の動画](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216416/419afacc-59d0-a10d-c811-9126528db78b.gif)
# はじめに
私のCloud9環境のUIが、他の人となんか違うなーと思っていました。
いつもはCloud9のIDE機能を特に使っておらず、Vimで直接ファイルもターミナルも扱っていたので、普段は困っていませんでした(単なるEC2インスタンス接続装置として使っていました)。なお、通常時の画面は以下の通りですが、右上隅のウィンドウボタンを押下することで、左右のスペースを展開できることは把握していました。
![通常時の画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/216416/202baff7-1f49-86eb-55d9-2d3a8fd2fff4.png)
# 設定変更ができない
しかし
【備忘録】AWS S3 クロスリージョンレプリケーション(CRR)の設定方法
はじめに
業務でS3のクロスリージョンレプリケーション(以下CRR)の設定をすることがあったので、自分用にメモとして残します。
レプリケーションとは>ハードウェアを含め同じシステム環境が2セット(稼働系と待機系)用意された環境において リアルタイムにデータをもう一方の環境に複製する技術です。
https://bcblog.sios.jp/what-is-replication/AWSのドキュメントはこちらです
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/replication.htmlCRRとはクロスリージョンなので、その名の通りレプリケーションをAWSのリージョンを跨いで別のバケットにリアルタイムでオブジェクトをコピーしておく設定です。データを別リージョンに逃がしておいて障害時に復旧させるために使用したり、AWSの複数リージョンで稼働しているシステムに組み込むこともできます。
早速ですが設定していきましょう!
S3バケットの作成
まずは、CRR元とCRR先の
CloudTrail
## 特徴
ドライブレコーダーや監視カメラのようなイメージ
犯罪抑止、定期的な挙動のレコーディングデフォルトで有効化されている。
ただデフォルトでは後述の整合性チェックや保存期間が90日間だけと制約もある。## 料金
https://aws.amazon.com/jp/cloudtrail/pricing/
基本的な機能は無料で使用できる。## New Trail作成について
デフォルトでイベントログは確認できる。
しかし不要なユーザーやイベントも対象にしている。
またイベントを保存できる期間が有限(90日)
新しくトレイルを作成することにより、S3バケットにログを長期保管できるようにしたり、特定のユーザーやログを指定することができる。
CloudWatch logsに出力することもできる。(オプション)
作成したトレイルは全てのリージョンで有効化される。### event type
トレイルを作成する時に3つのタイプ(管理イベント、データイベント、Insightsイベント)を選択できる。
デフォルトでは管理イベントにチェックが入っている。
https://docs.a