- 1. AWS Lambdaで独自にログを出力したい(標準のログを出したくない)
- 2. ポートフォリオ紹介(INTELIST)【Ruby on Rails / AWS】
- 3. 【AWS CloudFormation】ロール作成を通してポリシーとロールの関係を理解する
- 4. Amazon Linux 2 でCompassを使いSassコンパイル
- 5. awsデプロイ scpコマンド
- 6. terraformでkey pairを作成してEC2にアクセス
- 7. AWS LambdaでサクッとAPIを叩きたい
- 8. AWS KMS セキュリティ RDSとS3を暗号化
- 9. AWS ECS Task実行時にエラー CannotPullContainerError
- 10. 【個人開発】あるあるネタを言いたかったのであるあるネタを共有・投票できるアプリを作りました。
- 11. AWS SAA合格体験記
- 12. QGISとAmazon AuroraのPostgreSQL&PostGISを利用してジオデータを表示してみた
- 13. Amazon S3 Glacier のボールト とは
- 14. Glueに入門してみた(PySparkでk-means実行)
- 15. AWS CloudTech ハンズオン1に必要な費用の調べ方についてまとめました
- 16. Serverless Frameworkで運用しているAWSアプリケーションのデプロイをGithub Actionで管理する方法
- 17. インターネットゲートウェイと仮想プライベートゲートウェイの違い
- 18. 【AWS】RDSとEC2を紐づける方法
- 19. CloudWatch Synthetics について
- 20. SystemsManagerのChangeManager承認リクエストをロール指定にして承認する
AWS Lambdaで独自にログを出力したい(標準のログを出したくない)
#問題
Lambda標準のログを抑止してCloudWatchLogsのコストを節約したい。けど、特定の場合にはログを出力したいといった問題を解決します。#Lambdaコード
早速ですが、このような関数を用意してlambda_handler内で使用します。
必要な権限(IAMポリシー)は後で解説します。標準のログを出さないようにするのも、IAMポリシーの定義で行います。“`python
import boto3
import time
import datetimelogs_client = boto3.client(‘logs’)
lgn = ‘/aws/lambda/PutLog’def lambda_handler(event, context):
put_log(‘test’)
put_log(‘テスト’)def put_log(message):
# ロググループがない場合作成
res = logs_client.describe_log_groups(
logGroupNamePrefix=lgn
ポートフォリオ紹介(INTELIST)【Ruby on Rails / AWS】
#はじめに
業界・実務未経験者がエンジニア転職を目指して独学で約半年間プログラミング学習を行い、このたび転職用にポートフォリオを作成したため紹介していきたいと思います。
今後もアップデートをしていく予定なので、何かあれば本記事のコメント等にフィードバックをいただけますと助かります!#アプリ概要
気になるものを何でもかんでもリスト化して管理・シェアするためのSNSアプリ「INTELIST(いんたりすと)」を作成しました。+ 気になるものをジャンル問わず投稿し、友人とシェアできる
+ リスト化しておくことで後から確認できる
+ 他のユーザーの興味をランキングで確認し、トレンドを把握できるといった特徴があります。
![toppage.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1166024/4af1158b-a07e-0a9e-1b62-839b27cda8f3.gif)
下記のURLにて公開中ですので、よろしければご覧ください!
[https://inte-l
【AWS CloudFormation】ロール作成を通してポリシーとロールの関係を理解する
CloudFormationでRoleを作成しようとしたところ、かなりハマってしまったので、ポリシーとロールの現状の理解をまとめておこうと思います。
# ■ ポリシーとは
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies.htmlポリシーとは、**だれが** 、 **どんな操作を** 、 **どのリソースに対して** 行えるかを定義する仕組みです。
ポリシーの定義は主に下記の要素で構成されています。– [Principal](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_elements_principal.html)
**誰が** に相当する項目。IAMユーザー(ロール)やAWSサービスを指定します。
– [Action](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_eleme
Amazon Linux 2 でCompassを使いSassコンパイル
## Amazon Linux 2 でCompassを使いSassをコンパイル
amzn2-coreからRubyをインストールすると後々厄介なので、Rubyインストールも含めて手順メモ。
:::note warn
RubyもGemもよく分からんけど「Sassコンパイルしたい」or「Compass使いたい人」におススメ
:::>えー、今さら?って思った人。そう、まさに今さらだから書いたんすよ。
>Compassは古めの情報多いから「今でもこれで動くぜ!」ってメモっておきたい## ①Rubyのインストール
以下記事が、非常に分かりやすく失敗しないので、是非やってみてください(他力本願)https://qiita.com/Ekodhikodhi/items/01eab1b2b5785163e684
## ②GemでCompassのインストール
こちらについても、以下記事が端的でわかりやすいです(こちらも他力本願)https://qiita.com/taishi41228/items/98b5ab525eb7b79880fb
という完全にパクリだけの内容を、メモ代わり
awsデプロイ scpコマンド
# AWS,Docker 困ったこと
## 現状
https://qiita.com/at-946/items/1e8acea19cc0b9f31b98
このサイトを参考にDocker EC2でrailsアプリのデプロイを試みましたが、“`
$ scp -i ~/.ssh/myapp.pem ~/myapp/config/master.key myuser@xxx.xxx.xxx.xxx:./myapp/config/
“`
scpコマンドでmaster.keyをリモートに送ろうとしましたがエラーが出ました。“`
scp: /master.key: Permission denied
“`
エラーメッセージです。調べるとサーバーにkeyを設定する必要があるとのことなのでやってみましたが、結果は同じでした。
## 解決方法
myuserでの権限がなかった。
“`
$ ls -l
“`
確認方法権限の変え方
“`
$ sudo chown -R myuser:myuser myapp
“`
terraformでkey pairを作成してEC2にアクセス
EC2へアクセスするキーペアをterraformを使ってコードで作成及び管理してみる。
ローカルでキーペアを作成する **ssh-keygen** をterraformを利用して作成する流れで行きます。terraformで鍵を作成→AWSにアップロード→アップロードした鍵を使ってEC2にアクセス
と、こんな感じでまずは試してみます。今回のversion
“`
$ terraform –versionTerraform v1.0.3
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v3.42.0Your version of Terraform is out of date! The latest version
is 1.0.6. You can update by downloading from https://www.terraform.io/downloads.html
“`tfファイルはこんな感じ。
“`:key-pair.tf
variable “key_name”
AWS LambdaでサクッとAPIを叩きたい
#AWS マネジメントコンソール上でLambdaを実装して、APIを叩きたい
サクッとWEBAPIをLambdaで叩きたい人向けです。
AWSのコンソール上のコードエディターのみで作業を完結させたいときに。##こんな人向け
・WEBAPIを実行したい
・AWSマネジメントコンソールのみで作業を完結させたい
・headerに認証キーを付けたい
・認証キーは環境変数に入れておきたい
・返り値はステータスコードだけ取れればよい##環境情報
AWS Lambda– ランタイム:Python3.9
##ソースコード(PUT API)
Lambda 標準の同包モジュールのみでの実装するため、
AWS Lambda コードエディター上に下記を張り付けるだけです。“`python
import os
import json
import urllib.requestdef lambda_handler(event, context):
#PUT API
url_str = “https://APIURL/”
headers = {“
AWS KMS セキュリティ RDSとS3を暗号化
#キーの作成
AWS KMSコンソール>カスタマー管理型のキー>キーの作成
キーのタイプ:対称
詳細オプションはデフォルトのまま
エイリアス:キーの名前になるためわかりやすいものにする(Application1-keyなど)
管理できるユーザーと使用できるユーザーをチェック#キーを使って暗号化する
作成したキー名をクリックする
ARNの文字列をコピーしておく##RDSを暗号化する
データベースの作成をする際に以下項目を設定###追加設定
AWS KMS キー:キーのARNを入力
ARN:コピーしたものをペーストで作成したキーを選択する##スナップショットを暗号化する
暗号化したいスナップショットのコピーを作成する際に以下項目を設定
スナップショットをチッェク>アクション>スナップショットをコピーAWS KMS キー:キーのARNを入力
ARN:コピーしたものをペーストで作成したキーを選択する
AWS ECS Task実行時にエラー CannotPullContainerError
# エラー内容
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33237/779920e7-9a92-6a43-34db-c27419fd9b5b.png)> CannotPullContainerError: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
# 解決策
タスク実行時にPublicIPを付与する
“`tf
resource “aws_cloudwatch_event_target” “example_batch” {
target_id = “example-batch”
rule = aws_cloudwatch_event_rule.examp
【個人開発】あるあるネタを言いたかったのであるあるネタを共有・投票できるアプリを作りました。
## はじめに
「これあるあるだわ〜しかも結構面白いからみんなに共有したいなー」
って思ったことありませんか?
ありますよね?
あると思います。
ということで今回、あるあるネタを共有・投票できるアプリをリリースしました!
https://aruaruneta.work/
## サービス概要
日常で起きたあるあるネタを投稿し、一人何回でも投票できるアプリケーションです。[![Image from Gyazo](https://i.gyazo.com/17cfdfa2ca3405a036e5f2a2466ef689.png)](https://gyazo.com/17cfdfa2ca3405a036e5f2a2466ef689)
一人で何回でも投票できるため、自分の投稿を意図的に上の方に持ってくることも可能です。
複数回投票できることで承認欲求も満たせるかと思います。[![Image from Gyazo](https://i.gyazo.com/e0ac9b09ea3097870d0e02ac53f3c2ab.gif)](https://gyazo.com/e
AWS SAA合格体験記
# この記事は
AWS歴3年、インフラエンジニア歴5年の駆け出しエンジニアがAWS SAAを受験した体験記を残すものです。# 書いていること、書かないこと
## 書いていること
– 勉強に費やした期間や、使った教材の話
– 自宅受験ノウハウ(ここがメインかもしれません)## 書かないこと
– 具体的な問題や出題分野の話
– 勉強のコツの話# 勉強に費やした期間や、使った教材の話
## 勉強に費やした期間
2021年7月に受験を決め、受験は9/8なので2ヶ月ほど「勉強できる」期間がありました。
もともと、業務でAWSも使っていましたし、ここ3年ほどはサーバレスアーキテクチャをベースに一部EC2の設計から運用まで実務経験があったので勉強はお盆休みでいいかぁ、くらいでした。そして、お盆休みは夏休みの高揚感に負け、全く勉強できず・・・・・・
時は過ぎ、9月に入り、脳内で「SAA、9/10だったよなー」と思ったのが9/7のことです。
そして、受験当日の9/8の朝に環境チェックのためにAWS認定アカウントのページに行ってみると、え、今日なの!?
となった、なんともお恥ずかしい気付
QGISとAmazon AuroraのPostgreSQL&PostGISを利用してジオデータを表示してみた
![](https://day-journal.com/memo/images/try-066_00.gif)
![](https://day-journal.com/memo/images/try-066_00.png)
### QGISとAmazon AuroraのPostgreSQL&PostGISを利用してジオデータを表示してみました :tada:
2年くらい前に「[QGISとCloud SQLのPostgreSQL&PostGISを利用してジオデータを表示してみた](https://day-journal.com/memo/try-023)」という記事を書いたのを思い出して、今回は[Amazon Aurora](https://aws.amazon.com/jp/rds/aurora/?aurora-whats-new.sort-by=item.additionalFields.postDateTime&aurora-whats-new.sort-order=desc)でPostgreSQL&PostGISデータベースを構築し[QGIS](http://www.q
Amazon S3 Glacier のボールト とは
## 勉強前イメージ
Glacier を高く飛び越える・・・?
英語だけじゃよくわからん## 調査
### Amazon S3 Glacier のボールト とは
s3 Glacierのデータモデルの主要概念の内の一つで、
アーカイブを格納するコンテナのことを指します。
s3で言い換えるとバケットのことになります。s3 Glacierのデータモデルの主要概念には
他にも `アーカイブ` というものがあり、
ログファイルや動画、写真などのデータのことを指し、
s3で言い換えるとオブジェクトのことになります。### ボールトロック とは
ボールトロックとは、ボールトロックポリシーを用いて
s3 Glacierのコンプライアンス管理を簡単に適応することが出来ます。
ポリシーで、読み込みのみにしたり 登録から1年経過しないと削除できないなどの
ポリシーを適応することが出来ます。### ボールトロックの適応方法
ボールトロックポリシーは変更ができないので、セットを行うのに2段階プロセスを踏みます。
– ボールトロックポリシーをボールトに関連付け
– これによりテスト
Glueに入門してみた(PySparkでk-means実行)
# はじめに
* 大きめなデータでk-meansを実行したかったが、ローカルでscikit-learnで実行しようとするとリソースが足りなかったので、Glueを試してみた。# Glueとは
* **DataCatalog** と **ETL** という2つのコンポーネントから構成されるサービス。
* 「S3のデータファイルから、AWS Redshift Spectrum と AWS Athenaのテーブルを作成する」 ツール。
* GlueでDataCatalogと呼んでいるテーブル定義は、Apache Hiveのテーブルのこと。 = Glueは、S3のファイルからHive Tableを作るツール。
* Glueはクローリングによるテーブル定義作成・更新に加えて、Apache Sparkを使って、プログラミングにより、ユーザーがより細かくデータ加工することもできる。
* Sparkについては[こちら](https://qiita.com/noko_qii/items/a5d529c941cf00618bf9)を参照。![スクリーンショット 2021-09-09 0.15
AWS CloudTech ハンズオン1に必要な費用の調べ方についてまとめました
この記事を書いている私について
インフラ系PMO歴半年でAWSクラウドプラクティショナーを取ったばかりの私が
AWS CloudTechという動画学習サービスに参加し、AWSエンジニアを目指すための備忘録となります:fire:この記事を書こうと思った経緯
—構築の練習をしたいけど、実際どのくらい費用がかかるの!?と思い書きました。
AWS CloudTechで費用をまとめてくれていますが、AWSの料金体系は変わってきますし、
自分で確認したい初学者の参考になれば嬉しいです。この記事で対象としている課題
—AWSが公開している料金表を参考におおよその費用を算出します。
対象:AWS CloudTech ハンズオン1_基本的なブログサービスを構築する(シングル構成)
ハンズオン1の構成図
—インターネットゲートウェイ、EC2、RDSとシンプルな構成です。
![AWS 課題1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/465906/d50478d0-a
Serverless Frameworkで運用しているAWSアプリケーションのデプロイをGithub Actionで管理する方法
## 概要
Serverless Frameworkを使用する時、ローカルからデプロイするだけで特にCIを回していなかったのでGithub Actionで開発フローを組もうと思い調べてみたので設定手順をまとめておきたいと思います。
この記事でセットアップする開発フローは、Github Pushトリガーによって、Serverless Serviceをデプロイするアクションを起動する非常にシンプルなものです。
## 目次
– 構成
– 運用フロー
– 準備
– 設定
– Serverless Framework
– Github Action
– 動作確認
– 参考URL## 構成
![sls-aws-blog](//images.ctfassets.net/bphjrdksp04w/1jOSyeoRKBAj1UXw6I8hdd/cf0db8f8fc24ea245cc2b0555de90363/sls-aws-blog.png)
Lambdaのトリガーとして設定するAPI Gatewayには、開発用(dev)・本番用(prod)の2つのステージを用意し、Functi
インターネットゲートウェイと仮想プライベートゲートウェイの違い
## 勉強前イメージ
なんだっけ・・・ぱっと違いが出てこない
## 調査
### インターネットゲートウェイとは
インターネットゲートウェイはインターネットと接続するもので、
ネットワーク内はインターネットゲートウェイを通じてインターネットとやり取りを行います。
VPC内とインターネットを通信する際は以下を行います。– VPCにインターネットゲートウェイとアタッチする
– ルートテーブルでデフォルトルートにインターネットゲートウェイの設定を追加### 仮想プライベートゲートウェイとは
`Virtual Private Gateway` とも言い、
VPN接続の際にVPC側に配置するもの
複数のカスタマーゲートウェイ(ユーザ側に配置されるVPN装置)を受け付けることが出来る。### 違い
– インターネットゲートウェイ → VPC内とインターネットの接続の際に使用
– 仮想プライベートゲートウェイ → VPN接続の際にVPC側に接続するもの## 勉強後イメージ
全然違うやん!!!
特に仮想プライベートゲートウェイ忘れがち## 参考
– [4. インター
【AWS】RDSとEC2を紐づける方法
# はじめに
今回はRDSとEC2を紐づける方法について記述します。
本来であればEC2やRDSの作成の際に紐付けお行うのですが、
その工程を飛ばしてしまい、後から紐づける方法について記述いたします。
今回は自分自身のセキュリティの都合上、スクショはなく文字のみでご案内させていただきます。AWSやEC2、RDSについては下記の記事でまとめているので詳しく知りたい方は、
ぜひ参照してくださいhttps://qiita.com/kenta-nishimoto-1111/items/4760bc02a6dfa40db035
https://qiita.com/kenta-nishimoto-1111/items/4760bc02a6dfa40db035
https://qiita.com/kenta-nishimoto-1111/items/546990b12d4485a1b843
# EC2とRDSの紐付け方法
●EC2のセキュリティグループをコピーする
AWSのEC2を開き、紐付けたいインスタンスを選択します。
そしてメニューの中の「セキュリティ」を選択す
CloudWatch Synthetics について
# はじめに
CloudWatchにはSyntheticsという、アプリケーションの死活監視(外形監視)を行うサービスがあります。Canaryを作成し、APIのエンドポイントやWebページのリンクを設定することでそのエンドポイントをスクリプトで定期的に叩きに行き、落ちていた場合はSNSで通知や、CloudWatchAlarmを鳴らしたりできます。
以下公式説明です。
> Amazon CloudWatch Synthetics を使用して、スケジュールに沿って実行される設定可能なスクリプトである Canary を作成し、エンドポイントと API をモニタリングできます。Canary は顧客と同じルートをたどり、同じアクションを実行します。これにより、アプリケーションに顧客トラフィックがない場合でも、顧客エクスペリエンスを継続的に検証できます。Canary を使用すると、顧客が問題を検出する前に問題を検出できます。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_Sy
SystemsManagerのChangeManager承認リクエストをロール指定にして承認する
# Systems Managerとは
SystemsManagerとは、ランブックの実行に承認プロセスを作成することでランブック実行管理が行えるサービスです。
ランブックを指定して変更テンプレートを作成し、リクエストを作成することで「承認されたらランブックを実行する」というプロセスを作成することができます。
また、過去に承認したリクエストの履歴確認やリクエストの状態確認なども行えます。以下公式説明文
> AWS Systems Manager の機能である Change Manager は、アプリケーションの設定とインフラストラクチャに対する運用上の変更をリクエスト、承認、実装、および報告するためのエンタープライズ変更管理フレームワークです。単一の委任管理者アカウントから AWS Organizations を使用すると、複数の AWS アカウント と複数の AWS リージョン 全体で変更を管理することができます。または、ローカルアカウントを使用して、単一の AWS アカウント の変更を管理できます。AWS リソースとオンプレミスリソースの両方に対する変更を管理するには、Cha