AWS Pricing Calculatorã®ä¸æ¬ã¤ã³ãã¼ããã³ãã¬ã¼ããã¡ã¤ã«ã®æ¹è¨çä½ã£ã¦ã¿ã
ãµã¼ãã¹æ¦è¦
AWS Pricing Calculatorã®ä¸æ¬ã¤ã³ãã¼ãã¨ã¯ãAWSãç¨æããExcelã®ãã³ãã¬ã¼ãã«å¾ã£ã¦è¨å
¥ããã ãã§Calculatorãèªåçæãããã¼ã«ã§ãã
ãã ããç¾æç¹ã§é©å¿ç¯å²ã¯EC2ã¨EBSã«éå®ããã¦ãã¾ãã
Â
ã¾ãã¯æé ã«å¾ã£ã¦ç¨æããããã³ãã¬ã¼ãããã¦ã³ãã¼ããã¦ã¿ã¾ãã
â
Â
ãã¦ã³ãã¼ããããã¡ã¤ã«ããã¡ã
ç®çã»ãããããã¨
ã§ãä¸è¨ã®ãã¡ã¤ã«ãéãã¦ã¿ã¦ã
- å ¨é¨è±èª
- ãã©ã³ããããå°ããã¦è¦ã«ãã
ãªã©ãè¥å¹²ã®ä½¿ãã«ãããæãã人ãå°ãªããªãã¯ã
ããã§ããã®ãã³ãã¬ã¼ããã¡ã¤ã«ãæ¥æ¬äººã§ã使ããããã«ã¹ã¿ãã¤ãºãã¦è¦ã¾ããï¼
åããããã¨åä½ããªããªãã®ã§ãæ®å¿µãªããååã¯è±èªã®ã¾ã¾ã§ãã
ãã®ãã¡ã¤ã«ããã¡ãï¼
ã»æ¹è¯ãã®1
ã¾ãInputsã·ã¼ãã«ã¤ãã¦ããã©ã³ããæ¥æ¬äººé¦´æã¿ã®ã¡ã¤ãªãªã«ãããµã¤ãºã12ã¨è¥å¹²å¤§ãããã¦ã¿ã¾ããã
ãã¨ããã¤ãå ¥åä¾ã®ãµã³ãã«ãè¨å ¥ãã¦ããã¾ãã
ã»æ¹è¯ãã®2
次ã«å·¦å´ã®ã説æ æ¥æ¬èªãã·ã¼ãããã¡ãã¯è¨å ¥æ¹æ³ãæ¥æ¬èªã§ããªãããããããè¨è¼ãã¦ããã¾ãï¼
æ¹è¯æã®æ³¨æç¹ãè¨è¼ãã¦ãã¾ãã
Â
ã©ãã§ããããï¼ãªãªã¸ãã«ããã ãã¶ä½¿ãããããªã£ãã¯ãã§ãã
ãã¨ã¯éçºãæ¢ã¾ã£ã¦ããã®ãï¼ç¾å¨ã¾ã EC2ã¨EBSã«ãã対å¿ãã¦ãã¾ããããS3ã¨ãããããä»ã®å¨è¾ºãµã¼ãã¹ã®Caliculatorã«ã対å¿ãã¦æ¬²ããã¨ããã§ããï¼
Bedrockã«PowerPointãã¡ã¤ã«ã®ä¸èº«ã®æ¥æ¬èªé¨åãæ ¡æ£ãã¦ããã
èæ¯
åºæ¥ä¸ãã£ãã客æ§åãã®ææ¡æ¸ï¼.pptxå½¢å¼ã®PowerPointãã¡ã¤ã«ï¼ããä»ä¸ãã¨ãã¦ä½è£ã¬ãã¥ã¼ãä¾é ¼ããã¨ãã¾ããããã¯ããã¾ã§æå¾ã«ãä½è£ããæ´ããã¨ããæå³ã§ãè¦æ ããçµ±ä¸æãæ¥æ¬èªæç« ã®æ ¡æ£ã表ã®ãºã¬ãªã©é常ã«å¤ç¾©ã«æ¸¡ãã¾ãã
ä¾ãã°ä»¥ä¸ã¯ä½è£ã¬ãã¥ã¼ã®ä¸ä¾ã§ãã
P2ï¼ç®æ¬¡ã®4.ããã¸ã§ã¯ã管çã®ãã¼ã¸ããºã¬ã¦ã¾ã
P15ï¼6è¡ç®ã(Linux only) ãâï¼ï¼å ¨è§ã«ã¨ãLinuxonlyã§ã¯ç¡ãã§ããããï¼
P17ï¼åæè²»ç¨ã®åè¨ã ã太æåã«ãªã£ã¦ãã¾ã
P17ï¼æé¡è²»ç¨è¡¨ã®åè¨ãç¡ãã®ã§ãããã£ãæ¹ããããã¨æãã¾ã
P20ï¼9è¡ç®ã(å«ã¿ã¾ã)ãâï¼ï¼å ¨è§ã«
P23ï¼è¦åºãã®ã2â2ãâ2â3
åé¡ã¯äººãç®è¦ã§ãã£ã¦ãããããã¬ãã¥ã¼è ã®ä¸»è¦³ãã¬ãã¥ã¼è ã«ãã£ã¦ææç¹ãã¾ã¡ã¾ã¡ã ã¨ãããã¨ããã¡ãã人çã³ã¹ããæãã£ã¦ãã¾ãã
ç®çã»ãããããã¨
ããã§ããã®ä½è£ã¬ãã¥ã¼ãBedrockã«ããããAIã¬ãã¥ã¼ãæãã®ã¯ã©ããã¨èãã¾ããããã¡ããæåã®ãã¡ã¯LLMãããã³ããã®æªçãã§äººã«ããä½è£ã¬ãã¥ã¼ã»ã©ã®æ£ç¢ºã»æè»ãªææã¯é£ããããããã¾ããããæåã¯ä½µç¨â¨å¾ã ã«æ¹åãéãã¦äººã«ç½®ãæãããã¨ãã§ããã°ã¨æã£ã¦ãã¾ãã
çæAIã¬ãã¥ã¼ã®åé¡ç¹
ãã¡ã¤ã«ãåã¾ãããããã§ããã°ãå··ã®ç¡æçæAIãµã¤ãã«æãã¦ã¬ãã¥ã¼ãã¦è²°ãã°ããã®ã§ã¯ï¼ã¨ãããã¨ã§å¹¾ã¤ã試ãã¾ãããã次ã®åé¡ç¹ãæµ®ãã³ä¸ããã¾ããã
- ãã¡ã¤ã«æ稿ã«å¯¾å¿ãã¦ããªããã®ãå¤ãï¼PerplexityãGeminiãªã©ï¼
- Bedrockã¯ãã¡ã¤ã«ã«å¯¾å¿ãã¦ããããpptxæ¡å¼µåã«ã¯å¯¾å¿ãã¦ããªã
ãã£ããã®ãã¬ã¤ã°ã©ã¦ã³ã
Chat with your document
- ChatGPTãªã©ã¯pptxãã¡ã¤ã«ã«å¯¾å¿ãã¦ããããããã³ãããæªãã®ãã以ä¸ã®ãããªå·®ãéãã®ãªãææããè¿ã£ã¦ããªããã¨ãå¤ã
å ¨ä½çã«æã®æµãããã©ã¼ãã«ãªãã¼ã³ã¯é©åã§ããããããä¸é¨ã®è¡¨ç¾ãããé·ããæã®ãªãºã ãå´©ããã¡ãªã®ã§ãããå°ãç°¡æ½ã«ã¾ã¨ããã¨ãããã«èªã¿ããããªãã¾ãã
ææ¡æ¸ã¨ãã¦ãæè¡çãªå 容ã®æ£ç¢ºæ§ãéè¦ã§ããããã¸ãã¹ã©ã¤ã¯ãªæ¬èªã表ç¾ã使ç¨ãããã¨ã§ãããä¸å¯§ã§æ´ç·´ãããå°è±¡ãä¸ãããã¨ãã§ãã¾ãã
- çæã®æç« ã§ããã°ãæç« é¨åãç´æ¥è²¼ãä»ãã¦çæAIã«åçããããã¨ãã§ããããææ¡æ¸ã¯50ãã¼ã¸ï¼2MBï¼ãããããã®ãã¶ã©
- ãã¡ã¤ã«ãµã¤ãºã«å¶éããã
- ç¡æçã ã¨1æ¥ã®è©¦è¡åæ°ã«å¶éããã
- ä½ããç¡æã§Webã§å ¬éããã¦ããçæAIãµã¤ãã«æ©å¯ãã¡ã¤ã«ãæãããã¨ããªãã¨ãªãã»ãã¥ãªãã£çã«ä¸å®
- Slackå ã§æ°è»½ã«ãã¡ã¤ã«ãè²¼ãä»ããã
ããã§ãSlackããAWSï¼Lambdaâ¨Bedrockï¼ã¨é£æºãã¦ãã¬ãã¥ã¼çµæãSlackã«è¡¨ç¤ºãããã¨ããã¢ããªãä½ããã¨ã«ãã¾ããï¼
対象ã¨ãªãæè¡
æ¡ä»¶ï¼å°å ¥ã«ããã£ã¦ã®åæäºé ï¼
- LLMã¢ãã«ã«ã¯å½åç¾æç¹ã§æç³»æèæ¥æ¬èªæå¼·LLMã¨è¨ããããClaude 3 Opusãã使ããã¨æãã¾ããããæ¯è¼ãã¦ã¿ãçµæãææ°ã®é«æ§è½ãClaude 3.5 Sonnetããæ¡ç¨ãããã¨ã«ãã¾ããããã®è¾ºãã¯ãã£ã¨ããã¢ãã«ãåºããéæç½®ãæãã¦ãããã¨æãã¾ãã
- Lambdaã«ä»ä¸ããBedrock_S3.roleã«ã¯ã次ã®ãã¼ã«ãã¢ã¿ãã
åèURL
- Claude3ã使ã£ã¦ãã¯ãè³æãèªã¿è¾¼ãå¦çãLambdaé¢æ°ä¸ã§å®è¡ãã¦ã¿ã | DevelopersIO
- Anthropic Claude ã¡ãã»ã¼ã¸ API - Amazon Bedrock
- Bedrockï¼ãµã¼ãã¬ã¹ã§Slackããããä½æãã¦ã¿ã
- Slack Events APIã®åéä»æ§ã¨åé¿æ¹æ³ã¾ã¨ã(Serverless on AWS) | DevelopersIO
注æäºé
- ã³ã¼ãã«é¢ãã¦ã¯çµ¶å¯¾ã«ãããæ£ããã¨ããä¿è¨¼ã¯ããã¾ãããä½åãªå¦çãã¢ã¸ã¥ã¼ã«ãå«ã¾ãã¦ãã¾ã£ã¦ããã¨æãã¾ããããã¾ã§åèç¨åº¦ã«çããèªåã§ã«ã¹ã¿ãã¤ãºãã¦ä½¿ã£ã¦ãã ããã
- ä»åã¯Slackã¢ããªé¨åã«BoltãLazyãªã¹ãã¼ã¨ããä»çµã¿ã使ç¨ãã¦ãã¾ããSlackã¢ããªã«ç¹åããé¨åã¨ãªããããæ¬æ ¼çã«èª¬æããã¨æ¬è³ªãããºã¬ãããã詳細ã¯ä¸è¨ãªã³ã¯å ãåèã«ãã¦ãã ããã
æ¦è¦å³
ä½æ¥ã®æµã
äºåä½æ¥
1ï¼æ©å¯æ å ±ãå«ã¾ãªãæ¶ç©ºã®ææ¡æ¸ãç¨æ
2ï¼ä»¥ä¸ã®å 容ã®3ã¤ã®ãã¡ã¤ã«ãä½æ
requirements.txt
Dockerfile
FROM public.ecr.aws/lambda/python:3.12
# ã³ã³ããã®ä½æ¥ãã£ã¬ã¯ããªãè¨å®
WORKDIR /var/task
RUN echo sslverify=false >> /etc/yum.conf
# libreoffice ã«å¿
è¦ãªããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«
RUN dnf -y install tar gzip zlib freetype-devel make bison libxslt wget\
gcc ghostscript lcms2-devel libffi-devel libjpeg-devel libtiff-devel \
libwebp-devel openjpeg2-devel tcl-devel tk-devel xorg-x11-server-Xvfb \
zlib-devel java ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts \
&& dnf clean all
# libreoffice ãã¤ã³ã¹ãã¼ã«
RUN wget https://download.documentfoundation.org/libreoffice/stable/24.2.5/rpm/x86_64/LibreOffice_24.2.5_Linux_x8
6-64_rpm.tar.gz --no-check-certificate && \
tar -xvzf LibreOffice_24.2.5_Linux_x86-64_rpm.tar.gz && \
cd LibreOffice_24.2.5.2_Linux_x86-64_rpm/RPMS && rpm -iUvh *.rpm && \
rm *.rpm && cd ../
RUN dnf -y install cairo
# pdf2img ã«å¿
è¦ãªããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«
RUN dnf -y install poppler-utils python3 python-pip
# å¿
è¦ãªPythonããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«
COPY ./requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org
# å¿
è¦ãªãã¡ã¤ã«ãã³ã³ããã«ã³ãã¼
COPY ./app.py ${LAMBDA_TASK_ROOT}
ENV HOME=/tmp
ENV SLACK_BOT_TOKEN="xoxb-****"
ENV SLACK_SIGNING_SECRET="bc****"
# ãã³ãã©ã¼æ
å ±
CMD ["app.handler"]
Dockerfileã®ãã¤ã³ã
- libreofficeãããã±ã¼ã¸ã¤ã³ã¹ãã¼ã«
libreofficeãyumãªã©ã§å ¥ããã¨å¤ããã¼ã¸ã§ã³ã§å ¥ã£ã¦ãã¾ããææ°ã®python-pptx 1.0.2ã«å¯¾å¿ã§ããªããããLibreOffice 24.2.5ã®RPMããã±ã¼ã¸ããã¦ã³ãã¼ããã¦ãã¦å ¥ããå¿ è¦ãããã¾ããã - FROM public.ecr.aws/lambda/python:3.12
LibreOffice 24.2.5ãå ¥ããããã«Dockerã®OSãAmazon Linux 2023ã«ããå¿ è¦ããããããããã«å¯¾å¿ããpython 3.12ãããã§æå®ãã¦ãã¾ãã
â¼app.py
import json
import boto3
import re
import os
import requests
from pptx import Presentation
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
from io import BytesIO
from slack_bolt import App,Ack
from slack_bolt.adapter.aws_lambda import SlackRequestHandler
# ç°å¢å¤æ°æ¨å¥¨ï¼ãã¼ã¯ã³ç´æ¸ãã¯éæ¨å¥¨ï¼
SLACK_BOT_TOKEN = os.environ.get("SLACK_BOT_TOKEN")
SLACK_SIGNING_SECRET = os.environ.get("SLACK_SIGNING_SECRET")
# Slack APIã¯ã©ã¤ã¢ã³ããåæå
client = WebClient(token=SLACK_BOT_TOKEN)
# Boltã¢ããªã±ã¼ã·ã§ã³ãåæå
app = App(
token=SLACK_BOT_TOKEN,
signing_secret=SLACK_SIGNING_SECRET,
process_before_response=True
)
# Bedrockå¼ã³åºã
bedrock_runtime = boto3.client("bedrock-runtime", region_name="us-west-2")
def just_ack(ack):
ack()
def handle_mention(event, context):
# JSONæååãPythonã®è¾æ¸ã«å¤æãã
channel = event.get("channel")
type = event.get("type")
# ã¹ã¬ããã®ã¿ã¤ã ã¹ã¿ã³ããåå¾
thread_ts = event.get("thread_ts")
# thread_ts ã None ã®å ´åãå
ã®ã¡ãã»ã¼ã¸ã®ã¿ã¤ã ã¹ã¿ã³ãã使ç¨
if thread_ts is None:
thread_ts = event.get("ts")
# ã¹ã¬ããã¡ãã»ã¼ã¸ãåå¾
response = client.conversations_replies(channel=channel, ts=thread_ts)
message = response['messages'][0]
if "files" in message:
for file in message["files"]:
# ãã¡ã¤ã«ã®ã¿ã¤ãã確èª# æ·»ä»ãã¡ã¤ã«ãpptxãã¡ã¤ã«ã®å ´å
if file["filetype"] == "pptx":
file_url = file["url_private_download"]
# ãã¡ã¤ã«ããã¦ã³ãã¼ã
response2 = requests.get(file_url, headers={"Authorization": f"Bearer {client.token}"})
# ã¬ã¹ãã³ã¹ã®ã¹ãã¼ã¿ã¹ã³ã¼ãããã§ãã¯
if response2.status_code == 200:
# ãã¡ã¤ã«ã³ã³ãã³ããåå¾
file_content = response2.content
pptx_file = file_content
slides_text = extract_text_from_pptx(pptx_file)
corrected_text = process_slides(slides_text)
# Slackã®ãã£ã³ãã«ã«æ稿
client.chat_postMessage(
channel=channel,
thread_ts=thread_ts,
text=f"æ ¡æ£çµæ:\n{corrected_text}"
)
return {"statusCode": 200}
# pptxãã¡ã¤ã«ããããã¹ããæ½åºããé¢æ°
def extract_text_from_pptx(pptx_content):
prs = Presentation(BytesIO(pptx_content))
slides_text = []
for i, slide in enumerate(prs.slides, 0):
slide_text = f"ã¹ã©ã¤ã{i}:\n"
for shape in slide.shapes:
if hasattr(shape, 'text'):
slide_text += shape.text + '\n'
if shape.has_table:
for cell in shape.table.iter_cells():
for text in cell.text.splitlines():
slide_text += text + '\n'
slides_text.append(slide_text)
return slides_text
# ã¹ã©ã¤ããå¦çããé¢æ°
def process_slides(slides_text, batch_size=5):
results = []
for i in range(0, len(slides_text), batch_size):
batch = slides_text[i:i+batch_size]
batch_text = "\n\n".join(batch)
result = bedrock_check(batch_text)
# ä¸è¦ãªåçãé¤å»
filtered_result = filter_unnecessary_responses(result)
if filtered_result.strip(): # 空ã®çµæãé¤å¤
results.append(filtered_result)
time.sleep(1) # APIãªã¯ã¨ã¹ãã®ééã空ãã
return "\n\n".join(results)
# Bedrockã§æ ¡æ£ãããé¢æ°
def bedrock_check(text):
prompt = f"""ããªãã¯æ¥æ¬èªã®æ ¡æ£ã¨ææ¸ãã©ã¼ãããã®å°é家ã§ãã
以ä¸ã®æ示ã«å¾ã£ã¦ããã¯ã¼ãã¤ã³ããã¡ã¤ã«å
ã®ããã¹ãé¨åãæ½åºããããã¹ããã¡ã¤ã«ã®å
容ãå¾¹åºçã«ãã§ãã¯ãã¦ãã ããï¼
1. å
容ãã§ãã¯ï¼
- å
¬éãã¹ãã§ãªãæ
å ±ãã社å
éãã®æ
å ±ãå«ã¾ãã¦ããªãã
- ã客æ§ã«å¯¾ãã¦å¤±ç¤¼ã¾ãã¯ä¸é©åãªè¡¨ç¾
- æ¥çç¨èªãå°éç¨èªã®é©åãªä½¿ç¨
2. ææ³ãã§ãã¯ï¼
- æ¬èªï¼å°æ¬èªãè¬è²èªãä¸å¯§èªï¼ã®é©åãªä½¿ç¨
- 誤åè±åï¼ã¹ãã«ãã¹ãæ¼¢åã®ééãããªãããå¥èªç¹ã®ä½¿ç¨ãé©åãï¼
- ææ³çãªèª¤ã
3. ã¹ã¿ã¤ã«ãã§ãã¯ï¼
- ä¸è²«æ§ã®ããæä½
- ç°¡æ½ã§æçãªè¡¨ç¾
- èªç¶ãªæ¥æ¬èªè¡¨ç¾ã«ãªã£ã¦ããã
- ç¨èªã®ä½¿ç¨ãææ¸å
¨ä½ã§çµ±ä¸ããã¦ããã
4. ãã©ã¼ããããã§ãã¯ï¼
- ãã©ã³ãã®ä¸è²«æ§ï¼ç¨®é¡ããµã¤ãºï¼
- 太åãæä½ãä¸ç·ã®é©åãªä½¿ç¨
- æåééãè¡éã®çµ±ä¸æ§
- ç®æ¡æ¸ããçªå·ä»ããªã¹ãã®ä¸è²«æ§
5. ã客æ§ã«å¯¾ããé
æ
®ï¼
- 失礼ã¾ãã¯ä¸é©åãªè¡¨ç¾ããªãã
- ãã¸ãã¹ææ¸ã¨ãã¦é©åãªä¸å¯§ããä¿ããã¦ããã
6. ãã¼ãã«ãã§ãã¯
- 表å
ã«æ°å¤ããã£ãå ´åããã®æ°å¤ã®åè¨ãªã©ãåã£ã¦ããã
- 誤åè±åããªãã
åã¹ã©ã¤ããé çªã«ãã§ãã¯ããææäºé
ãããå ´åã®ã¿ä»¥ä¸ã®å½¢å¼ã§å ±åãã¦ãã ããã
ã¹ã©ã¤ãçªå·ï¼
- [ã«ãã´ãª] å
·ä½çãªåé¡ç¹ã¨ä¿®æ£æ¡
ãã§ãã¯å¯¾è±¡ã®ããã¹ãï¼
{text}
"""
content_prompt = {
"type": "text",
"text": prompt,
}
content = [content_prompt]
messages = [
{"role": "user", "content": content},
]
body = json.dumps(
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 8192,
"temperature": 0,
"messages": messages,
}
)
response = bedrock_runtime.invoke_model(
body=body,
modelId="anthropic.claude-3-opus-20240229-v1:0",
# modelId="anthropic.claude-3-5-sonnet-20240620-v1:0",
accept="application/json",
contentType="application/json",
)
response_body = json.loads(response.get("body").read())
corrected_text = response_body['content'][0]['text']
return corrected_text
# ä¸è¦ãªææãæé¤ããé¢æ°
def filter_unnecessary_responses(text):
# ã¹ã©ã¤ãçªå·ãã¨ã«åå²
slides = re.split(r'(ã¹ã©ã¤ã\d+:)', text)
filtered_slides = []
for i in range(1, len(slides), 2):
slide_header = slides[i]
slide_content = slides[i+1] if i+1 < len(slides) else ""
# "ææäºé
ã¯ããã¾ãã" ã "ç¹ã«åé¡ãªã" ãªã©ã®ä¸è¦ãªåçãå«ã¾ãªãã¹ã©ã¤ãã®ã¿ãä¿æ
if not re.search(r'ææäºé
(ã¯|ã)ããã¾ãã|ç¹ã«åé¡(ã¯|ã)ãªã|該å½ãªã|ææäºé
ãªã', slide_content, re.IGNORECASE):
filtered_slides.append(slide_header + slide_content)
return "\n".join(filtered_slides)
# Lazy listeners
app.event("app_mention")(ack=just_ack, lazy=[handle_mention])
# Lambdaç¨ãã³ãã©ã¼
def handler(event, context):
header = event.get('headers', {})
# ãããã¼ã«x-slack-retry-numãå
¥ã£ã¦ããããªãã©ã¤ãªã®ã§çµäºã«ãã
if "x-slack-retry-num" in header:
return 200
else:
slack_handler = SlackRequestHandler(app=app)
return slack_handler.handle(event, context)
app.pyã®ãã¤ã³ã
- Boltã¢ããªã±ã¼ã·ã§ã³
Boltã¨ã¯ããªã¹ãã¼é¢æ°ãªã©ã使ã£ã¦æ§ã ãªã¤ãã³ãã«å¿çããã¤ã³ã¿ã©ã¯ãã£ããªSlackã¢ããªãéçºãããã¬ã¼ã ã¯ã¼ã¯ã§ããJavaScript(Node.js)ãPythonãJavaã«å¯¾å¿ãã¦ãããä»åBolt for Pythonã§Lazy Listenersã¨ããæ©è½ã使ãç®çã®ãããå ¥ãã¾ããã
Bolt å ¥éã¬ã¤ã | Bolt for Pythonããã以ä¸ãè¡ããã¨ã§å®è£ ã§ãã¾ãã
pip install slack_bolt
import os
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
app = App(token=os.environ.get("SLACK_BOT_TOKEN"))
- Slackãããã¡ã¤ã«ããã¦ã³ãã¼ã
file_url = file["url_private_download"]
# ãã¡ã¤ã«ããã¦ã³ãã¼ã
response2 = requests.get(file_url, headers={"Authorization": f"Bearer {client.token}"})
ãPythonãSlackbotã§Slackãããã¡ã¤ã«ããã¦ã³ãã¼ããã - ã¿ãã³ã®ã©ã£ã¨ã´ã¼ãã ãåèã«ãã¾ãfile["url_private_download"]ã§ãã¡ã¤ã«ã®URLãåã£ã¦ãã¾ãã次ã«ããã®URLãæå®ãã¦å®éã®ãã¡ã¤ã«ããã¦ã³ãã¼ããã¾ãããã®éã«APIãã¼ã¯ã³ã®æå®ãå¿
è¦ã«ãªãã¾ããheaders={"Authorization": f"Bearer {client.token}"}
- python-pptxã©ã¤ãã©ãª
python-pptxã¨ã¯ããã¬ã¼ã³ãã¼ã·ã§ã³å½¢å¼ãã¡ã¤ã«ï¼.pptxï¼ãä½æã§ããpythonã©ã¤ãã©ãªã§ããä»åpptxãã¡ã¤ã«ãèªã¿è¾¼ãã§ããã¹ããæ½åºããããå°å ¥ãã¾ããã
Pythonã§ãã¯ãè³æï¼ã¹ã©ã¤ãï¼ä½æãèªååãããï¼ - AI Academy Mediaããã以ä¸ãè¡ããã¨ã§å®è£ ã§ãã¾ãã
pip install python-pptx
from pptx import Presentation
prs = Presentation() # Presentationã¯ã©ã¹ãã¤ã³ã¹ã¿ã³ã¹å
- Bedrockã®ããã³ãã
prompt = f"""ããªãã¯æ¥æ¬èªã®æ ¡æ£ã¨ææ¸ãã©ã¼ãããã®å°é家ã§ãã
以ä¸ã®æ示ã«å¾ã£ã¦ããã¯ã¼ãã¤ã³ããã¡ã¤ã«å
ã®ããã¹ãé¨åãæ½åºããããã¹ããã¡ã¤ã«ã®å
容ãå¾¹åºçã«ãã§ãã¯ãã¦ãã ããï¼
1. å
容ãã§ãã¯ï¼
ãã
2. ææ³ãã§ãã¯ï¼
ãã
ããã¯ããªãè¦å´ãã¾ããããä»åã®ãæ¥æ¬èªæ ¡æ£ãã¨ãããã¼ãã§ã¯æãèã«ãªãé¨åã§ããç®æ¡æ¸ããé·ãããã¨ã
- å 容ãã§ãã¯ï¼åé¡ããã¾ãã
- ææ³ãã§ãã¯ï¼åé¡ããã¾ãã
ã¨ããããã«å ¨é¨ãåé¡ããã¾ãããã§çµãã£ã¦ãã¾ãã¾ããã§ãã®ã§ãã§ãã¯ãã¤ã³ãã®ç¾ åã¯é·ãããçãããã®ç¨ãããã©ã³ã¹ãè¦ã¤ãããã¨ã大äºã§ãã
-
åçã®ã©ã³ãã æ§ã極åæ¸ãããããBedrockã®temperatureï¼æ¸©åº¦ï¼ã¯0ã«è¨å®
温度ï¼ã©ã³ãã æ§ã®åº¦åãã調æ´ããããã«ä½¿ç¨ãããæ°å¤ï¼ããã©ã«ã0.9ã0ã5ï¼
çæã¢ãã«ããã®ãµã³ããªã³ã°ã«ã¯ã©ã³ãã æ§ãçµã¿è¾¼ã¾ãã¦ãããããåãããã³ããã§ãä¸ä»£ãã¨ã«ç°ãªãåºåãçæãããå ´åãããã¾ããå¿çã®ã©ã³ãã æ§ãæ¸ããã«ã¯ãããä½ãå¤ã使ç¨ãã¾ãã -
Lazy listeners
Lazyï¼æ æ ¢ãªï¼ãªã¹ãã¼ã¨ã¯ãéåæå¦çãå¥ã®Lambdaé¢æ°ã¸å²ãå½ã¦ãæ©è½ã§ãã
Lazy ãªã¹ãã¼ï¼FaaSï¼ | Bolt for Pythonã«è¨è¼ããã¦ããããã«ããlazy=ãã§éåæå¦çé¢æ°ãå¼ã³åºãã¦ãã¾ãã
app.event("app_mention")(ack=just_ack, lazy=[handle_mention])
- X-Slack-Retry-Num
X-Slack-Retry-Numã¨ããHTTPãããã¼ã«ãX-Slack-Retry-Num:1ãã®ããã«ãªãã©ã¤ã®åæ°ã®æ å ±ãå«ã¾ãã¦ããã®ã§ããã®ãããã¼ãå«ã¾ãã¦ããã¨ãã¯200ãè¿ãã¦çµãããã¦ãã¾ãã
header = event.get('headers', {})
if "x-slack-retry-num" in header:
return 200
Slackã¢ããªã®ç»é²
slack apiã«ã¦ã¢ããªãç»é²ãã¾ãã
1ï¼Create an appã§ãFrom scratchããé¸ã³ã¾ãã
2ï¼ã¢ããªåã¨å°å ¥ããã¯ã¼ã¯ã¹ãã¼ã¹ãé¸ãã§[Create App]
3ï¼Slackããå¼ã³åºãURLã決ãã
ã¢ããªã¯ãé¸æããURLã§Slackã®ã¤ãã³ã(ã¦ã¼ã¶ã¼ããªã¢ã¯ã·ã§ã³ã追å ãããããã¡ã¤ã«ãä½æããã¨ããªã©)ã®éç¥ãåãåãããã«ãµãã¹ã¯ã©ã¤ãã§ãã¾ãããã®éã«ç¨ãããªã¯ã¨ã¹ãURLã決ãããããããã¯ä¸æ¦ä¿çãã¦ãå¾ã®Lambdaãæºåã§ããå¾ã«ã¾ãæ»ã£ã¦ãããã¨ã«ãã¾ãã
æé
ã³ã¼ããECRãªãã¸ããªã«PUSH
æå
ã®MacãCloud 9ã©ã¡ãã§ãããã®ã§ãç¨æãã3ã¤ã®ãã¡ã¤ã«ã次ã®ããã«é
ç½®ãããã«ãããPUSHã¾ã§dockerã³ãã³ãã使ããdockerç°å¢ã§ä¸è¨ä½æ¥ãè¡ãã¾ãã
pptxãã£ã¬ã¯ããª
âDockerfileãã¡ã¤ã«
ârequirements.txtãã¡ã¤ã«
âapp.pyãã¡ã¤ã«
1ï¼ãã«ã
% docker build -t nozaki-rep .
[+] Building 26.6s (16/16) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
ããã
=> => naming to docker.io/library/nozaki-rep 0.0s
What's next:
View a summary of image vulnerabilities and recommendations â docker scout quickview
2ï¼ã¿ã°ä»ã
% docker tag nozaki-rep:latest 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/nozaki-rep
3ï¼ECRãã°ã¤ã³
% aws ecr get-login-password --region ap-northeast-1 --no-verify | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com
urllib3/connectionpool.py:1063: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.ecr.ap-northeast-1.amazonaws.com'.
Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/1.26.x/advanced-usage.html#ssl-warnings
Login Succeeded
4ï¼PUSH
% docker push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/nozaki-rep
Using default tag: latest
The push refers to repository [123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/nozaki-rep]
cf7c7eefe9c2: Pushed
456541b5bfba: Pushed
c8d68278ba1b: Pushed
5ac14a4ce153: Pushed
efc06e5766e7: Pushed
93d6f734e916: Pushed
58c3eb3010cf: Pushed
5f142f1e76fb: Pushed
32d6a65b3647: Pushed
5f70bf18a086: Pushed
0274404cdadc: Layer already exists
3afe23385c51: Layer already exists
c88f3983c839: Layer already exists
f5e83de1dfd4: Layer already exists
0d39f7236e4f: Pushed
0044b36762be: Layer already exists
latest: digest: sha256:d*******
Â
Lambdaç°å¢ã®ä½æ
1ï¼Lambda > é¢æ° > [é¢æ°ã®ä½æ]
2ï¼é¢æ°ã®ä½æ
ã³ã³ããã¤ã¡ã¼ã¸ãããããã¤ããããã[ã³ã³ããã¤ã¡ã¼ã¸]ãé¸æãã以ä¸ã®ããã«å
¥å
3ï¼å®è¡ãã¼ã«
æ¡ä»¶ã§ç¨æãã¦ããBedrock_S3.roleãé¸æ
æå¾ã«[é¢æ°ã®ä½æ]
4ï¼[ã¤ã¡ã¼ã¸]ã¿ã > [æ°ããã¤ã¡ã¼ã¸ããããã¤]
5ï¼ã¤ã¡ã¼ã¸ãåç
§
ECRã¤ã¡ã¼ã¸ãªãã¸ããªã§å
ã»ã©ä½æãããnozaki-repããé¸æ
ã¤ã¡ã¼ã¸ã¿ã°ããlatestãã«ãªã£ã¦ãã[ã¤ã¡ã¼ã¸ãé¸æ]ãã¦[ä¿å]
ãæ´æ°ä¸ã§ããã¨è¡¨ç¤ºããã1åããããããã®ã§å¾ ã¤
6ï¼Lambdaé¢æ°åãªã©å´ãä½æããããè¨å®â¨é¢æ°URLã§ãé¢æ°URLãä½æããã¦Lambdaé¢æ°ã®URLãçæãã¾ãã
7ï¼èªè¨¼ã¯Noneï¼ãªãï¼ã§å¤§ä¸å¤«ã§ãã
8ï¼[ä¿å]ããã¨ã以ä¸ã®ãããªé¢æ°URLãçæ
ãã®ä»Lambdaã®è¨å®å¤èª¿æ´
ã¿ã¤ã ã¢ã¦ãã¨å試è¡æ°ãè¨å®ãã¦ãLambdaé¢æ°ãè¤æ°åå®è¡ãããä¸å
·åãä¿®æ£ãã¦ã¿ã | DevelopersIO ãèªãã¨ãã¿ã¤ã ã¢ã¦ããçãå試è¡åæ°ãããã¨Lambdaãä½åº¦ãå®è¡ããã¦ãã¾ããããªã®ã§ããã©ã¡ã¼ã¿ã調æ´ãã¾ãã
-
ã¿ã¤ã ã¢ã¦ã
ããã©ã«ãã®3ç§ã§ã¯çãããã®ã§ã10åã¨ååé·ããã¦ããã¾ãããå®é6åããããããã®ã§ -
éåæå¼ã³åºãå試è¡æ°
2åã«ãªã£ã¦ããã®ã§0ã«ãã¾ãæ大æå¹æéã60æéããé·ãããã®ã§10åã«ãã¾ãããÂ
åã³slack apiã«
1ï¼ã¢ããªã®Featuresâ¨Event Subscriptionsâ¨Enable EventsãOnã«ãã¾ãã
2ï¼Request URLã«åæé 3.ã§çæããé¢æ°URLãå
¥ããã®ã§ããããã®åã«å°ãã³ã¼ãããããã¾ãã
ã¤ãã³ããçºçããã¨ãHTTP POSTãªã¯ã¨ã¹ãããã®URLã«éä¿¡ããã¾ããURLãå
¥åããã¨ããã«ãchallengeãã©ã¡ã¼ã¿ãå«ããªã¯ã¨ã¹ããéä¿¡ããã¾ããã¨ã³ããã¤ã³ãã¯ãã®challengeå¤ã§å¿çããå¿
è¦ãããããã次ã®ã³ã¼ãã追å ãã¾ãã
def lambda_handler(event, context):
data = json.loads(event["body"])
if "challenge" in data:
return {"statusCode": 200, "body": data["challenge"]}
ããã§Verifiedã«ãªãã¾ããã
ä¸æ¦ãããéãããããã°ãå¾ããä¸è¨ã®ã³ã¼ããå¤ãã¦ãæ§ãã¾ããã
3ï¼Subscribe to bot events
ã¢ããªã¯ãããã ã¦ã¼ã¶ã¼ãã¢ã¯ã»ã¹ã§ããã¤ãã³ã(ãã£ãã«å
ã®æ°ããã¡ãã»ã¼ã¸ãªã©)ãåä¿¡ããããã«ãµãã¹ã¯ã©ã¤ãã§ãã¾ããã¤ã¾ããã©ããªæã«slack botãçºåãããããããã§å®ç¾©ãã¾ããã¢ããªãã¡ã³ã·ã§ã³ããæã ãçºåãããapp_mentionããé¸æãã[Save Changes]
4ï¼OAuth & Permissions
Lambdaã®ã³ã¼ãå
ã§ä½¿ããã¨ã«ãªãBot User OAuth Tokenï¼xoxbãã§å§ã¾ãï¼ãã¡ã¢ãã¦ããã¾ãã
次ã«ãslack botã«ä½ãã§ããããã«ããããã®æ¨©éãä»ä¸ãã¾ãã
ããã§ã¯ä»¥ä¸ãä»ä¸ãã¾ããã
- app_mentions:read
ã¢ããªãåå ãã¦ããä¼è©±ã§ãã¢ããªã«ã¤ãã¦ç´æ¥è¨åãã¦ããã¡ãã»ã¼ã¸ã表示ãã - calls:read
é²è¡ä¸ããã³éå»ã®é話ã«é¢ããæ å ±ã表示 - calls:write
ã¯ã¼ã¯ã¹ãã¼ã¹ã§é話ãéå§ããã³ç®¡ç - channels:history
ã¢ããªã追å ããããããªãã¯ãã£ãã«ã®ã¡ãã»ã¼ã¸ããã®ä»ã®ã³ã³ãã³ãã表示 - channels:join
ã¯ã¼ã¯ã¹ãã¼ã¹ã®ãããªãã¯ãã£ã³ãã«ã«åå - channels:read
ã¯ã¼ã¯ã¹ãã¼ã¹å ã®ãããªãã¯ã»ãã£ã³ãã«ã®åºæ¬æ å ±ã表示 - chat:write
ã¡ãã»ã¼ã¸ãã¢ããªã¨ãã¦éä¿¡ - groups:history
ã¢ããªã追å ããããã©ã¤ãã¼ããã£ãã«ã®ã¡ãã»ã¼ã¸ããã®ä»ã®ã³ã³ãã³ãã表示 - groups:read
ã¢ããªã追å ããããã©ã¤ãã¼ããã£ã³ãã«ã®åºæ¬æ å ±ãè¦ã - im:history
ã¢ããªã追å ããããã¤ã¬ã¯ã ã¡ãã»ã¼ã¸å ã®ã¡ãã»ã¼ã¸ããã®ä»ã®ã³ã³ãã³ãã表示 - im:read
ã¢ããªã«è¿½å ããããã¤ã¬ã¯ãã¡ãã»ã¼ã¸ã®åºæ¬æ å ±ãè¦ã - incoming-webhook
Slackã®ç¹å®ã®ãã£ã³ãã«ã«ã¡ãã»ã¼ã¸ãæ稿 - mpim:history
ã¢ããªã追å ãããã°ã«ã¼ããã¤ã¬ã¯ãã¡ãã»ã¼ã¸ã®ã¡ãã»ã¼ã¸ããã®ä»ã®ã³ã³ãã³ãã表示 - mpim:read
ã¢ããªã追å ãããã°ã«ã¼ããã¤ã¬ã¯ãã¡ãã»ã¼ã¸ã®åºæ¬æ å ±ãè¦ã - users:read
ã¯ã¼ã¯ã¹ãã¼ã¹å ã®ã¦ã¼ã¶ã¼ã表示 - users:write
ã¢ããªã®ãã¬ã¼ã³ã¹ãè¨å® - files:read
ã¢ããªã追å ããã¦ãããã£ã³ãã«ãä¼è©±ã§å ±æããã¦ãããã¡ã¤ã«ã表示
5ï¼ã¯ã¼ã¯ã¹ãã¼ã¹ã¸ã®ã¢ããªã®ã¤ã³ã¹ãã¼ã«ãå®äºããã¨ãOAuthãã¼ã¯ã³ãèªåçã«çæããã¾ãããããã®ãã¼ã¯ã³ã使ç¨ãã¦ã¢ããªãèªè¨¼ãã¾ãã
Â
ããã§ããããBot User OAuth Tokenãçæããããããã¡ã¢ãã¦ããã¾ãã
6ï¼ã¢ããªããã£ã³ãã«ã«åå
Â
è¦å´ãã¤ã³ãï¼Slackç¹æã®3ç§ã«ã¼ã«
ãã¡ã¤ã«ã2MBãã£ã¦Postãããã¾ã§æéãããããããæåã®Slackâ¨Lambdaã§ä½åº¦ãLambdaãInvocationãã¦ãããã§ãåãã¬ã¹ãä½åº¦ãå ¥ã£ã¦ãã¾ã£ã¦ãã¾ããã
ãã®è¾ºãã®åé¡ã«ã¤ãã¦ã¯ãSlack Events APIã®åéä»æ§ã¨åé¿æ¹æ³ã¾ã¨ã(Serverless on AWS) | DevelopersIO ãããã¾ã¨ã¾ã£ã¦ãã¾ãã
ã·ã¹ãã çã«SQSãæãã§ãã¥ã¼ã¤ã³ã°ããããLambdaããLambdaãããã¯ããæ¹æ³ãããããã§ããã
ä»ã«å¯¾å¦çã ãã©ããªãã©ã¤ç¡è¦ããããã«ãã¦ã¾ãã
def ignore_retry_request(request, ack, next):
"""ãªãã©ã¤ãç¡è¦ããé¢æ°"""
if "x-slack-retry-num" in request.headers:
return ack()
next()
app.use(ignore_retry_request)
ãã¡ãã¯ifæã使ã£ã¦ãããã¼ãè¦ã¦åé¿ãã¾ããã
ã¢ã¸ã¥ã¼ã«å´ã§å®è£ ããã¦ããLazy Listenersæ©è½ã使ã£ãå°æã¯ãBolt for Python ã FaaS ã§ã®å®è¡ã®ããã«è§£æ±ºããèª²é¡ #AWS - Qiita ã詳ããã£ãã§ãã
以ä¸ã«ãããCloudWatchã§ããã®ããã«2åã®çºåã§æ¸ãã§ãã¾ãã
Â
Â
ç®çéæï¼
@PowerPoint Proofreadingãã¡ã³ã·ã§ã³ãã¦pptxãã¡ã¤ã«ãæ稿ãã¾ãã
ããã¨ã5åçµéå¾ããã®ã¹ã¬ããå ã«ãªãã©ã¤ï¼2åã«åãã¦ãã®ã§2件ï¼ãã¦ãæ¥æ¬èªæç« ã®æ ¡æ£ããã¦ææãã¦ãããããã«ãªãã¾ããï¼
ã¢ãã«ã¯çµå±ã©ããããã®ï¼
ããã§Claude 3 opusã¨Claude 3.5 sonnetã©ã¡ãã®Anthropicã¢ãã«ãæ¡ç¨ãã¹ããããã®ææçµæãæ¯è¼ãã¦å¤æãããã¨ã«ãã¾ããã50ã¹ã©ã¤ãå ¨é¨æ¯è¼ããã¨å¤§å¤ãªã®ã§ãæåã®10ã¹ã©ã¤ãåã ãè¦ã¦ã¿ã¾ãã
LLM | Claude 3 opus | Claude 3.5 sonnet |
---|---|---|
ã¹ã©ã¤ã1 | [ææ³ãã§ãã¯] ãå¼ç¤¾ã¯ã2003å¹´ã«åµæ¥ãã¦ãã常ã«ãä¸æ©é²ãã ã½ãªã¥ã¼ã·ã§ã³ãæä¾ãç¶ãããã¼ããã¼ã¨ãã¦ã大ä¼æ¥ã«å¼ããåããªãé«å質ãªéçºãå®ç¾ãã¦ã¾ããã¾ããããã®æãé·ããèªã¿ã«ããã§ããæãåå²ãããã¨ããããããã¾ããä¿®æ£æ¡ï¼ãå¼ç¤¾ã¯ã2003å¹´ã®åµæ¥ä»¥æ¥ã常ã«ä¸æ©é²ãã ã½ãªã¥ã¼ã·ã§ã³ãæä¾ãç¶ãããã¼ããã¼ã¨ãã¦æ©ãã§ã¾ããã¾ããã大ä¼æ¥ã«å¼ããåããªãé«å質ãªéçºãå®ç¾ãã¦ãããã¨ãå¼ç¤¾ã®å¼·ã¿ã§ããã | [ææ³ãã§ãã¯] "å¼ããåããªã"ã¯"å¼ããåããªã"ãæ£ãã表è¨ã§ãã [ã¹ã¿ã¤ã«ãã§ãã¯] "ãããªãã¯ã¯ã©ã¦ãï¼AWS, Azure, GCPï¼"ã®æ¬å¼§å ã¯ã«ã³ãã®å¾ã«ã¹ãã¼ã¹ãå ¥ããã®ãä¸è¬çã§ããä¿®æ£æ¡: "ãããªãã¯ã¯ã©ã¦ãï¼AWS, Azure, GCPï¼" |
ã¹ã©ã¤ã2 | [ãã©ã¼ããããã§ãã¯] ç®æ¬¡ã®åé
ç®ã®åä¸ãã«ã°ãã¤ããããã¾ããã¤ã³ãã³ããçµ±ä¸ãããã¨ããããããã¾ãã [ãã©ã¼ããããã§ãã¯] ãã¼ã¸çªå·ã®ä½ç½®ãçµ±ä¸ããã¦ãã¾ããããã¼ã¸çªå·ã¯å³ä¸ã«é ç½®ããã®ãä¸è¬çã§ãã |
[ãã©ã¼ããããã§ãã¯] ç®æ¬¡ã®çªå·ä»ããä¸è²«ãã¦ãã¾ãããä¾ãã°ã"4. ããã¸ã§ã¯ã管ç"ã®å¾ã«"5. ç£è¦ã»éç¨ä¿å®"ãããã¾ããããã®éã«çªå·ã®ãªãé
ç®ãããã¾ãã [ã¹ã¿ã¤ã«ãã§ãã¯] "Appendix"ã¯æ¥æ¬èªææ¸ã§ã¯"ä»é²"ã¨ããã®ãä¸è¬çã§ãã |
ã¹ã©ã¤ã4 | - [ææ³ãã§ãã¯ã»ã¹ã¿ã¤ã«ãã§ãã¯] ãå¼ç¤¾å¯¾å¿æ¹éãã®ç®æ¡æ¸ãã®ææ«ãçµ±ä¸ããã¦ãã¾ãããããè´ãã¾ãããããã¦ããã¾ããããè´ãã¾ããã¨ãªã£ã¦ãã¾ãããããããã¾ããã§çµ±ä¸ãããã¨ããããããã¾ãã [誤åè±å] ãä¸è¨2éãæ示ããã¦ããã ãããã®ããããã¯èª¤åã§ããããã¾ãããæ£ããã§ãã |
[ææ³ãã§ãã¯] "CLOUDããAWSã¸ã®ç§»è¡"ã®"CLOUD"ã¯å°æåãé©åã§ãã [ã¹ã¿ã¤ã«ãã§ãã¯] "F社"ã¨ãã表è¨ã¯ãå®éã®ç¤¾åãä¼ãã¦ãããã®ã¨æããã¾ãããææ¸å ¨ä½ã§ä¸è²«ãã¦ä½¿ç¨ããã¦ããã確èªãå¿ è¦ã§ãã [ææ³ãã§ãã¯] "æ示ããã¦ããã ãã"ã¯"æ示ããã¦ããã ãã¾ã"ã®èª¤ãã§ãã [ãã©ã¼ããããã§ãã¯] ç®æ¡æ¸ãã®å½¢å¼ãä¸è²«ãã¦ãã¾ãããä¸é¨ã®é ç®ã«ã®ã¿ä¸¸ç¹ï¼ã»ï¼ã使ç¨ããã¦ãã¾ãã |
ã¹ã©ã¤ã5 | [ææ³ãã§ãã¯] ã移è¡æ¤è¨ä¸ã®å¯¾è±¡ãµã¼ãã¯ä¸è¨100å°ãæ³å®ãã¦ããã¾ãããã®ææ«è¡¨ç¾ãä¸é©åã§ãããæ³å®ãã¦ãã¾ãããããæ³å®ãã¦ããã¾ãããã«ä¿®æ£ãããã¨ããããããã¾ãã [ææ³ãã§ãã¯] 表å ã®ãZabixç£è¦ãµã¼ããã®ã¹ãã«ãã¹ãããã¾ãããZabbixç£è¦ãµã¼ãããæ£ããã¹ãã«ã§ãã [ã¹ã¿ã¤ã«ãã§ãã¯] 表å ã®æç« ã®æ«å°¾ããããã§çµ±ä¸ããã¦ãã¾ãããæç« ã®çµããã«ã¯ããããã¤ããããã«çµ±ä¸ãããã¨ããããããã¾ãã |
[å
容ãã§ãã¯] "Zabixç£è¦ãµã¼ã"ã¯"Zabbixç£è¦ãµã¼ã"ã®èª¤ãã ã¨æããã¾ããä¿®æ£ããå§ããã¾ãã [ãã©ã¼ããããã§ãã¯] 表ã®åå¹ ãä¸åä¸ã§ããç¹ã«"åè"åãçããå 容ãèªã¿ã«ãããªã£ã¦ãã¾ããåå¹ ã調æ´ãããã¨ããå§ããã¾ãã |
ã¹ã©ã¤ã6 | [ææ³ãã§ãã¯] ãæ¬ããã¸ã§ã¯ãã«ãããã¹ã±ã¸ã¥ã¼ã«ã¯ä¸è¨ã®éããæ³å®ãã¦ãããããã®ã¹ãã«ãã¹ãããã¾ãããæ³å®ãã¦ããã¾ããããæ£ãã表ç¾ã§ãã [ãã©ã¼ããããã§ãã¯] 表å ã®ãã©ã³ããµã¤ãºãã°ãã°ãã§çµ±ä¸ããã¦ãã¾ããããã©ã³ããµã¤ãºãçµ±ä¸ãããã¨ããããããã¾ãã |
[ææ³ãã§ãã¯] "æ³å®ãã¦ãããã"ã¯"æ³å®ãã¦ããã¾ãã"ã®èª¤ãã§ããä¿®æ£ãå¿
è¦ã§ãã [ãã©ã¼ããããã§ãã¯] 表ã®åå¹ ãä¸åä¸ã§ãç¹ã«æã®åãçããªã£ã¦ãã¾ãã調æ´ããå§ããã¾ãã [ã¹ã¿ã¤ã«ãã§ãã¯] "ï¼æ"ã®ã¿å ¨è§æ°åã«ãªã£ã¦ãã¾ããä»ã®æã¨çµ±ä¸ãã¦"9æ"ã¨ãããã¨ããå§ããã¾ãã |
ã¹ã©ã¤ã8 | [ææ³ãã§ãã¯] ã移è¡é²æã«å¿
è¦ãªãã¼ãã£ã³ã°ã¸ã®åå¸ãæ
å ±æ´çã»æä¾ããç®æ¡æ¸ãã«ãªã£ã¦ãã¾ãããä»ã®é
ç®ã¨åæ§ã«ç®æ¡æ¸ãã«ãããã¨ããããããã¾ãã [ãã©ã¼ããããã§ãã¯] æ³å®åç»ã¡ã³ãã¼ã®äººæ°è¡¨è¨ãæ°åã®ã¿ã«ãªã£ã¦ãã¾ãããåãã追å ãã¦ã100åãã®ããã«çµ±ä¸ãããã¨ããããããã¾ãã |
[ãã©ã¼ããããã§ãã¯] "æ³å®åç»ã¡ã³ãã¼"ã®è¡¨ã§ã人æ°ã100åã101åã¨ãªã£ã¦ãã¾ãããããã¯èª¤ãã®å¯è½æ§ãé«ãã§ããå®éã®æ³å®äººæ°ã«ä¿®æ£ãããã¨ããå§ããã¾ãã |
ã¹ã©ã¤ã9 | [ææ³ãã§ãã¯] ã移è¡é²æã«å¿ è¦ãªãã¼ãã£ã³ã°ã¸ã®åå¸ãæ å ±æ´çã»æä¾ããç®æ¡æ¸ãã«ãªã£ã¦ãã¾ãããä»ã®é ç®ã¨åæ§ã«ç®æ¡æ¸ãã«ãããã¨ããããããã¾ãã | [ãã©ã¼ããããã§ãã¯] "æ³å®åç»ã¡ã³ãã¼"ã®è¡¨ã§ã人æ°ã100åã200åã¨ãªã£ã¦ãã¾ãããããã誤ãã®å¯è½æ§ãé«ãã§ããå®éã®æ³å®äººæ°ã«ä¿®æ£ãããã¨ããå§ããã¾ãã 表ã®ãã©ã¼ããããä¸è²«ãã¦ããªãç®æãããã¾ããç¹ã«åå¹ ãè¡é«ãã®èª¿æ´ãå¿ è¦ãªç®æãããã¾ãã æ°å¤ã®è¡¨è¨ï¼ç¹ã«äººæ°ï¼ã«ä¸èªç¶ãªç¹ãããã¾ããå®éã®æ°å¤ã確èªããä¿®æ£ãããã¨ããå§ããã¾ãã |
ã¹ã©ã¤ã10 | [å
容] "Zbixç£è¦ãµã¼ã"ã¯ä¸è¬çãªç¨èªã§ã¯ãªãããã"Zabbixç£è¦ãµã¼ã"ã«ä¿®æ£ãããã¨ãææ¡ãã¾ãã [å 容] "New Relic"ã¯è£½ååã®ããã"New Relic"ã¨ãã¹ãã§ãã [ã¹ã¿ã¤ã«] "è´ãã¾ã"ã¯å°ã硬ã表ç¾ãªã®ã§ã"ãããã¾ã"ã«å¤æ´ãããã¨ããããããã¾ãã [ãã©ã¼ããã] ç®æ¡æ¸ãã®è¨å·ã"â»"ã¨ãªã£ã¦ãã¾ãããä»ã®ã¹ã©ã¤ãã§ã¯"ã»"ã使ç¨ããã¦ãããããçµ±ä¸ãããã¨ãæ¨å¥¨ãã¾ãã |
[誤å] "Zbix" â "Zabbix" [ææ³] "æ¤è¨è´ãã¾ãã" â "æ¤è¨ãããã¾ãã"ï¼è¬è²èªã®ä½¿ç¨ï¼ [ä¸è²«æ§] "æ§ææ¡â " 㨠"æ§ææ¡â¡" ã®å¾ã«å¥ç¹ããªãããã追å ããã両æ¹ã¨ãçç¥ãããçµ±ä¸ãã¹ã |
ã©ãã§ããããï¼ãï¼ã¨æãéç«ã£ãææã ã太åã«ãã¦ã¿ãã®ã§ãããClaude 3.5 sonnetã®æ¹ããã®å¾åãé¡èã ã£ãæ°ããã¾ãã
ã§ããã£ã¨ãé«ããã§ãããï¼
試ç®ãã¦ãè¦ç©ããåºãã¦ã¿ã¾ãããå®è³ªçãªæéãçºçããããªã®ã¯Lambdaã¨Bedrockã§ãã
- Lambda
ä½è£ã¬ãã¥ã¼ã大ä½1æ¥ã«1åã1ã¶æã§20åï¼ãªã¯ã¨ã¹ãæ°ï¼20å/æ
1ãªã¯ã¨ã¹ãã«ã¤ã5åãããããã5åï¼5å/ç§Ã60ç§/åÃ1,000ããªç§/ç§ =300,000ããªç§
20ãªã¯ã¨ã¹ã/æÃ300,000ms/ãªã¯ã¨ã¹ãÃ0.001s/msï¼6,000(ç§/æ)
å²ãå½ã¦ãã¡ã¢ãª: 256MBÃ1/1024 (GB/MB)ï¼0.25GB
0.25GBÃ6,000ç§ï¼1,500ã³ã³ãã¥ã¼ãã£ã³ã°(GBs/æ)
Lambdaã®ç¡æå©ç¨æ ã«ã¯ãæ¯æ1,000,000件ã®ç¡æãªã¯ã¨ã¹ããæ¯æ400,000GBç§ã®ã³ã³ãã¥ã¼ãã£ã³ã°æéãå«ã¾ãã¦ãããããç¡æå©ç¨æ ã«è»½ã ã¨åã¾ã£ã¦ãã¾ãã - Bedrock
On-Demandã®ããã¹ãâ½£æã¢ãã«ã§ã¯ãå¦çãããâ¼â¼ãã¼ã¯ã³ã¨â½£æãããåºâ¼ãã¼ã¯ã³ãã¨ã«èª²â¾¦ããã¾ãã
åºç¤ã¢ãã«ã使ç¨ããçæ AI ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ â Amazon Bedrock ã®æé表 â AWS ã®Anthropicã®ãªã³ããã³ãæéã®Claude 3.5 Sonnetã®è¡ãè¦ãã¨ã
å ¥åãã¼ã¯ã³1,000åãããã®ä¾¡æ ¼ï¼0.003 USD
1,000åºåãã¼ã¯ã³ãããã®æéï¼0.015 USD
çæAIã«èããã¨ãããæ¶ç©ºã®ææ¡æ¸ã¯ç´10,000ãã¼ã¯ã³ãSlackã¸ã®ãªãã©ã¤æç« ã¯ç´5,000ãã¼ã¯ã³ã¨ãªã£ããã¨ããã
å ¥åãã¼ã¯ã³æéï¼0.003(USD/1000ãã¼ã¯ã³)Ã10,000ãã¼ã¯ã³/1,000ãã¼ã¯ã³Ã140(å/USD)ï¼4.2å/ãªã¯ã¨ã¹ã
åºåãã¼ã¯ã³æéï¼0.015(USD/1000ãã¼ã¯ã³)Ã5,000ãã¼ã¯ã³/1,000ãã¼ã¯ã³Ã140(å/USD)ï¼10.5å/ãªã¯ã¨ã¹ã
ã¤ã¾ãã1ãªã¯ã¨ã¹ãã«ã¤ãåè¨14.7åããã£ã¦ãããããã«20ãªã¯ã¨ã¹ã/æãä¹ããã¨ã294å/æ
ã¨ãããã¨ã§ãåè¨æé¡Â 300å ãè¡ã£ã¦ãªãè¨ç®ã«ãªãã¾ããã
å®å ¨æ§ï¼ã»ãã¥ãªãã£ï¼
ãã®ã¢ããªã§å¯ä¸æ¸å¿µãããã¨ãããã¨ããã°ãææ¡æ¸ã®ä¸èº«ã®æ¼æ´©ã§ããå®éã«ã客æ§ã«éä¿¡ããäºå®ã®ç¤¾å¤ç§æ å ±ã®ææ¡æ¸ãçæAIã«æããããã§ããããæ å ±æ¼æ´©ãªã©ããã£ãã大å¤ã§ãã
- Slack
ä½ãèå¼±æ§ããã£ããããªãéãã¯Slackã¢ããªã«åé¡ãçãããã¨ã¯ãªãã¨æã£ã¦ãã¾ãã - AWS
Amazon Inspectorãæå¹ã«ããå®è¡ä¸ã®Lambdaé¢æ°ã¨ECRãªãã¸ããªã«ã¹ãã£ã³ãè¡ããã½ããã¦ã§ã¢ã®èå¼±æ§ã¨æå³ããªããããã¯ã¼ã¯ã®ã¨ã¯ã¹ãã¼ã¸ã£ã¼ãæ¤åºããããã«ãã¾ãã - Bedrock
AWSã¯Bedrockãã¤ã³ãããããæ å ±ãæ¼æ´©ããããã¨ããªããã¨ãåãã謳ã£ã¦ããã®ã§ãã»ãã¥ãªãã£æ»æã«åãã¦ããã°ãããã¨æãã¾ãããã®è¾ºãã¯å¥ã®æ©ä¼ã§å¥éBedrockæ´»ç¨å®å ¨ã»ãã¥ãªãã£ã¬ã¤ãã©ã¤ã³ã¿ãããªãã®ãä½æããä¸å¸ãå®å¿ããããã§ãã
ãã¨ã¯å人æ å ±ãä¸ååºããªãããã¬ã¼ãã¬ã¼ã«ãè¨å®ããææ¡æ¸ã«éå´ã®å人æ å ±ãããã¦å«ã¾ãã¦ã¿ãã¨ããã以ä¸ã®ã¬ã¹ãã³ã¹ãè¿ã£ã¦ããã®ã§ã誤ã£ã¦å人æ å ±ãåçãã¦ãã¾ããªããã¨ã確èªã§ãã¾ããã
- [å 容ãã§ãã¯] å人æ å ±ï¼ã¡ã¼ã«ã¢ãã¬ã¹ãé»è©±çªå·ãä½æï¼ãå«ã¾ãã¦ãã¾ããå ¬éãã¹ãã§ãªãæ å ±ã®ãããåé¤ã¾ãã¯å¿ååãå¿ è¦ã§ãã
æ¹åç¹
- å
¨ã¦ãéµåã¿ã«ãã¦ã¯ãããªã
ä¾ãã°ããè´ãã¾ããã¯ããããã¾ããã¨è¡¨è¨ããã®ãä¸è¬çã§ããããªã©ã¯ç¹ã«å¾ããªãã¦ãããã©ã£ã¡ã§ãããææã ã£ãããã¾ãããã®è¾ºãã¯ããã³ããã®å·¥å¤«æ¬¡ç¬¬ã§æ¹åã®ä½å°ãã¾ã ã¾ã ããããã§ãã - ãã¡ã¤ã³ãã¥ã¼ãã³ã°
æ¥æ¬èªã®æ ¡æ£ãããã ããªã®ã§ãã®è¾ºãã®ãã¬ã¼ãã³ã°ã¯ç¹ã«ä¸è¦ãããªæ°ã¯ãã¾ãããæ´»ç¨ãã¦ãããã¡ã«ãããã£ãææãããããã«ãã¦ã»ããã¨ãããã®ç¨åº¦ã®ç¥èã¯æã£ã¦ãã¦ã»ãããªã©AIã«å¯¾ããè¦æãåºã¦ããããããã¾ããã
ã¦ã¼ã¹ã±ã¼ã¹ã»æ´»ç¨ä¾
- ææ¡æ¸ã®ã¬ãã«ã¢ãã
ãä»åã¯ããã¾ã§ã客æ§ã¸æåºããä¸ã§æ¥ãããããªãæ¥æ¬èªãæ´ããã¨ãã観ç¹ã§ä½è£ã¬ãã¥ã¼ã ããè¡ãã¾ããããææ¡æ¸ã®å 容ããã£ã¨ã¬ãã«ã¢ããããããã¨ã«ãæ´»ç¨ã§ããã¨æãã¾ããä¾ãã°ãæ¬ææ¡æ¸ã§ãã£ã¨ã¢ãã¼ã«ããæ¹ãããé¨åã追å ããæ¹ãããé¨åãéã«åã£ãæ¹ãããä¸è¦ãªé¨åãææãã¦ãããã¨ãããããªä½¿ãæ¹ã§ãã
- ä»ã®ãã©ã¼ãããå½¢å¼ã®ãã¡ã¤ã«ã¸å¿ç¨
ãä»åã¯pptxãã¡ã¤ã«ã«ç¹åãã¦ãã®å¤æé¢æ°ã¾ã§ç¨æãã¾ããããæ¬ã¢ããªãåºã«ãã¦æ´»ç¨ããã°ãè²ã ãªãã©ã¼ãããå½¢å¼ã®ãã¡ã¤ã«ãBedrockã«é£ããã¦ãã®ä¸ã®æ¥æ¬èªæç« é¨åã®æ ¡æ£ãªã©ãè¡ããããã¨ãã§ããããã«ãªãã¨æãã¾ãã
Â
ã¾ã¨ã
- Pythonã§PowerPointãæä½ããã«ã¯ãpython-pptxã¨ããå¤é¨ã©ã¤ãã©ãªãå¿ è¦
- ããã³ããã§æç« æ ¡æ£ãä¿ãã«ã¯ããã§ãã¯ãã¤ã³ããç®æ¡æ¸ãã§ç¾ åããã¨è¯ã
- Slackã®3ç§ã«ã¼ã«ã«æ³¨æãLazyãªã¹ãã¼ã¨X-Slack-Retry-Numãããã¼ã§å¯¾ç
- ç¾æç¹ã§æ¥æ¬èªæç« ã«å¼·ãããªLLMã¯Claude 3.5 sonnetã¨æ¨æ¸¬
- Bedrockã¸ã®å ¥åã»Bedrockããã®åºåã¯ãã©ã®ã¢ãã«ãããã¤ãã¼ã¨ãå ±æããããTitanã¾ãã¯ãµã¼ããã¼ãã£ã®ã¢ãã«ããã¬ã¼ãã³ã°ãããã¨ã¯ãªã
- ã¬ã¼ãã¬ã¼ã«ã使ã£ã¦æ©å¯ã³ã³ãã³ãã®åºåãé²ã
- çæAIã®ææã¯åèç¨åº¦ã«ãã微調æ´ã§ç²¾åº¦ãé«ãã¦ããã®ãè¯ã
AWS Client VPNã®OSãã¨æ¥ç¶è¨å®ã¾ã¨ã
ãµã¼ãã¹æ¦è¦
AWS Client VPNã¯ããªã³ãã¬ãã¹ãããã¯ã¼ã¯ããAWSãªã½ã¼ã¹ã«å®å ¨ã«ã¢ã¯ã»ã¹ã§ããããã¼ã¸ãã¯ã©ã¤ã¢ã³ããã¼ã¹ã®VPNãµã¼ãã¹ã§ãã
- OpenVPNãã¼ã¹ã®æè¡ã使ç¨ããã¨ã³ããã¼ã¨ã³ãã®æå·åãæä¾
- ACMã¨ã®çµ±åã«ããã証ææ¸ãã¼ã¹ã®èªè¨¼
- AWS Directory Serviceã¨ã®çµ±åã«ãããæ¢åã®ADã使ç¨ããèªè¨¼
- SSOï¼SAMLãã¼ã¹ã®ãã§ãã¬ã¼ã·ã§ã³èªè¨¼ï¼
- Windows, macOS, Linux, iOS, Androidãªã©å¤ãã®ãã©ãããã©ã¼ã ããµãã¼ã
ç®çã»ãããããã¨
AWS Client VPNã®æ¥ç¶æé ãã¾ã¨ããããããã£ããã£ãåãã
以ä¸ã®ã¯ã©ã¤ã¢ã³ãOSããã®æ¥ç¶ãæ³å®
対象è ã» ã¦ã¼ã¹ã±ã¼ã¹
ãªã¢ã¼ãã¢ã¯ã»ã¹
対象ã¨ãªãæè¡
æ¡ä»¶ï¼å°å ¥ã«ããã£ã¦ã®åæäºé ï¼
- èªè¨¼æ¹å¼ã¯ä»åã¯ç¸äºèªè¨¼ï¼ADèªè¨¼
åèURL
注æäºé
- ã¯ã©ã¤ã¢ã³ãCIDRç¯å²ã¯ãé¢é£ä»ãããããµããããVPCãé ç½®ããã¦ããCIDRã®ãã¼ã«ã«ãã¾ãã¯ã¯ã©ã¤ã¢ã³ãVPNã¨ã³ããã¤ã³ãã®ã«ã¼ããã¼ãã«ã«æåã§è¿½å ãããã«ã¼ãã¨éè¤ã§ããªã
- ã¯ã©ã¤ã¢ã³ãCIDRç¯å²ã®ãããã¯ãµã¤ãºã¯ã/22以ä¸ã/12以ä¸
- VPNã¨ã³ããã¤ã³ãã«é¢é£ä»ãããããµããããã¯ãåãVPCã«åå¨ããå¿ è¦ããã
- åãAZã®è¤æ°ã®ãµãããããVPNã¨ã³ããã¤ã³ãã«é¢é£ä»ãããã¨ã¯ã§ããªã
- ã»ã«ããµã¼ãã¹ãã¼ã¿ã«ã¯ãç¸äºèªè¨¼ã使ç¨ãã¦èªè¨¼ããã¯ã©ã¤ã¢ã³ãã§ã¯å©ç¨ã§ããªã
- IPã¢ãã¬ã¹ã使ç¨ãã¦VPNã¨ã³ããã¤ã³ãã«æ¥ç¶ãããã¨ã¯éæ¨å¥¨
ããã¼ã¸ããµã¼ãã¹ã§ãããããDNSååã解決ãããIPã¢ãã¬ã¹ã«å¤æ´ã表示ããããã¨ããããæå®ãããDNSååã使ç¨ãã¦VPNã¨ã³ããã¤ã³ãã«æ¥ç¶ãããã¨ãæ¨å¥¨ - VPNã¨ã³ããã¤ã³ãã«ç»é²ããã¯ã©ã¤ã¢ã³ã証ææ¸ãå ¥ãæ¿ãããã¨ã¯ã§ããªã
- ã¯ã©ã¤ã¢ã³ãããã¤ã¹ã®LAN IPã¢ãã¬ã¹ç¯å²ãã以ä¸ã®æ¨æºãã©ã¤ãã¼ãIPã¢ãã¬ã¹ç¯å²å
ã«ããå¿
è¦ããã
10.0.0.0/8ã172.16.0.0/12ã192.168.0.0/16ã169.254.0.0/16
ï¼åèï¼AWS Client VPNã使ç¨ããããã®ã«ã¼ã«ã¨ãã¹ããã©ã¯ãã£ã¹ - AWS Client VPN
æ¦è¦å³
ä½æ¥ã®æµã
äºåä½æ¥
AWSå´æé
1ï¼ã¯ã©ã¤ã¢ã³ãVPNã¨ã³ããã¤ã³ããä½æ
VPCããã·ã¥ãã¼ã > VPN > ã¯ã©ã¤ã¢ã³ãVPNã¨ã³ããã¤ã³ã > [ã¯ã©ã¤ã¢ã³ãVPNã¨ã³ããã¤ã³ããä½æ]
2ï¼è©³ç´°
以ä¸ã®ããã«è¨å®
3ï¼èªè¨¼æ
å ±
ãç¸äºèªè¨¼ãããADèªè¨¼ããé¸æ
ãµã¼ãã¼è¨¼ææ¸ãã¯ã©ã¤ã¢ã³ã証ææ¸ã¯åããã®ãé©å½ã«é¸æ
4ï¼æ¥ç¶ãã°è¨é²
念ã®ããæ¥ç¶ãã°è¨é²ãæå¹ã«ãã¦ããã¾ãã[ã¯ã©ã¤ã¢ã³ãæ¥ç¶ã®ãã°ã®è©³ç´°ãæå¹å]ããCloudWatch Logs ã®ãã°ã°ã«ã¼ãåãé¸æ
5ï¼ãã®ä»ã®ãã©ã¡ã¼ã¿ï¼ãªãã·ã§ã³ï¼
VPCã¨SGã¯ãã¤ãã®ãnozaki-ããé¸æ
æ®ãã¯ããã©ã«ãã¨ããããã§[ã¯ã©ã¤ã¢ã³ã VPN ã¨ã³ããã¤ã³ããä½æ]
ãã°ããPending-associateã«ãªãã®ã§å¾
ã¡
6ï¼ã¿ã¼ã²ãããããã¯ã¼ã¯ã®é¢é£ä»ã
ã¿ã¼ã²ãããããã¯ã¼ã¯ã¨ã¯ãã¯ã©ã¤ã¢ã³ãVPNã¨ã³ããã¤ã³ãã«é¢é£ä»ããVPCãµããããã§ãã
ä½æå¾ããã¿ã¼ã²ãããããã¯ã¼ã¯ã®é¢é£ä»ããã¿ããã[ã¿ã¼ã²ãããããã¯ã¼ã¯ãé¢é£ä»ãã]
nozaki-privateãµãããããé¸æãã[ã¿ã¼ã²ãããããã¯ã¼ã¯ãé¢é£ä»ãã]
7ï¼æ¿èªã«ã¼ã«
æ¿èªã«ã¼ã«ã¯ããããã¯ã¼ã¯ã«ã¢ã¯ã»ã¹ã§ããã¦ã¼ã¶ã¼ãå¶éãã¾ããã¢ã¯ã»ã¹ã許å¯ããADã¾ãã¯IdPã°ã«ã¼ããæ§æãã¾ãã
次ã¯ãæ¿èªã«ã¼ã«ãã¿ããã[èªè¨¼ã«ã¼ã«ã追å ]
Domain Usersã®ã¿ã«ã¢ã¯ã»ã¹ãä»ä¸
SIDã¯ä»¥ä¸ã³ãã³ãã§ç¢ºèª
PS C:\Windows\system32> (Get-ADGroup -Identity "Domain Users").SID
BinaryLength AccountDomainSid Value
------------ ---------------- -----
28 S-1-5-21-****17 S-1-5-21-****17-513
æå¾ã«[èªè¨¼ã«ã¼ã«ã追å ]
8ï¼ã«ã¼ããã¼ãã«
å¤é¨ã«ãåºããããã«ããããããã«ã¼ããã¼ãã«ãã¿ãã«ããã©ã«ãã«ã¼ãã追å
9ï¼ã¯ã©ã¤ã¢ã³ãè¨å®ããã¦ã³ãã¼ã
[ã¯ã©ã¤ã¢ã³ãè¨å®ããã¦ã³ãã¼ã]ããã¯ã©ã¤ã¢ã³ãã«è¨å®ããç¨ã®VPNã¯ã©ã¤ã¢ã³ãè¨å®ãã¡ã¤ã«ãdownloaded-client-config.ovpnãããã¦ã³ãã¼ã
ã¡ãªã¿ã«ä¸èº«ã¯ãã®ããã«ãªã£ã¦ãã¾ãã
client
dev tun
proto udp
remote cvpn-endpoint-****.prod.clientvpn.ap-northeast-1.amazonaws.com 443
remote-random-hostname
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MII*********
-----END CERTIFICATE-----
</ca>
auth-user-pass
reneg-sec 0
verify-x509-name server.com name
æé
ã¯ã©ã¤ã¢ã³ãå´æé
ãã¦ã³ãã¼ãããã¯ã©ã¤ã¢ã³ãè¨å®ãã¡ã¤ã«ï¼downloaded-client-config.ovpnï¼ãéãã<ca>CA証ææ¸</ca>
ã®å¾ã«ã¯ã©ã¤ã¢ã³ã証ææ¸certã¨ç§å¯éµkeyã追è¨
èªåã¯ä»¥ä¸ã®ããã«ãã¿æ¸ããã¾ãããã
ããã
</ca>
<cert>
-----BEGIN CERTIFICATE-----
ã
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
ã
-----END PRIVATE KEY-----
</key>
以ä¸ã®ããã«ãã¹æå®ã§ãããããã§ãã
cert *ã¯ã©ã¤ã¢ã³ã証ææ¸crtãã¡ã¤ã«ã®ãã«ãã¹*.crt
key *証ææ¸ã®ç§å¯éµkeyãã¡ã¤ã«ã®ãã«ãã¹*.key
以ä¸ã§ã¯ãåOSãã¨ã«å®éã«æ¥ç¶ãã¦ã¿ã¾ãã
macOSã®å ´å
ï¼åèï¼macOSã§AWS Client VPNæ¥ç¶ã確ç«ãã - AWS ã¯ã©ã¤ã¢ã³ã VPN
1ï¼https://tunnelblick.net/downloads.html ããã好ããªãã¼ã¸ã§ã³ã®Tunnelblickããã¦ã³ãã¼ããã¦ã¤ã³ã¹ãã¼ã«
2ï¼Tunnelblickã¯ã©ã¤ã¢ã³ãã¢ããªã±ã¼ã·ã§ã³ãèµ·åãã[è¨å®ãã¡ã¤ã«ããã]ãé¸æ
3ï¼[æ¥ç¶å ]ããã«ã«è¨å®ãã¡ã¤ã«ããã©ãã°&ãããã
4ï¼[æ¥ç¶å ]ããã«ã§3.ã§å ¥ããè¨å®ãã¡ã¤ã«ãé¸æãã[æ¥ç¶]
5ï¼ADã¢ã«ã¦ã³ãã§ãã°ã¤ã³
6ï¼éä¸ãè¦åãä½åº¦ãåºã¾ãããå ¨ã¦[äºè§£]ã§OK
7ï¼æ¥ç¶ç¢ºèª
8ï¼VPNã«æ¥ç¶ããªããã¤ã³ã¿ã¼ãããã«åºãããã¨ã確èª
Windowsã®å ´å
1ï¼ã¯ã©ã¤ã¢ã³ã証ææ¸ã¨ç§å¯ãã¼ãå«ã .pfx ãã¡ã¤ã«ãä½æ
ã¾ããpfxãã¡ã¤ã«ãçæããããã«ãã¯ã©ã¤ã¢ã³ã証ææ¸client_certificate.crtãç§å¯ãã¼client_private.keyãåç¬ã§ä½æãããããdownloaded-client-config.ovpnããããããã®è©²å½é¨åãã³ãã¼ããviã§è²¼ãä»ãã¦ä½æ
ä½æç¨ã®ãã©ã«ããä½ã£ã¦ãã®ä¸ã§ä½ãã¾ããã
$ pwd
/Users/nozaki/pki/server.com
$ ls
client_certificate.crt client_private.key
次ã«ãã®ãã©ã«ãã§pfxçæã³ãã³ããå®è¡
$ openssl pkcs12 -export -out client_cert.pfx -inkey client_private.key -in client_certificate.crt
Enter Export Password:
Verifying - Enter Export Password:
$ ls
client_cert.pfx client_certificate.crt client_private.key
2ï¼.pfxãã¡ã¤ã«ãWindowsã®å人証ææ¸ã¹ãã¢ã«ã¤ã³ãã¼ã
ãã¡ã¤ã«åãæå®ãã¦å®è¡ã§ãcertlm.mscããå
¥ããã°ä¸çºã§è¨¼ææ¸MMC ã¹ãããã¤ã³ãéãã¾ããclient_cert.pfxãããã«ã¯ãªãã¯ããã¨ã¤ã³ãã¼ãã¦ã£ã¶ã¼ããéãã®ã§ãã¤ã³ãã¼ããã¦å®äº
3ï¼è¨¼ææ¸ãéãããµãã¸ã§ã¯ãã確èª
4ï¼OpenVPNè¨å®ãã¡ã¤ã«ãæ´æ°ãã3.ã®è¨¼ææ¸ã®ãµãã¸ã§ã¯ããvpn-test.grasys.domainãã使ç¨ãã¦è¨¼ææ¸ãæå®
cryptoapicert âSUBJ:vpn-test.grasys.domainâ
ãã®æããã®é ç®ã¯ä¸è¦ãªã®ã§æ¶ãã¦ããã¾ãããã
5ï¼OpenVPNã½ããããã¦ã³ãã¼ã
https://openvpn.net/community-downloads/
ä»åèªåã¯ãOpenVPN-2.6.10-I003-amd64.msiããå
¥ãã¾ããã
6ï¼è¨å®ãã¡ã¤ã«ã®ã¤ã³ãã¼ã
7ï¼ã¢ã¤ã³ã³å³ã¯ãªãã¯ã§æ¥ç¶ãADæ å ±ãå ¥å
8ï¼ãã®ããã«è¡¨ç¤ºãããã°æ¥ç¶æå
ã¡ãªã¿ã«ãã®æã®ãã°ã¯ãããªæãã§ããã
2024-06-19 14:59:08 OpenVPN 2.6.10 [git:v2.6.10/ba0f62fb950c56a0] Windows [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] [DCO] built on May 23 2024
2024-06-19 14:59:08 Windows version 10.0 (Windows 10 or greater), amd64 executable
2024-06-19 14:59:08 library versions: OpenSSL 3.2.1 30 Jan 2024, LZO 2.10
2024-06-19 14:59:08 DCO version: 1.2.1
2024-06-19 14:59:08 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
2024-06-19 14:59:08 Need hold release from management interface, waiting...
2024-06-19 14:59:08 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:50339
2024-06-19 14:59:08 MANAGEMENT: CMD 'state on'
2024-06-19 14:59:08 MANAGEMENT: CMD 'log on all'
2024-06-19 14:59:08 MANAGEMENT: CMD 'echo on all'
2024-06-19 14:59:08 MANAGEMENT: CMD 'bytecount 5'
2024-06-19 14:59:08 MANAGEMENT: CMD 'state'
2024-06-19 14:59:08 MANAGEMENT: CMD 'hold off'
2024-06-19 14:59:08 MANAGEMENT: CMD 'hold release'
2024-06-19 14:59:11 MANAGEMENT: CMD 'username "Auth" "[email protected]"'
2024-06-19 14:59:11 MANAGEMENT: CMD 'password [...]'
2024-06-19 14:59:11 MANAGEMENT: >STATE:1718776751,RESOLVE,,,,,,
2024-06-19 14:59:11 TCP/UDP: Preserving recently used remote address: [AF_INET]18.179.225.999:443
2024-06-19 14:59:11 ovpn-dco device [OpenVPN Data Channel Offload] opened
2024-06-19 14:59:11 UDP link local: (not bound)
2024-06-19 14:59:11 UDP link remote: [AF_INET]18.179.225.999:443
2024-06-19 14:59:11 MANAGEMENT: >STATE:1718776751,WAIT,,,,,,
2024-06-19 14:59:11 MANAGEMENT: >STATE:1718776751,AUTH,,,,,,
2024-06-19 14:59:11 TLS: Initial packet from [AF_INET]18.179.225.999:443, sid=14477cb6 183ca10b
2024-06-19 14:59:11 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
2024-06-19 14:59:11 VERIFY OK: depth=1, CN=Easy-RSA CA
2024-06-19 14:59:11 VERIFY KU OK
2024-06-19 14:59:11 Validating certificate extended key usage
2024-06-19 14:59:11 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2024-06-19 14:59:11 VERIFY EKU OK
2024-06-19 14:59:11 VERIFY X509NAME OK: CN=server.com
2024-06-19 14:59:11 VERIFY OK: depth=0, CN=server.com
2024-06-19 14:59:11 Control Channel: TLSv1.2, cipher TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, peer certificate: 2048 bits RSA, signature: RSA-SHA256, peer temporary key: 256 bits ECprime256v1
2024-06-19 14:59:11 [server.com] Peer Connection Initiated with [AF_INET]18.179.225.999:443
2024-06-19 14:59:11 TLS: move_session: dest=TM_ACTIVE src=TM_INITIAL reinit_src=1
2024-06-19 14:59:11 TLS: tls_multi_process: initial untrusted session promoted to trusted
2024-06-19 14:59:12 MANAGEMENT: >STATE:1718776752,GET_CONFIG,,,,,,
2024-06-19 14:59:12 SENT CONTROL [server.com]: 'PUSH_REQUEST' (status=1)
2024-06-19 14:59:17 SENT CONTROL [server.com]: 'PUSH_REQUEST' (status=1)
2024-06-19 14:59:17 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,block-outside-dns,dhcp-option DOMAIN-ROUTE .,route-gateway 192.168.0.1,topology subnet,ping 1,ping-restart 20,echo,echo,ifconfig 192.168.0.2 255.255.255.224,peer-id 0,cipher AES-256-GCM'
2024-06-19 14:59:17 Options error: --dhcp-option: unknown option type 'DOMAIN-ROUTE' or missing or unknown parameter
2024-06-19 14:59:17 OPTIONS IMPORT: --ifconfig/up options modified
2024-06-19 14:59:17 OPTIONS IMPORT: route options modified
2024-06-19 14:59:17 OPTIONS IMPORT: route-related options modified
2024-06-19 14:59:17 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2024-06-19 14:59:17 interactive service msg_channel=680
2024-06-19 14:59:17 ROUTE_GATEWAY 10.0.0.1/255.255.240.0 I=12 HWADDR=06:fa:f5:f9:c9:c7
2024-06-19 14:59:18 MANAGEMENT: >STATE:1718776758,ASSIGN_IP,,192.168.0.2,,,,
2024-06-19 14:59:18 INET address service: add 192.168.0.2/27
2024-06-19 14:59:18 IPv4 MTU set to 1500 on interface 37 using service
2024-06-19 14:59:18 Blocking outside dns using service succeeded.
2024-06-19 14:59:18 C:\Windows\system32\route.exe ADD 18.179.225.999 MASK 255.255.255.255 10.0.0.1
2024-06-19 14:59:18 Route addition via service succeeded
2024-06-19 14:59:18 C:\Windows\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 192.168.0.1
2024-06-19 14:59:18 Route addition via service succeeded
2024-06-19 14:59:18 C:\Windows\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 192.168.0.1
2024-06-19 14:59:18 Route addition via service succeeded
2024-06-19 14:59:18 Initialization Sequence Completed
2024-06-19 14:59:18 MANAGEMENT: >STATE:1718776758,CONNECTED,SUCCESS,192.168.0.2,18.179.225.999,443,,
2024-06-19 14:59:18 Data Channel: cipher 'AES-256-GCM', peer-id: 0
2024-06-19 14:59:18 Timers: ping 1, ping-restart 20
iOSã®å ´å
ï¼åèï¼OpenVPN Connect for iOS
1ï¼ãããã¡ã¤ã«ã®ã¤ã³ãã¼ã
https://openvpn.net/connect-docs/import-profile.html#import-a-profile-57126
Â
æé
AWS Client VPNã¯ã以ä¸ã®åä½ã§èª²éããã¾ãã
- ã¢ã¯ãã£ããªã¯ã©ã¤ã¢ã³ãæ¥ç¶æ°
- Client VPNã¨ã³ããã¤ã³ãã«é¢é£ä»ãããã¦ãããµããããæ°
- VPNæ¥ç¶æé
- 1æéãã¨
æè¦æé
2æé
S3ã«ãããããããCURãã¼ã¿ãGlueçµç±ã§Athenaã§èªã
ãµã¼ãã¹æ¦è¦
ã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ãï¼AWS Cost and Usage Report (CUR) ã®æ¦è¦ãã¥ã¼ãåºã«ãããã®
QuickSightãå©ç¨ããã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ãï¼Cost & Usage Dashboardï¼CUDï¼ããBilling and Cost Managementã³ã³ã½ã¼ã«ããç´æ¥ãããã¤ã§ããããã«ãªãã¾ããã
- AWSããã¸ã¡ã³ãã³ã³ã½ã¼ã«ã«ã¢ã¯ã»ã¹ã§ããªãã¦ããã³ã¹ãã«é¢ããã¤ã³ãµã¤ããå®å ¨ã«å ±æã§ãã
- AWSã§äºãã§ç¨æããã¦ããæ§ç¯æ¸ã¿ã®ã¤ã³ã¿ã©ã¯ãã£ããªããã·ã¥ãã¼ããä½ããã¨ãã§ãã
対象ã¨ãªãæè¡
- AWS Organizations
- QuickSight
åèURL
https://qiita.com/siwa/items/86a5323094795eb55d2a
注æäºé
- ã³ã¹ã使ç¨ç¶æ³ããã·ã¥ãã¼ãã§ã§ã«ãã¼ãããªãæ å ±å«ãå¯è¦åãããå ´åã«ã¯ãåå¥ã«ããã·ã¥ãã¼ãéçºãè¡ããã¨ã§å¯¾å¿å¯è½
ä½æ¥ã®æµã
äºåä½æ¥
親ã¢ã«ã¦ã³ãã§ãã¼ã¿ã¨ã¯ã¹ãã¼ããä¿åããç¨ã®S3ãã±ãããä½æãã¦ããï¼ããã§ã¯ãquicksight-dataexportãã¨ãã¾ããï¼
æé
1ï¼ãã¼ã¿ããããã¨ã確èª
2ï¼ã¯ã¨ãªã¨ãã£ã¿ > è¨å® > [管ç]
3ï¼ããã©ã«ãã®ã¾ã¾[ä¿å]
[Glue]
4ï¼[Data Catalog] > [Crawlers] > [Create crawler]
5ï¼Nameã¯é©å½ã«å ¥åãã[Next]
6ï¼ãData source configurationãã§ãNot yetããé¸æãã[Add a data source]
7ï¼ãS3 pathãã«ã¯ãã¼ã«ãããã¡ã¤ã«ãããS3ãã©ã«ããæå®ããæ®ãã¯ããã©ã«ãã®ã¾ã¾[Add an S3 data source]ã§ã[Next]
8ï¼IAM roleã®è¨å®ã§ã¯[Create new IAM role]ã§ãAWSGlueServiceRole-nozakiããä½æãã¦ã¿ã¾ããã
ããã§ãã¼ã«ãè¦ã«è¡ãã¨ãå®éã«ãAWSGlueServiceRole-nozakiããä½æããã¦ãã¾ãã
ä¸èº«ãè¦ãã¨ããAWSGlueServiceRoleãããªã·ã¼ãä»ä¸ããã¦ããããã®ä¸ãè¦ãã¨ããã®ãããªè¨±å¯ãä»ä¸ããã¦ãã¾ããã
S3ã§ã¯"Resource": ã« "arn:aws:s3:::aws-glue-/" ãæå®ããã¦ããããaws-glue-ãã§å§ã¾ãS3ãã±ããã«åºåã§ããããã«ãªã£ã¦ãã¾ãã
9ï¼Target database ã§ã¯ãã¾ã ãã¼ã¿ãã¼ã¹ãä½æããã¦ããªãã®ã§[Add database]
10ï¼Nameãé©å½ã«å ¥åãã[Create database]
11ï¼Add crawlerã®å ¥åç»é¢ã«æ»ãã10.ã§ä½æãããã¼ã¿ãã¼ã¹ãé¸æãããã以å¤ã¯ããã©ã«ãã®ã¾ã¾[Next]
12ï¼Review and create
è¨å®ãæçµç¢ºèªãã[Create crawler]
13ï¼Run crawler
Â
åé¡ï¼ãªããã¿ã¤ãã¨ã©ã¼çºç
hive_partition_schema_mismatch: there is a mismatch between the table and partition schemas. the types are incompatible and cannot be coerced. the column 'pricing/publicondemandcost' in table 'nozaki-database.hourly' is declared as type 'bigint', but partition 'partition_0=20190201-20190301' declared column 'pricing/publicondemandcost' as type 'double'.
解決æ¹æ³
ãã¼ãã£ã·ã§ã³ã¹ãã¼ããæ´æ°ããããã« AWS Glue ã¯ãã¼ã©ã¼ãè¨å®ãã
AWS Glue ã³ã³ã½ã¼ã«ãéãã¾ãã
ããã²ã¼ã·ã§ã³ãã¤ã³ã§ã[ã¯ãã¼ã©] ãé¸æãã¾ãã
è¨å®ããã¯ãã¼ã©ãé¸æãã¾ãã
[ã¢ã¯ã·ã§ã³] ãé¸æãã[ã¯ãã¼ã©ã®ç·¨é] ãã¯ãªãã¯ãã¾ãã
[ã¯ãã¼ã©ã®åºåãé¸æ] ãã¼ã¸ã«ç§»åããã¾ã§ [次ã¸] ãé¸æãã¾ãã
[è¨å®ãªãã·ã§ã³] ãå±éãã¾ãã
[ãã¹ã¦ã®æ°è¦ããã³æ¢åã®ãã¼ãã£ã·ã§ã³ããã¼ãã«ããã®ã¡ã¿ãã¼ã¿ã§æ´æ°ãã¾ã] ãé¸æãã¾ãã
æè¦æé
2æé
CloudFormation StackSetsï¼AWS Configãã°éç´ï¼ã®å®è¡ã¨ã©ã¼èª¿æ»
ãµã¼ãã¹æ¦è¦
ã¹ã¿ãã¯ã»ããã¯ã1ã¤ã®CloudFormationãã³ãã¬ã¼ãã使ç¨ãã¦ãè¤æ°ã¢ã«ã¦ã³ããè¤æ°ãªã¼ã¸ã§ã³ã«ã¾ããã£ã¦ã¹ã¿ãã¯ãä½æã§ããã®ããé常ã®ã¹ã¿ãã¯ã¨ã®å¤§ããªéãã§ãã
AWS Configã¯ãAWSãªã½ã¼ã¹ã®è¨å®ãå¤æ´ã追跡ããããããé©åãªè¨å®ã§ãããã©ãããè©ä¾¡ããããã®ãµã¼ãã¹ã§ãããªã½ã¼ã¹ã®è¨å®å¤æ´ãè¨é²ããã³ã³ãã©ã¤ã¢ã³ã¹ãç£è¦ãããã¨ãã§ãã¾ãã
ä»åã¯ãã®CloudFormation StackSetsã®ãµã³ãã«ãã³ãã¬ã¼ãã¨ãã¦æä¾ããã¦ãããS3ãSNSãªã©ã使ã£ã¦Â ä¸å¤®ãã°ã§ AWS Config ãæå¹ã«ãã ãã³ãã¬ã¼ãã®ãããã¤ãæ±ãã¾ãã
AWS Organizationsãªã©ã®ãã«ãã¢ã«ã¦ã³ãç°å¢åã§ã®æ¤è¨¼ã¨ãªãã¾ãã
åé¡ï¼ã客æ§ããã®åãåããï¼
çµç¹å
ã®å
¨ã¢ã«ã¦ã³ããå
¨ãªã¼ã¸ã§ã³ï¼ããã©ã«ãæå¹ååã®ã¿ï¼ã«å¯¾ãã¦configãæå¹åããã°ããã°ã¢ã«ã¦ã³ãã®S3ã«éç´ãããstacksetsãå®è¡ãã¦ããã®ã§ãããã¨ã©ã¼ã解æ¶ã§ããªãã
S3ãã±ããããªã·ã¼ã§conditionå¥ã«SourceOrgIDãå©ç¨ããå ´åã¯ã©ã®ãããªæ¨©éè¨å®ãå¿
è¦ã§ãããããå
¬å¼ãµã¤ãä¸ã§ãKMSä¸ã®å©ç¨ã§ã¯äºæããªãæåãçºçããå¯è½æ§ãããã¨è¨è¼ããã£ããããã¢ã«ã¦ã³ãIDãåæããæ¹å¼ã§ã試ããã®ã§ãããåæ§ã®ã¨ã©ã¼ã«ãªã£ã¦ãã¾ããã¨ã確èªãã¦ããã¾ãã
ãç°å¢ã
- stacksetså®è¡ã¢ã«ã¦ã³ãï¼organizationsã§å§ä»»è¨å®æ¸ï¼ã
- ãã°éç´ã¢ã«ã¦ã³ã
AWSæä¾ã®ãµã³ãã«ãã³ãã¬ã¼ããéä¸ãã®ã³ã°ã§AWS Configãæå¹ã«ãããããã¼ã¹ã«ãactivate-config.ymlã¨ããstackãã³ãã¬ã¼ããä½æ
-
ã¨ã©ã¼ã¡ãã»ã¼ã¸ï¼
ãS3ãã±ããã¸ã®é ä¿¡ããªã·ã¼ãä¸ååãS3ãã¼ãã¬ãã£ãã¯ã¹ãNULLã
ãResourceStatusReason:Insufficient delivery policy to s3 bucket: log-123456789012-qcloud-config, unable to assumeã
ãResourceLogicalId:ConfigDeliveryChannel, ResourceType:AWS::Config::DeliveryChannel, ResourceStatusReason:Insufficient delivery policy to s3 bucket: log-123456789012-qcloud-config, unable to write to bucket, provided s3 key prefix is 'null', provided kms key is 'null'. (Service: AmazonConfig; Status Code: 400; Error Code: InsufficientDeliveryPolicyException; Request ID: ****; Proxy: null).ã -
S3ãã±ããããªã·ã¼ï¼
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSConfigBucketPermissionsCheck",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": [
"s3:GetBucketAcl",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::log-123456789012-cloud-config",
"Condition": {
"StringEquals": {
"aws:SourceOrgID": "o-*****"
}
}
},
{
"Sid": "AWSConfigBucketDelivery",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::log-123456789012-cloud-config/AWSLogs/*/Config/*",
"Condition": {
"StringEquals": {
"aws:SourceOrgID": "o-*****",
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}
対象è ã» ã¦ã¼ã¹ã±ã¼ã¹
AWS Organizationå ã®å ¨AWSã¢ã«ã¦ã³ãã«ã¦AWS Configãéä¸ãã®ã³ã°ã§æå¹åãããã±ã¼ã¹
対象ã¨ãªãæè¡
æ¡ä»¶ï¼å°å ¥ã«ããã£ã¦ã®åæäºé ï¼
- AWS Organizationã使ããç°å¢ã§ãããã¨
åèURL
- AWS Config 㨠AWS CloudFormation StackSets ã使ç¨ã㦠AWS Organizations ã¢ã«ã¦ã³ãã管çãã | AWS ã¯ã©ã¦ãéç¨ã¨ç§»è¡ããã°
- AWS ã°ãã¼ãã«æ¡ä»¶ã³ã³ããã¹ããã¼ - AWS Identity and Access Management
- Organizationå ã®å ¨AWSã¢ã«ã¦ã³ãã«ã¦AWS Configãéä¸ãã®ã³ã°ã§æå¹åããæ¹æ³
注æäºé
- AWS Organizaionsã®ç®¡çã¢ã«ã¦ã³ãã¨ã¯å¥ã«ãStackSetsã§å§ä»»ããã管çè ãç»é²ãã¦ã»ãã¥ãªãã£ç®¡çç¨ã¢ã«ã¦ã³ããç¨æãããã¨ãããã¾ããStackSetsãå®è¡ããã®ã¯ããã®ã»ãã¥ãªãã£ç®¡çç¨ã¢ã«ã¦ã³ãã§å®æ½ãããã¨
- [ä¸å¤®ãã°ã§ AWS Config ãæå¹ã«ãã]ãã³ãã¬ã¼ãã¯ããã®ã¾ã¾é©ç¨ããã ãã ã¨åããªããããããã«æ¸ãããããªå·¥å¤«ãå¿ è¦
- AWS Configã«ä½¿ããã¦ãããµã¼ãã¹ã«ãªã³ã¯ããããã¼ã«ã¯ãAWS Configã«ãã£ã¦äºåå®ç¾©ãããã¦ã¼ã¶ã¼ã«ä»£ãã£ã¦ä»ã®AWSãµã¼ãã¹ãå¼ã³åºãããã«å¿
è¦ãªãã¹ã¦ã®ã¢ã¯ã»ã¹è¨±å¯ãå«ã¾ãã¦ããããã®ããããµã¼ãã¹ã§ãªã³ã¯ããããã¼ã«ã®ä½¿ç¨æã« Amazon S3 ãã±ããã«å¿
è¦ãªã¢ã¯ã»ã¹è¨±å¯Â ã ãµã¼ãã¹ã«ãªã³ã¯ããããã¼ã«ã使ç¨ããã¨ãã® AWS KMS ãã¼ã«å¿
è¦ãªã¢ã¯ã»ã¹è¨±å¯(S3ãã±ããé
ä¿¡ï¼Â ã®ããã«ãAWS:SourceAccountæ¡ä»¶ã使ç¨ãã¦ãConfigãµã¼ãã¹ããªã³ã·ãã«ãç¹å®ã®ã¢ã«ã¦ã³ãã«ä»£ãã£ã¦ãªãã¬ã¼ã·ã§ã³ãå®è¡ããã¨ãã«ã®ã¿è¨±å¯ãããããªç¹æ®ãªå¶éã®ä»æ¹ã«ãªããã¨ã«æ³¨æ
ãµã¼ãã¹ã«ãªã³ã¯ããããã¼ã«ã®ä½¿ç¨ - AWS Config - AWS Configã¯ããªãã¸ã§ã¯ãããã¯ï¼ããã©ã«ãã®ä¿æãæå¹ã«ãªã£ã¦ããS3ãã±ããã¸ã®é ä¿¡ãã£ãã«ããµãã¼ããã¦ããªã
æ¦è¦å³
- Organizations管çã¢ã«ã¦ã³ã
- Organizationsæ¤è¨¼ç¨-01ã¢ã«ã¦ã³ãï¼ç®¡çã¢ã«ã¦ã³ãããstacksetsã®å®è¡ãå§ä»»ï¼
- Organizationsæ¤è¨¼ç¨-02ã¢ã«ã¦ã³ãï¼AWS Configã®ãã°éç´S3ãã±ããï¼
ä½æ¥ã®æµã
äºåä½æ¥
管çã¢ã«ã¦ã³ã
1ï¼å§ä»»ããã管çè
ãç»é²
CloudFormation > StackSets > [å§ä»»ããã管çè
ãç»é²]
2ï¼ã¢ã«ã¦ã³ãIDãå ¥ãã[å§ä»»ããã管çè ãç»é²]
ãã®ããã«01ã¢ã«ã¦ã³ãã®æ å ±ãç»é²ããã¾ãã
02ã¢ã«ã¦ã³ã
ãã«ãã¢ã«ã¦ã³ãã§AWS Configã®ãã°ãéç´ããããã®S3ãã±ãããç¨æãã¾ãã
1ï¼æå·å
è¨å®ã¯ã»ã¼ããã©ã«ãã§OKã§ãããæå·åã ãã客æ§ç°å¢ã«åããã¦SSE-KMSã使ç¨
2ï¼[KMSãã¼ãä½æãã]
ããã©ã«ãã®ã¾ã¾[次ã¸]
ã¨ã¤ãªã¢ã¹ãé©å½ã«è¨å®ãã[次ã¸]
ãã¼ã®ç®¡çã¢ã¯ã»ã¹è¨±å¯ããã¼ã®ä½¿ç¨æ³ã¢ã¯ã»ã¹è¨±å¯ã¯ä½ããããã®ã¾ã¾[次ã¸]
æå¾ã«ç¢ºèªãã¦[å®äº]
ï¼ãã¼ããªã·ã¼ã¯å¾è¿°ï¼
3ï¼S3ã®ããã©ã«ãã®æå·åã«æ»ãã[å¤æ´ãä¿å]
ï¼ãã±ããããªã·ã¼ã«é¢ãã¦ã¯å¾è¿°ï¼
æé
01ã¢ã«ã¦ã³ã
管çã¢ã«ã¦ã³ãããstacksetsãå§ä»»ããã01ã¢ã«ã¦ã³ãã§ãstacksetsãå®è¡ãã¾ãã
1ï¼ãµã¼ãã¹ããã¼ã¸ã StackSets
AWS Organizations ã管çããã¿ã¼ã²ããã¢ã«ã¦ã³ãã«ãããã¤ããããã[ãµã¼ãã¹ããã¼ã¸ã]ã¿ããé¸æãã[StackSetsãä½æ]
2ï¼ä»¥ä¸ã®ããã«è¨å®
https://cloudformation-stackset-sample-templates-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/EnableAWSConfigForOrganizations.yml ã«ã¢ã¯ã»ã¹ããã°ã[éä¸ãã®ã³ã°ã§AWS Configãæå¹ã«ãã]ãã³ãã¬ã¼ã EnableAWSConfigForOrganizations.yml ããã¦ã³ãã¼ãã§ãã¾ãã次åããã¯ããã«ããã©ã«ãå¤ãªã©æ¸ãè¾¼ãã§èªã¿è¾¼ãããã«ããã¨æ¥½ã§ãã
3ï¼StackSet åã¯é©å½ã«å ¥åãããã©ã¡ã¼ã¿ã¯ä»¥ä¸ã®ããã«è¨å®
4ï¼StackSet ãªãã·ã§ã³ã®è¨å®
ããã©ã«ãã®ã¾ã¾[次ã¸]
5ï¼æ±äº¬ãªã¼ã¸ã§ã³ã ããé¸æãã¦ããã[次ã¸]
6ï¼ã¬ãã¥ã¼
åé¡ãªããã°ãã®ã¾ã¾[éä¿¡]
7ï¼ãªãã¬ã¼ã·ã§ã³
ããããå¾
ãããã¾ããé 調ã ã¨6åã失æãã¦ãã¨20åè¿ãå¾
ããããå°è±¡ã§ãã
[ã¹ã¿ãã¯ã¤ã³ã¹ã¿ã³ã¹:]ã¿ãã«è¡ãã¨ã¤ã³ã¹ã¿ã³ã¹ãã¨ã®ç¶æ ãè¦ãã¾ãã
ãã¦ãããããã大å¤ã§ãããã
ã¨ã©ã¼ãã®1
ResourceLogicalId:ConfigRecorder,
ResourceType:AWS::Config::ConfigurationRecorder,
ResourceStatusReason:Failed to put configuration recorder 'StackSet-CentralLogging-AWSConfig-StackSet-620f4576-31d3-44ac-b722-71649402e3b2-ConfigRecorder-GC5RZIAA81LN'
because the maximum number of configuration recorders: 1 is reached.
(Service: AmazonConfig; Status Code: 400;
Error Code: MaxNumberOfConfigurationRecordersExceededException;
Request ID: 616dfd37-1d14-42ff-b20c-186ae7cde89d; Proxy: null).
MaxNumberOfConfigurationRecordersExceededException ã¨ã©ã¼ã¯ããªã¼ã¸ã§ã³ã®ã¢ã«ã¦ã³ãã«è¨å®ã¬ã³ã¼ãã¼ãæ¢ã«åå¨ãã¦ãããããæ°ããä½æã§ããªããã¨ã示ãã¾ãã
æ¢ã«AWS Configãæå¹ã«ãªã£ã¦ããã¨èµ·ããã¨ã©ã¼ã§ããæå¹ã«ãªã£ã¦ããå ´åã¯å度æå¹åããªããªã©å ´ååãå¦çãå
¥ããã°ããã®ã§ãããããã§ã¯ä¸æ°ã«å
¨ãªã¼ã¸ã§ã³ç¡å¹åãã¦ãããç´ æ´ããã以ä¸ã®ã¯ã³ã©ã¤ãã¼ãCloudShellã§æå
¥ãã¦è§£æ±ºã§ãï¼
# for a in `aws configservice describe-delivery-channels | jq -r '.DeliveryChannels[].name'`; do aws configservice delete-configuration-recorder --configuration-recorder-name ${a}; aws configservice delete-delivery-channel --delivery-channel-name ${a}; done
ã¨ã©ã¼ãã®2
ResourceLogicalId:ConfigDeliveryChannel,
ResourceType:AWS::Config::DeliveryChannel,
ResourceStatusReason:Insufficient delivery policy to s3 bucket: abe-test-config-log,
unable to assume role: arn:aws:iam::156083320778:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig-ap-northeast-1.
(Service: AmazonConfig; Status Code: 400; Error Code:
InsufficientDeliveryPolicyException;
Request ID: 0aa57a08-1d87-4ffa-8b65-c2ed631896a1; Proxy: null).
ãã®ä¸ååãªé
ä¿¡ããªã·ã¼ãä¸çªå¤ãåºãã¨ã©ã¼ã§ããããã®åå ã¯ãã±ããããªã·ã¼ã§ããã客ããã®ãã±ããããªã·ã¼ã«ã¯Â "StringEquals": {"aws:SourceOrgID": "o-*****"}
 ã¨ããæ¡ä»¶ãè¨è¼ããã¦ãã¾ãããã¨ãããã
AWS Config é ä¿¡ãã£ãã«ã® Amazon S3 ãã±ããã®ã¢ã¯ã»ã¹è¨±å¯ - AWS Config
Amazon S3 ãã±ãã AWS Config ã¸ã®ã¢ã¯ã»ã¹ã許å¯ããéã®ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã¨ãã¦ã AWS:SourceAccountæ¡ä»¶ã使ç¨ãã¦ãã±ããããªã·ã¼å ã®ã¢ã¯ã»ã¹ãå¶éãããã¨ãå¼·ããå§ããã¾ããæ¢åã®ãã±ããããªã·ã¼ããã®ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã«å¾ããªãå ´åã¯ããã®ä¿è·ãå«ããããã«ãã±ããããªã·ã¼ãç·¨éãããã¨ãå¼·ããå§ããã¾ããããã«ããã AWS Config ãæ³å®ã¦ã¼ã¶ã¼ã«ä»£ãã£ã¦ã®ã¿ã¢ã¯ã»ã¹è¨±å¯ãä»ä¸ããã¾ãã
AWSçã«ã¯SourceAccountæ¡ä»¶ã使ç¨ãããã¨ããã¹ããã©ã¯ãã£ã¹ãªã®ã§ãã
ãªã®ã§ãã±ããããªã·ã¼ã®Conditionå¥ã以ä¸ã®ããã«å¤æ´ãã¾ããã
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "836550492281"
}
}
ã¨ã©ã¼ãã®3
ResourceLogicalId:ConfigDeliveryChannel,
ResourceType:AWS::Config::DeliveryChannel,
ResourceStatusReason:Insufficient delivery policy to s3 bucket:
abe-test-config-log, unable to write to bucket, provided s3 key prefix is 'null'.
S3ã®ãã¼ãã¬ãã£ãã¯ã¹ãç¡ãã£ã¦ãã¤ã§ããããã¯Â AWS Organizations ã® CloudFormation StackSets 㧠AWS Config ãæå¹å | 空æ³ããã°Â ã«ããã¨ããS3KeyPrefix: !Ref OrganizationIdãã¨æå®ããããã¾ããã£ããããã®ã§ãé©å½ã«ãã±ããåã®å¤æ°ãå©ç¨ãã¦ã次ã®ããã«ãã¦ã¿ã¾ããï¼ãã«ã«ãªããªããã°ä½ã§ãããã¨æãã¾ãï¼
S3KeyPrefix: !If
- UsePrefix
- !Ref S3KeyPrefix
- !Ref S3BucketName
ã¨ã©ã¼ãã®4
ResourceLogicalId:ConfigDeliveryChannel,
ResourceType:AWS::Config::DeliveryChannel,
ResourceStatusReason:Insufficient delivery policy to s3 bucket:
abe-test-config-log, unable to write to bucket, provided s3 key prefix is 'abe-test-config-log', provided kms key is 'null'.
(Service: AmazonConfig; Status Code: 400;
Error Code: InsufficientDeliveryPolicyException;
Request ID: 66ce4e69-3294-4977-ac5c-0c925e87e21f;
Proxy: null).
ä»åº¦ã¯KMSãã¼ããã«ï¼ãããçµæ§è¦å´ãã¾ããã
ä¸è¨ã® AWS KMS ãã¼ããªã·ã¼ã® AWS:SourceAccount æ¡ä»¶ã使ç¨ããã¨ãç¹å®ã®ã¢ã«ã¦ã³ãã«ä»£ãã£ã¦æä½ãå®è¡ããã¨ãã«ã®ã¿ Config ãµã¼ãã¹ããªã³ã·ãã«ã AWS KMS ãã¼ã¨å¯¾è©±ããããã«å¶éã§ãã¾ãã
ããã§ãKMSã®ãã¼ããªã·ã¼ã«ã"AWS:SourceAccount"æ¡ä»¶ãå
¥ãã¦ã¿ã¾ããã
ã¾ããActionã«kms:Encryptã追å ãã¦ã¿ã¾ããã
{
"Sid": "AWSConfigKMSPolicy",
"Effect": "Allow",
"Principal": {
"Service": "config.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:ap-northeast-1:123456789012:key/****-****-****",
"Condition": {
"StringEquals": {
"AWS:SourceAccount": "836550492281"
}
}
}
AWS Configã®ãã°é ä¿¡å S3ãã±ãããKMSæå·åãã #kms - Qiita ã«ããã¨ãput-delivery-channelã³ãã³ãã§ç°¡åã«ãã¹ãã§ããããã§ãããããéãã°åé¡ãªãã
$ aws configservice describe-delivery-channels
{
"DeliveryChannels": [
{
"name": "configlog",
"s3BucketName": "abe-test-config-log",
"s3KeyPrefix": "abe-test-config-log",
"configSnapshotDeliveryProperties": {
"deliveryFrequency": "One_Hour"
}
}
]
}
$ aws configservice put-delivery-channel --delivery-channel name=default,s3BucketName=abe-test-config-log,s3KmsKeyArn=arn:aws:kms:ap-northeast-1:156083320778:key/54ae0f87-fe85-4048-888e-8a47a0ab5ea2,s3KeyPrefix=abe-test-config-log
$ aws configservice describe-delivery-channels
{
"DeliveryChannels": [
{
"name": "configlog",
"s3BucketName": "abe-test-config-log",
"s3KeyPrefix": "abe-test-config-log",
"s3KmsKeyArn": "arn:aws:kms:ap-northeast-1:156083320778:key/54ae0f87-fe85-4048-888e-8a47a0ab5ea2",
"configSnapshotDeliveryProperties": {
"deliveryFrequency": "One_Hour"
}
}
]
}
ãã®ããã«ãs3KmsKeyArnããã¨ã©ã¼ãªãå ¥ãã°OKã§ãï¼
çµæ
以ä¸ã®ãã©ã·ã¥ã¼ã®æ°ã ãæ½ãæãã¦ããçµæããªãã¨ãæåï¼
ãã¾ãï¼ä»£æ¿çï¼
ãµã¼ãã¹ã«ãªã³ã¯ããããã¼ã«ã使ããªãã¦ããå ´åã¯æ®éã«IAMãã¼ã«ã§ä»£æ¿ã§ããã¿ããã§ããã
æè¦æé
6æéï¼
ï¼1åã®ã¹ã¿ãã¯ã»ããã®ãªãã¬ã¼ã·ã§ã³ã«6ã20åãããã¾ãããï¼
ALBã§ã¿ã¼ã²ãããAPI Gatewayã«ãã¦ç¸äºTLSãã©ã¹ãã¹ãã¢æ¤è¨¼ã§ããã
ãµã¼ãã¹æ¦è¦
æ¨å¹´ã®re:Invent 2023ã§çºè¡¨ãããã¢ãããã¼ãã«ãããALBã§ç¸äºTLSï¼mutual TLSï¼èªè¨¼ï¼ã¯ã©ã¤ã¢ã³ãèªè¨¼ï¼ãã§ããããã«ãªãã¾ãããç¸äºTLSã«ã¯ãX.509v3ã¯ã©ã¤ã¢ã³ã証ææ¸ãæ¤è¨¼ããããã®2ã¤ã®ãªãã·ã§ã³ãããããã®ãã¡ã®ä¸ã¤ããã©ã¹ãã¹ãã¢æ¤è¨¼ã§ãã
ãã©ã¹ãã¹ãã¢æ¤è¨¼ã¨ã¯ãALBãTLSæ¥ç¶ããã´ã·ã¨ã¼ãããã¨ãã«ãã¯ã©ã¤ã¢ã³ãã«å¯¾ãã¦X.509ã¯ã©ã¤ã¢ã³ã証ææ¸èªè¨¼ãå®è¡ãã¦äºãã®IDãæ¤è¨¼ããTLSæ¥ç¶ã確ç«ãã¦äºãã®éã®éä¿¡ãæå·åãã¾ããé常ãç¸äºTLSæ¤è¨¼ã¢ã¼ãã¨ãã£ãå ´åã¯ãã¡ãã®ãã©ã¹ãã¹ãã¢æ¤è¨¼ãæãã¾ãã
ç®çã»ãããããã¨
ãã¤ã¯ããµã¼ãã¹ãçµ±åããã»ãã¥ã¢ã§æè»ãªAPIããã¸ã¡ã³ããå®ç¾ãã
- æ¢åã®ãªã³ãã¬ãã¹ã·ã¹ãã ã¨æ°è¦ã¯ã©ã¦ããµã¼ãã¹ãçµ±åããä¸è²«ããAPI管çãè¡ã
- è¤æ°ã®é¨éãäºæ¥é¨ãç¬èªã«éçºãããµã¼ãã¹ããçµ±ä¸ãããã¤ã³ã¿ã¼ãã§ã¼ã¹ã§å¤é¨ã«å ¬éããã
ä¸è¨ã®ç®çãéæããããããã©ã¹ãã¹ãã¢æ¤è¨¼ã§ãALBã®å¾æ®µã«API Gatewayããæ§æãæå¹ãã©ãããæ¤è¨¼ããã
以ä¸è¦ä»¶ï¼
- ALBã§mTLSãã©ã¹ãã¹ãã¢æ¤è¨¼ãæå¹ãS3ã«è¨ç½®ããCA証ææ¸ã失å¹ãªã¹ãã®è¨å®ãè¡ãALBã§ã¯ã©ã¤ã¢ã³ãèªè¨¼è¡ã
- ALBã§ã»ãã¥ãªãã£ããªã·ã¼ãTLS1.3ã®ã¿æå¹ãªããªã·ã¼ãå½ã¦ã
API Gateway ã¸ã®å°éæ§ãã«ã¹ã¿ã ãã¡ã¤ã³ï¼ä¾ï¼https://api.example.comï¼ãä»ãã¦æä¾ãã¾ããã«ã¹ã¿ã ãã¡ã¤ã³åã®DNSã¬ã³ã¼ãã¯ãRoute 53ãµã¼ãã¹ã«ãã£ã¦ãã¹ãããã¾ãããããã¤ã«å¿ è¦ãªå ¬éSSL証ææ¸ãä½æããããã«ãAWS Certificate Managerã使ç¨ãã¾ãã
対象ã¨ãªãæè¡
æ¡ä»¶ï¼è¨¼ææ¸ã®è¦ä»¶ï¼
ç¸äºTLSèªè¨¼ã§ä½¿ç¨ããã証ææ¸ã«ã¤ãã¦ã以ä¸ããµãã¼ããã¦ãã¾ãã
- ãµãã¼ãããã¦ãã証ææ¸ï¼X.509v3
- ãµãã¼ãããã¦ãããããªãã¯ãã¼ï¼RSA 2Kâ8K ã¾ã㯠ECDSA secp256r1ãsecp384r1ãsecp521r1
- ãµãã¼ãããã¦ããç½²åã¢ã«ã´ãªãºã ï¼SHA256ã384ã512 㨠RSA/SHA256ã384ã512 㨠EC/SHA256ã384ã512ããã·ã¥ã¨MGF1ã®RSASSA-PSS
ï¼åèï¼Application Load Balancer ã§ç¸äº TLS ã®è¨å®ãéå§ããåã«
åèURL
- Application Load Balancer ã§ã® TLS ã«ããç¸äºèªè¨¼ - Elastic Load Balancing
- AWS Global Accelerator ã«ãã£ã¦æä¾ãããéç IP ã¢ãã¬ã¹ãä»ãã AWS API Gateway ã¸ã®ã¢ã¯ã»ã¹ | Amazon Web Services ããã°
- ALBããã¤ãã«å¯¾å¿ããmTLSèªè¨¼ã¦ããã©ã¹ãã¹ãã¢ãããã¹ã¹ã«ã¼ãæ¤è¨¼ãã¦ã¿ã
注æäºé
- ãã©ã¤ãã¼ãAPIã¯TLSv1.2ã®ã¿ãµãã¼ã
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html#apigateway-private-api-ciphers
æ¦è¦å³
ä½æ¥ã®æµã
äºåä½æ¥
1ï¼APIã¨ã³ããã¤ã³ãã®ä½æ
VPC > ã¨ã³ããã¤ã³ã > [ã¨ã³ããã¤ã³ããä½æ]
ãAWSã®ãµã¼ãã¹ãã§ãcom.amazonaws.ap-northeast-1.execute-apiããµã¼ãã¹ãé¸æ
AZã¯ä»åæ¤è¨¼ã®ãã1ã¤ã ãé¸æ
æ®ãã¯ããã©ã«ãã®ã¾ã¾[ã¨ã³ããã¤ã³ãã®ä½æ]
ã¨ã³ããã¤ã³ããä½æããããããã¡ãã®2ã¤ã®DNSåã確èª
nslookupã§IPãè¦ãã¨2ã¤ã¨ãåãIPãè¿ã£ã¦ããã®ã§ããããã¡ã¢
# nslookup vpce-****.execute-api.ap-northeast-1.vpce.amazonaws.com
Non-authoritative answer:
Name: vpce-****.execute-api.ap-northeast-1.vpce.amazonaws.com
Address: 10.0.22.**
# nslookup vpce-****-ap-northeast-1a.execute-api.ap-northeast-1.vpce.amazonaws.com
Non-authoritative answer:
Name: vpce-****-ap-northeast-1a.execute-api.ap-northeast-1.vpce.amazonaws.com
Address: 10.0.22.**
2ï¼APIã²ã¼ãã¦ã§ã¤ã®ä½æ
API Gateway > API > [APIãä½æ]
REST APIã[æ§ç¯]
ããµã³ãã« APIããé¸æ
ã¨ã³ããã¤ã³ãã¿ã¤ãã¯ããã©ã¤ãã¼ããã«ããã¨ã³ããã¤ã³ãIDã«1.ã§ä½æããAPIã¨ã³ããã¤ã³ãIDãé¸æãã[APIãä½æ]
3ï¼ãªã½ã¼ã¹ããªã·ã¼ã®ä½æ
API > ãªã½ã¼ã¹ããªã·ã¼ > [ããªã·ã¼ãä½æ]
ãã³ãã¬ã¼ããé¸æ ãã[ã½ã¼ã¹VPC許å¯ãªã¹ã]ãé¸ã³ãæ¤è¨¼ãªã®ã§ãã®ããã«æ¯è¼çç·©ãã®ããªã·ã¼ãä½æ
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*",
"Condition": {
"StringNotEquals": {
"aws:sourceVpc": "vpc-****"
}
}
},
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "execute-api:/*/*/*"
}
]
}
4ï¼æ¥ç¶ãã¹ã
ããªã·ã¼ãä½æããã¨ãããã¤ãã§ãã¾ãã
ã¤ã³ã¿ã¼ãããçµç±ã ã¨Webã¢ã¯ã»ã¹ã§ããªãã®ã§ããããªãã¯ãµããããã«ããè¸ã¿å°WindowsããWebã¢ã¯ã»ã¹ãã¦æ¥ç¶ç¢ºèª
è¦ããªãæ¹ã¯ã¨ã³ããã¤ã³ãã®ã»ãã¥ãªãã£ã°ã«ã¼ãã確èªãã¦ã¿ã¦ãã ãããèªåã¯æåãããããã©ã«ãã®ã¾ã¾ã§httpsã¢ã¯ã»ã¹ã許å¯ããã¦ããããè¥å¹²ãããã¾ããã
5ï¼ACM証ææ¸ã®åå¾
èªåã¯ãnozaki2.comããã¡ã¤ã³ããåå.comã§åå¾ãã¦ããã®ã§ãã*.nozaki2.comãã§ACM証ææ¸ãåå¾ãã¾ããã
æé
API Gatewayã®äºåæºåãçµãã£ãã®ã§ãALBãä½æãã¦ããã¾ãã
1ï¼ã¿ã¼ã²ããã°ã«ã¼ãã®ä½æ
ã¿ã¼ã²ããã¿ã¤ãã¯ãIPã¢ãã¬ã¹ããé¸æ
ãã«ã¹ãã§ãã¯ã«ã¯ãHTTPSãã使ç¨ãããããã³ã«ãã¼ã¸ã§ã³ã¨ãã¦ãHTTP1ããæå®
[ãã«ã¹ãã§ãã¯ã®è©³ç´°è¨å®]ãéãããæåã³ã¼ããã®å¤ãã403ãã«å¤æ´
æ³¨ï¼ ALB ã¯ãVPC ã¨ã³ããã¤ã³ãã® IP ã¢ãã¬ã¹ã«å¯¾ã㦠HTTPS ãªã¯ã¨ã¹ããéä¿¡ã㦠API Gateway ã®ãã«ã¹ãæ¤è¨¼ãã¾ããAPI Gateway ã¯ããã«ã¹ãã§ãã¯ã®ããã¼ãä¸ã«æ£ãããã¡ã¤ã³åã¨ã¹ãã¼ã¸ã® URL ãæä¾ããªãããã403ã³ã¼ãï¼ã¢ã¯ã»ã¹ç¦æ¢ï¼ã§å¿çãã¾ãã
äºåæºå1.ã§ã¡ã¢ããIPãã¿ã¼ã²ããã¨ãã¦è¿½å
2ï¼ALBã®ä½æ
é常éãALBãä½æãã¾ããã¿ã¼ã²ããã°ã«ã¼ãã«ã¯1.ã§ä½æãããnozaki-privateapi-TGããé¸æ
ããã§ã¯ä¸æ¦ã¾ãmTLSãªãã§ä½æãã¦ãæ¥ç¶ç¢ºèªãåªå
ãã¾ãã
ã¾ãã念ã®ããããªã·ã¼ã§TLS 1.3ã«ãªã£ã¦ãããã¨ã確èªãã¦ããã¾ãã
ï¼ã¦ã¼ã¶ã¼ããã®ã¨ã³ããã¤ã³ãã§ããALBå´ã§TLS1.3ã®ã¿ã§åãä»ããããã°ãALBâãã©ã¤ãã¼ãAPIã¯TLS1.2ã§ããã¨èãã¦ãã¾ãï¼
Webæ¥ç¶ãã¹ã
ã¨ããããã®ç¶æ
ã§Webæ¥ç¶ç¢ºèªãã¦ã¿ãã¨ããã{"message":"Forbidden"}ã¨ãªãã¾ãããã¨ã³ããã¤ã³ãã®DNSãIPã«ç´æ¥ã¢ã¯ã»ã¹ãã¦ãåæ§ã«{"message":"Forbidden"}ã¨ãªãã¾ãã
æé 追å
ä½ãè¨å®ã足ãã¦ããªãã®ã ããã¨ã以ä¸ã追å ãããã¨ã«ãã¾ããã
- ã«ã¹ã¿ã ãã¡ã¤ã³ã®è¨å®
- ã¨ã¤ãªã¢ã¹Aã¬ã³ã¼ãã®è¨å®
3ï¼ã«ã¹ã¿ã ãã¡ã¤ã³ã®è¨å®
APIãããã³ã°ã使ç¨ãã¦ãAPIã¹ãã¼ã¸ãã«ã¹ã¿ã ãã¡ã¤ã³åã«é¢é£ã¥ããå¿
è¦ããããã¨ããããã¾ããããããã¤ã¡ã³ãç¨ã«ã«ã¹ã¿ã ãã¡ã¤ã³ãä½æãã¾ãããã¡ã¤ã³åã¯ãACM証ææ¸ã«å«ã¾ãã¦ããå¿
è¦ãããã¾ãã
3.1. API Gatewayã³ã³ã½ã¼ã«ã§ãã«ã¹ã¿ã ãã¡ã¤ã³å > [ä½æ]
3.2. ãã¡ã¤ã³åã®è©³ç´°
- ãã¡ã¤ã³åï¼é©å½ã«å ¥å
- TLSã®æå°ãã¼ã¸ã§ã³ï¼ããã©ã«ãã®ã¾ã¾
ãã ããç¸äºTLSèªè¨¼ã¯ããã¾ã§ALBã«ããããã®ã§ãããã§ã¯æå¹ã«ãã¾ããã
3.3. ã¨ã³ããã¤ã³ãè¨å®
ããã§å°ãã¾ãããé¸æã§ããã¨ã³ããã¤ã³ãã¿ã¤ãããªã¼ã¸ã§ã³ or ã¨ãã¸æé©åããããã¾ãããããï¼ãã©ã¤ãã¼ãé¸ã¹ãªãã®ï¼ã¨æãã¾ããããã©ã£ã¡ãé¸ãã§ããããããã§ãã
ACM証ææ¸ã¯äºåä½æ¥Â 5.ã§ä½æããACMãé¸ã³ã¾ãã
以ä¸ã§[ãã¡ã¤ã³åãä½æ]
3.4. APIãããã³ã°
ä½æãããã¡ã¤ã³åãé¸æãã[APIãããã³ã°]ã¿ã > [APIãããã³ã°ãè¨å®]
ãdevãã¹ãã¼ã¸ãé¸æãã¦[ä¿å]
4ï¼ã¨ã¤ãªã¢ã¹Aã¬ã³ã¼ãã®è¨å®
ä¸è¨ã§ã«ã¹ã¿ã ãã¡ã¤ã³åã¨APIã¹ãã¼ã¸ã®é¢é£ä»ããç¡äºå®äºããã®ã§ãä»åº¦ã¯ãã®ã«ã¹ã¿ã ãã¡ã¤ã³ã§Webã¢ã¯ã»ã¹ããæã«ALBã«åãããããããDNSã¬ã³ã¼ããè¨å®ããå¿
è¦ãããã¾ãã
å¤é¨ããã®ã¢ã¯ã»ã¹ãæ³å®ãã¦ãããããRoute 53ã§ãnozaki2.comãã®ãããªãã¯ãã¹ãã¾ã¼ã³ãä½æãã¦ããã¾ãã
[ã¬ã³ã¼ããä½æ]ã§ãã®ãããªã¨ã¤ãªã¢ã¹Aã¬ã³ã¼ããä½æãã¾ãã
ä»åº¦ããæ°ãåãç´ãã¦å度Webæ¥ç¶ãã¹ã
ãaaa.nozaki2.comãã«Webã¢ã¯ã»ã¹ããç¡äºAPI Gatewayã«è¨å®ããPet Storeãã¼ã¸ã表示ããã¾ããï¼
次ã¯ããããç¸äºãã©ã¹ãã¹ãã¢ãè¨å®ãã¦ããã¾ãã
æé 追å ï¼ç¸äºãã©ã¹ãã¹ãã¢è¨å®ï¼
ç¸äºãã©ã¹ãã¹ãã¢ã¯ããã©ã¹ãã¹ãã¢ã®ä½æãçµæ§é¢åãªã®ã§ãå ã«ãã©ã¹ãã¹ãã¢ãåç¬ã§ä½æãã¦ããã¾ãããã®ããã«ã¯ã¯ã©ã¤ã¢ã³ã証ææ¸ãä½æããå¿ è¦ãããã¾ãã
5ï¼ã¯ã©ã¤ã¢ã³ã証ææ¸ã®ä½æ
opensslã³ãã³ãã§ç§å¯éµï¼root_key.pemï¼ãã«ã¼ãCA証ææ¸ï¼root_cert.pemï¼ãã¯ã©ã¤ã¢ã³ã証ææ¸ï¼client_cert.pemï¼ã®é ã«ä½æãã¦ããã¾ããçæãããã«ã¼ãCA証ææ¸ã¯ãã©ã¹ãã¹ãã¢ã«ãã¯ã©ã¤ã¢ã³ã証ææ¸ã¯ã¯ã©ã¤ã¢ã³ãèªè¨¼ã§ä½¿ãã¾ãã
6ï¼ãã©ã¹ãã¹ãã¢ã®ä½æ
ãã¼ããã©ã³ã·ã³ã° > ãã©ã¹ãã¹ã㢠> [ãã©ã¹ãã¹ãã¢ãä½æ]
5.ã§ä½æããã«ã¼ãCA証ææ¸ï¼root_cert.pemï¼ãS3ã®ã©ããã«ä¸ãã¦ããããã®S3 URIãã¹ãèªè¨¼å±ãã³ãã«ã¨ãã¦æå®ãã¾ãã
ãã®ã»ãã¯ããã©ã«ãã®ã¾ã¾ã[ãã©ã¹ãã¹ãã¢ãä½æ]
â»æ³¨æ
ããã§ã«ã¼ãCA証ææ¸ãæ£ããå½¢å¼ã§ä½æããã¦ããªãã¨ã[ãã©ã¹ãã¹ãã¢ãä½æ]ãã¦ããä¸è¨ã®ãããªãThe basic constraints extension must specify that the certificate is for a CAï¼åºæ¬å¶ç´ã§ã¯ã証ææ¸ãCAç¨ã§ãããã¨ãæå®ããªããã°ãªããªãï¼ãã¨ããè¬ã®ã¨ã©ã¼ãåºã¦ãã¾ãã¾ãï¼ã°ã°ã£ã¦ãåºã¦ãã¾ããããï¼
ã«ã¼ãCA証ææ¸ã®ä¸èº«ã以ä¸ã®ãããªãã©ã¼ãããã«ãªã£ã¦ãããã¨ã確èªãã¦ãã ãããèªåã¯ããã§ãããã¾ããã
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgIUQREbhxa83orBI9vac76/sr5JCvIwDQYJKoZIhvcNAQEL
ããããã
W71mqNugfiXQC0GuPZdCs/WillAsHhlp+A==
-----END CERTIFICATE-----
7ï¼ALBã®è¨å®å¤æ´
å度ALBã®è¨å®ã«æ»ãã[ãªã¹ãã¼ã¨ã«ã¼ã«]ã¿ã > [ã«ã¼ã«ã管ç] > [ã«ã¼ã«ã®ç·¨é]
ãã¯ã©ã¤ã¢ã³ã証ææ¸ã®å¦çãã§ä»åº¦ã¯ç¸äºèªè¨¼ãæå¹ã«ããããã©ã¹ãã¹ãã¢ã§æ¤è¨¼ããé¸æããã©ã¹ãã¹ãã¢ã«ã¯6.ã§ä½æãããã©ã¹ãã¹ãã¢ï¼nozaki-truststoreï¼ãé¸æãã¦ã[å¤æ´å
容ã®ä¿å]
å度Webæ¥ç¶ãã¹ãã§æçµç¢ºèª
ããã§æ¥ç¶ãã¹ãã¯Windowsä¸ã§è¡ãã¾ããããã®ãããã¯ã©ã¤ã¢ã³ã証ææ¸ã.pfxå½¢å¼ã«å¤æãã¦ãã©ã¦ã¶ã«å
¥ãã¦ããã¾ãã
ãaaa.nozaki2.comãã«å度Webã¢ã¯ã»ã¹ããã¨ãä»åº¦ã¯ã¯ã©ã¤ã¢ã³ã証ææ¸ãæ±ãããããã¤ã¢ãã°ã表示
æ£ãã証ææ¸ãé¸æããã¨ãç¡äºPet Storeã®ãã¼ã¸ã表示ããã¾ãã
ã¡ãªã¿ã«ééã£ã証ææ¸ãé¸æãããããã£ã³ã»ã«ãããããã¨ãããã®ãµã¤ãã«ã¢ã¯ã»ã¹ã§ãã¾ãããã¨ãã¦æå¦ã§ãã¦ãããã¨ã確èªã§ãã¾ãã
以ä¸ã«ãããALB(ãã©ã¹ãã¹ãã¢) â API Gatewayã¨ã³ããã¤ã³ã â API Gateway(ãã©ã¤ãã¼ãAPI) ã§ã¯ã©ã¤ã¢ã³ãèªè¨¼çµç±ã§éããã¨ã確èªã§ãã¾ããã
ã¾ã¨ã
- ALBã§API Gatewayãã¿ã¼ã²ããã«ãããå ´åã¯ãAPI Gatewayã¨ã³ããã¤ã³ãã®IPã¢ãã¬ã¹ãæå®ãã
- ãã©ã¤ãã¼ãAPIã¯TLSv1.2ã®ã¿ãµãã¼ã
- ALBçµç±ã§API Gatewayã«Webã¢ã¯ã»ã¹ããã«ã¯ããã«ã¹ã¿ã ãã¡ã¤ã³ã®è¨å®ããã¨ã¤ãªã¢ã¹Aã¬ã³ã¼ãã®è¨å®ããè¡ã
- ç¸äºèªè¨¼ï¼mTLSï¼ãæå¹ã«ããã¨ã¯ã©ã¤ã¢ã³ã証ææ¸èªè¨¼ãã§ãã
- ãã©ã¹ãã¹ãã¢æ¤è¨¼ã§ã¯ãALBå´ã§ã¯ã©ã¤ã¢ã³ãèªè¨¼ãè¡ã
- ãã©ã¹ãã¹ãã¢ãä½æããå ´åã¯ãã«ã¼ãCA証ææ¸ã®å½¢å¼ã«æ³¨æ
æè¦æé
2æé
ã¦ã¼ã¹ã±ã¼ã¹
ALBã§API Gatewayã¨ã³ããã¤ã³ããã¿ã¼ã²ããã«ãããå ´åã«ãTLS 1.3ï¼ã¯ã©ã¤ã¢ã³ãèªè¨¼ãè¡ã£ã¦ã»ãã¥ãªãã£ãå¼·åãããã±ã¼ã¹
AWS Organizationsã«ãããQuickSightãå©ç¨ããã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ãã®å©ç¨æé
ãµã¼ãã¹æ¦è¦
ã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ãï¼AWS Cost and Usage Report (CUR) ã®æ¦è¦ãã¥ã¼ãåºã«ãããã®
QuickSightãå©ç¨ããã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ãï¼Cost & Usage Dashboardï¼CUDï¼ããBilling and Cost Managementã³ã³ã½ã¼ã«ããç´æ¥ãããã¤ã§ããããã«ãªãã¾ããã
- AWSããã¸ã¡ã³ãã³ã³ã½ã¼ã«ã«ã¢ã¯ã»ã¹ã§ããªãã¦ããã³ã¹ãã«é¢ããã¤ã³ãµã¤ããå®å ¨ã«å ±æã§ãã
- AWSã§äºãã§ç¨æããã¦ããæ§ç¯æ¸ã¿ã®ã¤ã³ã¿ã©ã¯ãã£ããªããã·ã¥ãã¼ããä½ããã¨ãã§ãã
ç®çã»ãããããã¨
- AWSã触ã£ããã¨ãããã客æ§ã§è¨å®ã§ããã¬ãã«ã®ãã£ããã£ä»ãæé æ¸
- ä»åã®ã客æ§ã ãã§ã¯ãªããä»ã®ã客æ§ã«ãå±éã§ããå½åã§ã®æ¤è¨¼ï¼ãã£ããã£åå¾ï¼
- ãã£ããã§ããã®ã§æ§ç¯ã«ããã£ãæéã®è¨æ¸¬
- ããã©ã«ãã§QuickSightã«è¡¨ç¤ºãããé ç®ãå 容ï¼ãã£ããã£ä»ã説æã§è¨å®æé ã¨ã¯å¥ã§ããã»ããããï¼
- QuickSight触ã£ã¦ã¿ã¦ã³ã¹ãè¦ãã®ã«æ³¨æç¹ã¨ãããã°ãããç®æ¡æ¸ãã§
- ï¼ãªãã·ã§ã³ï¼Organizationsã§è¨å®ããã¨ãã«ã¢ã«ã¦ã³ãå¥ã§è¡¨ç¤ºã§ãããã確èªã¨ãã®è¡¨ç¤ºã®ãã£ããã£
対象ã¨ãªãæè¡
- AWS Organizations
- QuickSight
åèURL
- Amazon QuickSight ãå©ç¨ããã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ãã®çºè¡¨
- æ°æ©è½ â Amazon QuickSight ãå©ç¨ããã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ã | AWS ã¯ã©ã¦ã財å管ç
- æ°æ©è½ç´¹ä»ã¨ãã¢ï¼ãã³ã¹ã使ç¨ç¶æ³ããã·ã¥ãã¼ãããããç°¡åã«, ãå¶éä»ãå ±æãã©ã«ãã¼ãã§ã¢ã»ããå¶å¾¡ãããã»ãã¥ã¢ã« | Amazon QuickSight Learning Series - YouTube
注æäºé
- ã³ã¹ã使ç¨ç¶æ³ããã·ã¥ãã¼ãã§ã§ã«ãã¼ãããªãæ å ±å«ãå¯è¦åãããå ´åã«ã¯ãåå¥ã«ããã·ã¥ãã¼ãéçºãè¡ããã¨ã§å¯¾å¿å¯è½
æ¦è¦å³
ï¼https://youtu.be/hDObb-wiYk8?t=498Â ããï¼
ä½æ¥ã®æµã
äºåä½æ¥
親ã¢ã«ã¦ã³ãã§ãã¼ã¿ã¨ã¯ã¹ãã¼ããä¿åããç¨ã®S3ãã±ãããä½æãã¦ããï¼ããã§ã¯ãquicksight-dataexportãã¨ãã¾ããï¼
æé
1ï¼è«æ±ã¨ã³ã¹ã管ç > ãã¼ã¿ã¨ã¯ã¹ãã¼ã ããããã®ä»ã®æ©è½ãã[ã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ã]ãã¯ãªãã¯
2ï¼ã¨ã¯ã¹ãã¼ãã¿ã¤ãã¯[QuickSight ãå©ç¨ããã³ã¹ãã¨ä½¿ç¨ç¶æ³ã®ããã·ã¥ãã¼ã]ãã¨ã¯ã¹ãã¼ãåã¯ããããããååã«ãQuickSight ã¢ã«ã¦ã³ãã¯æ¢ã«ãªãå ´åã¯[ä½æ]ãé¸æãã¾ãã
3ï¼ï¼QuickSight ã¢ã«ã¦ã³ããä½æããå ´åï¼
[QUICKSIGHT ã«ãµã¤ã³ã¢ãã]ãé¸æ
4ï¼ä»¥ä¸ã®ããã«è¨å®
ã¡ã¼ã«ã¢ãã¬ã¹ï¼éç¥ãããã¡ã¼ã«ã¢ãã¬ã¹
èªè¨¼æ¹æ³ï¼IAM ãã§ãã¬ã¼ãã£ãã ID 㨠QuickSight ã§ç®¡çãããã¦ã¼ã¶ã¼ã使ç¨ãã
ãªã¼ã¸ã§ã³ï¼Asia Pacific(Tokyo)
QuickSight ã¢ã«ã¦ã³ãåï¼ããããããã¢ã«ã¦ã³ãå
IAM ãã¼ã«ï¼QuickSight ã§ç®¡çããããã¼ã«ã使ç¨ãã (ããã©ã«ã)
ãããã®ãªã½ã¼ã¹ã¸ã®ã¢ã¯ã»ã¹ã¨èªåæ¤åºã許å¯ããï¼
[S3ãã±ãããé¸æãã]ã§ãäºåã«ä½æãã¦ããããquicksight-dataexportããé¸æ
ãã¨ã¯ããã©ã«ãã®ã¾ã¾[å®äº]
5ï¼åã³[ã¨ã¯ã¹ãã¼ããä½æ]ç»é¢ã«æ»ããQuickSight ã¢ã«ã¦ã³ãã§[ãªãã¬ãã·ã¥]ãé¸æ
ããã¨è¨å®ããQuickSight ã¢ã«ã¦ã³ãåã表示ããã¾ãã
6ï¼ãã¼ã¿ã¨ã¯ã¹ãã¼ãã¹ãã¬ã¼ã¸è¨å®
S3ãã±ããã®è¨å®ã§[æ¢åã®ãã±ãããé¸æ]ãé¸ã³ãäºåã«ä½æãããquicksight-dataexportããã±ãããé¸æãã¾ãã
Billing And Cost Management ãã¼ã¿ã¨ã¯ã¹ãã¼ãã«å¿ è¦ãªãã±ããããªã·ã¼ã§æ¢åã®ãã±ããããªã·ã¼ãä¸æ¸ããã¾ãã®ã§ããS3 ãã±ããããªã·ã¼ãä¸æ¸ããããã¨ã«åæãã¾ããã«ãã§ãã¯ãå ¥ãã[ãã±ãããé¸æ]ãã¾ãã
S3 ãã¹ãã¬ãã£ãã¯ã¹ã«ã¯é©å½ã«ããããããååãä»ãã¾ãã
7ï¼ãµã¼ãã¹ã¢ã¯ã»ã¹
[æ°ãããµã¼ãã¹ãã¼ã«ãä½æ]ãé¸æãã¾ãã
ããã¦æå¾ã«ãããã[ä½æ]ãã¯ãªãã¯
8ï¼æ°åå¾ãç¡äºç¨¼åãã¦ãããã¨ã確èªãã¾ãã
9ï¼[ã³ã¹ãã¨ä½¿ç¨ç¶æ³ããã·ã¥ãã¼ã]ã«ã¢ã¯ã»ã¹ãã¦è¦ãã¨ãæ°å¤é¨åãããã¼ã¿ãªããã«ãªã£ã¦ãã¾ãã
10ï¼QuickSightã«ã¢ã¯ã»ã¹ãããã¼ã¿ã»ãããããcostanalysis-exportããã¯ãªãã¯
11ï¼æ´æ°ã¿ãã«ç§»åããã¨ãéå§æå»ãã02:38ããã¿ã¤ã ã¾ã¼ã³ããAmerica/New_Yorkãã«ãªã£ã¦ãããä¸ã®å±¥æ´ãè¦ã¦ãåãè¾¼ã¾ãããã¼ã¿éã0ã«ãªã£ã¦ãã¾ãã
ã¢ã¯ã·ã§ã³ã§ãç·¨éããé¸ã³ã
ã¿ã¤ã ã¾ã¼ã³ãJTCã«ãéå§æå»ãå°ãå ã®æªæ¥ã®æå»ã«ãã¦[ä¿å]
å³ä¸ã®[ä»ããæ´æ°]ãã¯ãªãã¯
[æ´æ°]
ãã®éã«ãã¼ã¿ãåãè¾¼ã¾ããªãã¦ãããã°ãããã¦ããããä¸åº¦æ´æ°ããã¨ããã®ããã«ãã¼ã¿ã®åãè¾¼ã¿ãè¡ããã¾ããã
12ï¼ããã§å ã®ããã·ã¥ãã¼ãã«æ»ãã¨ããã¼ã¿ãã¡ããã¨è¡¨ç¤ºãããã¡ã³ãã¼ã¢ã«ã¦ã³ãã®ã³ã¹ãã表示ããã¦ãããã¨ããããã¾ãã
èå¯
S3ãã±ãããè¦ã«è¡ãã¨ãquicksight-dataexport/cur-export/costanalysis-export/data/BILLING_PERIOD=2024-01/ ã« costanalysis-export-00001.csv.gz ã¨ããå§ç¸®ãã°ãã¡ã¤ã«ãããã解åãã¦ä¸ãè¦ãã¨ã以ä¸ã®ãããªãã¼ã¿ãå ¥ã£ã¦ããã
billing_period | usage_date | payer_account_id | payer_account_name | linked_account_id | linked_account_name | invoice_id | charge_type | charge_category | purchase_option | ri_sp_arn | product_code | product_name | service | product_family | usage_type | operation | item_description | availability_zone | region | instance_type_family | instance_type | platform | tenancy | processor | processor_features | database_engine | product_group | product_from_location | product_to_location | current_generation | legal_entity | billing_entity | pricing_unit | usage_quantity | unblended_cost | amortized_cost | ri_sp_trueup | ri_sp_upfront_fees | public_cost |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2024-01-01T00:00:00.000Z | 2024-01-10T00:00:00.000Z | 9.78993E+11 | ****-payment - aws.cloudpack | 1.56083E+11 | ****02 - aws.cloudpack | JPIN24-123456 | Usage | Running_Usage | OnDemand | Â | AmazonS3 | Amazon Simple Storage Service | AWSDataTransfer | Data Transfer | USE1-EUC1-AWS-Out-Bytes | ListAllMyBuckets | $0.02 per GB - US East (Northern Virginia) data transfer to EU (Germany) | Â | us-east-1 | Â | Â | Â | Â | Â | Â | Â | Â | US East (N. Virginia) | EU (Frankfurt) | Â | Amazon Web Services Japan G.K. | AWS | GB | 8.55E-07 | 1.71E-08 | 1.71E-08 | 0 | 0 | 1.71E-08 |
2024å¹´1æã®S3ãã¼ã¿è»¢éã®æéãè¨è¼ããã¦ãããããããä¸ã¤ä¸ã¤ã®æéãã°ã®éåä½ã§ã³ã¹ããã¼ã¿ãå½¢æãããããã®S3ãã¼ã¿ãQuickSightãè¦ã«è¡ã£ã¦ããã·ã¥ãã¼ãã«è¡¨ç¤ºãã¦ããæã
ããã©ã«ãã§QuickSightã«è¡¨ç¤ºãããé ç®ã»å 容
Cost & Usage Dashboard (v1.0.1)ã®è¡¨ç¤ºé
ç®ã¯ãCloud Intelligence Dashboardsã®ããã·ã¥ãã¼ãã®1ã¤ã§ããCUDOSã®ä¸»è¦ãªã·ã¼ãããã¸ã¥ã¢ã« (ã°ã©ãããã£ã¼ã) ãæ½åºãããã®ã®ããã§ãã
ç°¡åã«æ§ç¯ã§ãã AWS ã³ã¹ãå¯è¦åããã·ã¥ãã¼ãã®ã¦ã¼ã¹ã±ã¼ã¹ â Cost and Usage Dashboard (CUD) 㨠CUDOS | Amazon Web Services ããã°
以ä¸ãCUDã«è¡¨ç¤ºãããé
ç®ãã¿ããã¨ã«ãã£ããã£ä»ãã§è¡¨ç¤ºãã¾ãã
ï¼ããã¼ã¿ãªããã¨ãªã£ã¦ãã¦ã°ã©ãããªãç®æã¯ãã£ããã£çç¥ãã¾ãï¼
Executive: Billing Summary
ä¿æããã¢ã«ã¦ã³ãå ¨ä½ã®æ¯æãç¶æ³ã¨å¤åã®å¾åãè«æ±æ¸ã®æ¯åº
Invoice Spendï¼è«æ±æ¸çµè²»ï¼
- Invoice spend by accountï¼ã¢ã«ã¦ã³ãå¥ã®è«æ±æ¸çµè²»ï¼
- Invoice spend by productï¼è£½åå¥ã®è«æ±æ¸çµè²»ï¼
Amortized spendï¼åå´çµè²»ï¼
äºç´ã Savings Plans ãªã©ã®ã³ãããã¡ã³ããã¼ã¹ã®ã³ã¹ããå¥ç´æéå ¨ä½ã«æåãã¦è¡¨â½°ã§ãã¾ããæ¯â½ã®å¾åãææ¡å¯è½ã§ãã
- Amortized spend by accountï¼ã¢ã«ã¦ã³ãå¥ã®åå´çµè²»ï¼
- Amortized spend by productï¼è£½åå¥ã®åå´çµè²»ï¼
- Top 10 spending accountsï¼æ¯åºé¡ä¸ä½10ã¢ã«ã¦ã³ãï¼
Savings and discountsï¼ç¯ç´ã¨å²å¼ï¼
- Discount details: Ctredits, refunds, and other discountsï¼å²å¼ã®è©³ç´°: ã¯ã¬ã¸ãããæãæ»ãããã®ä»ã®å²å¼ï¼
- Total savings and discounts detailsï¼åè¨ç¯ç´é¡ã¨å²å¼ã®è©³ç´°ï¼
Executive: MoM Trendsï¼åææ¯ãã¬ã³ãï¼
ã¢ã«ã¦ã³ãããµã¼ãã¹åä½ããã®ä»ã®ãã£ã¡ã³ã·ã§ã³ã®æ次ã®å¤åå¾å
- Top movers by Product (Amortized without Refunds and Credits)ï¼è£½åå¥ãããå¤åï¼è¿éããã³ã¯ã¬ã¸ãããªãã§åå´ï¼ï¼
製åãã¨ã«ã³ã¹ããæã大ããå¤åããä¸ä½ã®è£½åã示ããã®ã§ãããã£ã¹ã«ã¦ã³ããªã©ã®å½±é¿ãé¤å¤ãããåå´å¦çå¾ã®æ£å³ã®ã³ã¹ãã®æ¨ç§»ãåæãããã¨ã§ã製åã®ååãææ¡ã§ãã¾ãã - Top movers by Account (Amortized)ï¼ã¢ã«ã¦ã³ãå¥ãããå¤åï¼åå´æ¸ã¿ï¼ï¼
åã¢ã«ã¦ã³ãå¥ã«ã³ã¹ãã®å¤åãæã大ããã£ãä¸ä½ã®ã¢ã«ã¦ã³ãã示ããã®ã§ãããã£ã¹ã«ã¦ã³ããªã©ã®å½±é¿ãé¤å¤ãããåå´å¦çå¾ã®æ£å³ã®å¤åãåºæºã«ãã¦ãããç¹ã«å¤§ããå¢æ¸ãã主è¦ãªã¢ã«ã¦ã³ããææ¡ã§ãã¾ãã
Month over month cost trend detailsï¼æãã¨ã®ã³ã¹ãå¾åã®è©³ç´°ï¼
- MoM trends by product code (AWS Marketplace items use product name)ï¼è£½åã³ã¼ãå¥ã®åææ¯ãã¬ã³ãï¼AWSãã¼ã±ãããã¬ã¤ã¹ã®é
ç®ã§ã¯è£½ååã使ç¨ï¼ï¼
- MoM trends by accountï¼ã¢ã«ã¦ã³ãå¥åææ¯ãã¬ã³ãï¼
Month over month amortized cost trend detailsï¼æãã¨ã®åå´ã³ã¹ãå¾åã®è©³ç´°ï¼
- Amortized cost by accountï¼ã¢ã«ã¦ã³ãå¥ã®åå´ã³ã¹ãï¼
- Amortized cost by product family (top 5)ï¼è£½åãã¡ããªã¼å¥ã®åå´ã³ã¹ã(ä¸ä½5)ï¼
- Amortized cost by product (top 10)ï¼è£½åå¥åå´ã³ã¹ã(ä¸ä½10)ï¼
- Amortized cost by regionï¼ãªã¼ã¸ã§ã³å¥åå´ã³ã¹ãï¼
- Amortized cost by operations (top 20)ï¼åå´ã³ã¹ãã®ãªãã¬ã¼ã·ã§ã³å¥å
訳ï¼ä¸ä½20ï¼ï¼
AWS Marketplace
AWS ç¹å®è£½åã®æ次å¾åã¨ã³ã¹ã
- AWS Marketplace spend in last 6 months by legal entityï¼éå»6ãæéã®AWSãã¼ã±ãããã¬ã¤ã¹ã®æ³äººå¥æ¯åºï¼
- AWS Marketplace spend in last 6 months detailed viewï¼éå»6ãæéã®AWSãã¼ã±ãããã¬ã¤ã¹æ¯åºã®è©³ç´°ãã¥ã¼ï¼
Amazon Elastic Compute
EC2ãFargateãLambdaã®ä½¿ç¨ç¶æ³ãå¤åã®å¾å
- EC2 Compute unit cost and Normalized Hours by purchase optionï¼EC2ã³ã³ãã¥ã¼ãã£ã³ã°åä½ã³ã¹ãã¨è³¼å
¥ãªãã·ã§ã³ã«ããæ¨æºæéï¼
- EC2 Coverage by purchase option in Normalized Hoursï¼æ£è¦åæéã§ã®è³¼å
¥ãªãã·ã§ã³ã«ããEC2ã«ãã¬ãã¸ï¼
ãªã¶ã¼ããã¤ã³ã¹ã¿ã³ã¹ããªã³ããã³ãã¤ã³ã¹ã¿ã³ã¹ãã¹ãããã¤ã³ã¹ã¿ã³ã¹ã®å©ç¨ç¶æ³ããå ±éã®å°ºåº¦ï¼Normalized Hoursï¼ã§æ¯è¼ããããã®ãã®ã§ãã
- EC2 Normalized Hours by platformï¼ãã©ãããã©ã¼ã å¥ã®EC2æ£è¦åæéï¼
- Top 10 EC2 running hours spending accounts in the last 3 monthsï¼éå»3ãæéã®EC2å®è¡æéã®æ¶è²»ä¸ä½10ã¢ã«ã¦ã³ãï¼
- Top 10 EC2 running hours spending accounts in the last 2 monthsï¼éå»2ãæéã®EC2å®è¡æéã®æ¶è²»ä¸ä½10ã¢ã«ã¦ã³ãï¼
- Top 10 EC2 running hours spending accounts in the last monthï¼å æã®EC2å®è¡æéã®æ¶è²»ä¸ä½10ã¢ã«ã¦ã³ãï¼
Amazon EC2 Spot instances savings
- EC2 Spot savings
- EC2 Spot savings detailed view
Amazon EC2 Spot instances savings group option controlsï¼EC2ã¹ãããã¤ã³ã¹ã¿ã³ã¹ç¯ç´ã°ã«ã¼ããªãã·ã§ã³ã³ã³ããã¼ã«ï¼
- EC2 daily compute unit cost and Normalized Hours by purchase optionï¼EC2ã®1æ¥ãããã®ã³ã³ãã¥ã¼ãã£ã³ã°åä½ã³ã¹ãã¨è³¼å
¥ãªãã·ã§ã³ã«ããæ¨æºæéï¼
- EC2 daily cost by Instance Familyï¼ã¤ã³ã¹ã¿ã³ã¹ãã¡ããªã¼å¥ã®EC2 1æ¥ãããã®ã³ã¹ãï¼
- Top 10 accounts by EC2 CPU Credits usage costï¼EC2 CPUã¯ã¬ã¸ãã使ç¨ã³ã¹ãä¸ä½10ã¢ã«ã¦ã³ãï¼
- Unused On-Demand capacity reservations cost per accountï¼æªä½¿ç¨ã®ãªã³ããã³ã容éäºç´ã®ã¢ã«ã¦ã³ããããã®ã³ã¹ãï¼
Amazon Fargate Summary
- Fargate accounts by costï¼ã³ã¹ãå¥ã®Fargateã¢ã«ã¦ã³ãï¼
- Fargate cost by purchase optionï¼Fargateè³¼å ¥ãªãã·ã§ã³ã«ããã³ã¹ãï¼
AWS Lambda Summary
- Top 10 Lambda accounts by costï¼ã³ã¹ãå¥Lambdaã¢ã«ã¦ã³ãä¸ä½10件ï¼
- Lambda purchase optionï¼Lambdaè³¼å ¥ãªãã·ã§ã³ï¼
Storage
Amazon Elastic Block Storage (EBS) Summary
EBSãEFSãFSxãªã©ã®ã¹ãã¬ã¼ã¸ãã¡ã¤ã«ã·ã¹ãã
- Top EBS spend accounts in the last 3 monthsï¼éå»3ãæéã®EBSæ¯åºä¸ä½ã¢ã«ã¦ã³ãï¼
- EBS volume coverage (GB-Mo) last monthï¼å
æã®EBSããªã¥ã¼ã ã«ãã¬ãã¸ï¼GB-æï¼ï¼
- EBS Storage Unit Cost in the last 5 monthsï¼éå»5ãæéã®EBSã¹ãã¬ã¼ã¸åä½ã³ã¹ãï¼
- EBS storage spend in the last 5 monthsï¼éå»5ãæéã®EBSã¹ãã¬ã¼ã¸æ¯åºï¼
- EBS operations usage cost in the last 90 daysï¼éå»90æ¥éã®EBSæä½ä½¿ç¨ã³ã¹ãï¼
- EBS snapshot spend in the last 7 monthsï¼éå»7ãæéã®EBSã¹ãããã·ã§ããã®æ¯åºï¼
Storage FS: EFS / FSx
- Storage FS usage cost by top 10 accounts in last 4 monthsï¼éå»4ãæéã®ä¸ä½10ã¢ã«ã¦ã³ãã«ããã¹ãã¬ã¼ã¸FS使ç¨ã³ã¹ãï¼
- Storage FS usage cost by region in last 4 monthsï¼éå»4ãæéã®ãªã¼ã¸ã§ã³å¥ã¹ãã¬ã¼ã¸FS使ç¨ã³ã¹ãï¼
- Storage FS usage cost by product code in last 4 monthsï¼éå»4ãæéã®è£½åã³ã¼ãå¥ã®ã¹ãã¬ã¼ã¸FS使ç¨ã³ã¹ãï¼
- Storage FS usage cost by usage type in last 4 monthsï¼éå»4ãæéã®ä½¿ç¨ã¿ã¤ãå¥ã®ã¹ãã¬ã¼ã¸FS使ç¨ã³ã¹ãï¼
- Storage FS usage cost by operation in last 90 daysï¼éå»90æ¥éã®æä½ã«ããã¹ãã¬ã¼ã¸FS使ç¨ã³ã¹ãï¼
Amazon S3
S3ã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
- Top 10 S3 accounts
- Top 5 accounts migration savings opportunityï¼ã¢ã«ã¦ã³ã移è¡ã«ããç¯ç´æ©ä¼ããã5ï¼
Databases
RDSãDocumentDB (MongoDBäºæ)ãRedshiftãElastiCacheãOpenSearch Serviceãªã©ãã¼ã¿ãã¼ã¹ã«é¢ãã使ç¨ç¶æ³ã¨å¤åã®å¾å
- Amortised cost by accountsï¼ã¢ã«ã¦ã³ãå¥ã®åå´ã³ã¹ãï¼
- Amortised cost by regionsï¼ãªã¼ã¸ã§ã³å¥ã®åå´ã³ã¹ãï¼
- Cost by Service Product Familyï¼ãµã¼ãã¹è£½åå¥ã³ã¹ãï¼
- Cost by Database Enginesï¼ãã¼ã¿ãã¼ã¹ã¨ã³ã¸ã³å¥ã³ã¹ãï¼
RI coverage
稼åã¤ã³ã¹ã¿ã³ã¹ã«ãããRIã®ã«ãã¼çç¶æ³
- RI coverage per region | engine | instance type or family (for size exible) in Normalized Hoursï¼ãªã¼ã¸ã§ã³å¥RIã«ãã¬ã㸠| ã¨ã³ã¸ã³ | ã¤ã³ã¹ã¿ã³ã¹ã¿ã¤ãã¾ãã¯ãã¡ããªã¼ (ãµã¤ãºãæè»ãªå ´å) ã®æ£è¦åæé
- Daily RI coverage in Normalized Hoursï¼æ¨æºåæéã§ã®æ¯æ¥ã®RIã«ãã¬ãã¸ï¼
- Database Daily Elasticity in Normalized Hours by Purchase Optionï¼è³¼å
¥ãªãã·ã§ã³å¥ã®æ£è¦åæéã§ã®ãã¼ã¿ãã¼ã¹ã®æ¯æ¥ã®å¼¾åæ§ï¼
ãã¼ã¿ãã¼ã¹ã®å©ç¨ãªãã·ã§ã³å¥ã«ã1æ¥ã®éè¦å¤åã®å¾åãæéåä½ã§ç¤ºãããã®
- Daily cost by Instance Familyï¼ã¤ã³ã¹ã¿ã³ã¹ãã¡ããªã¼å¥ã®1æ¥ãããã®ã³ã¹ãï¼
- Daily storage cost for Amazon Relational Database Serviceï¼RDSã®1æ¥ãããã®ã¹ãã¬ã¼ã¸ã³ã¹ã
Amazon DynamoDB
DynamoDB ã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
- DynamoDB accounts by categoryï¼ã«ãã´ãªå¥DynamoDBã¢ã«ã¦ã³ãï¼
- 3ã¶æ
- 2ã¶æ
- å æ
- DynamoDB cost per category ï¼ã«ãã´ãªå¥DynamoDBã³ã¹ãï¼
- DynamoDB on-demand usage and costï¼DynamoDBãªã³ããã³ãã®ä½¿ç¨ç¶æ³ã¨ã³ã¹ãï¼
Messaging & Streaming
Kinesis 㨠Managed Streaming for Apache Kafka (Amazon MSK) ã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
Amazon Kinesis
- Amazon Kinesis services cost by accountsï¼Kinesisãµã¼ãã¹ã®ã¢ã«ã¦ã³ãå¥ã³ã¹ãï¼
- Amazon Kinesis cost by serviceï¼Kinesisãµã¼ãã¹å¥ã³ã¹ãï¼
Amazon Managed Streaming for Apache Kafka (MSK)
- Amazon MSK cost by accountsï¼ã¢ã«ã¦ã³ãå¥Amazon MSKã³ã¹ãï¼
- Amazon MSK cost by regionsï¼ãªã¼ã¸ã§ã³å¥Amazon MSKã³ã¹ãï¼
- Amazon MSK cost by usage typeï¼ä½¿ç¨ã¿ã¤ãå¥Amazon MSKã³ã¹ãï¼
- Amazon MSK daily cost by usage typeï¼ä½¿ç¨ã¿ã¤ãå¥Amazon MSK 1æ¥ãããã®ã³ã¹ãï¼
Data Transfer and Networking
ãã¼ã¿è»¢éã¨ãããã¯ã¼ã¯ã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
- Data transfer costs by accounts in last 3 monthsï¼éå»3ãæéã®ã¢ã«ã¦ã³ãå¥ã®ãã¼ã¿è»¢éã³ã¹ãï¼
- Data Transfer Costs per Typeï¼ã¿ã¤ãå¥ã®ãã¼ã¿è»¢éã³ã¹ãï¼
- Data transfer gigabytes per serviceï¼ãµã¼ãã¹ãããã®ãã¼ã¿è»¢éã®ã¬ãã¤ãï¼
- Data transfer details usage and costï¼ãã¼ã¿è»¢éã®è©³ç´°ã使ç¨éãã³ã¹ãï¼
- Data transfer operation per account last monthï¼å æã¢ã«ã¦ã³ããããã®ãã¼ã¿è»¢éæä½ï¼
- Data Transfer Daily GB per Operationsï¼æä½ãã¨ã®ãã¼ã¿è»¢ééï¼1æ¥ãããGBï¼ï¼ï¼ç¹å®ã®æä½ãã¢ã¯ã·ã§ã³ã«é¢é£ãããã¼ã¿è»¢ééããæ¥ãã¨ã«GBåä½ã§è¡¨ããææ¨
- Data transfer usage in GB last monthï¼å æã®ãã¼ã¿è»¢é使ç¨éï¼GBï¼ï¼
Network Resource Utilisation Summaryï¼ãããã¯ã¼ã¯ãªã½ã¼ã¹ä½¿ç¨çã®æ¦è¦ï¼
- Network product group usage cost per top 10 accountsï¼ä¸ä½10ã¢ã«ã¦ã³ããããã®ãããã¯ã¼ã¯è£½åã°ã«ã¼ã使ç¨ã³ã¹ãï¼
Public IPv4 addresses
- Public IPv4 cost and projection in last 30 daysï¼éå»30æ¥éã®ãããªãã¯IPv4ã³ã¹ãã¨äºæ¸¬ï¼
- Public IPv4 cost and projection per account in last 30 daysï¼éå»30æ¥éã®ã¢ã«ã¦ã³ããããã®ãããªãã¯IPv4ã³ã¹ãã¨äºæ¸¬ï¼
Amazon CloudFront Summary
- CloudFront top 10 accounts last 3 monthsï¼éå»3ãæéã®CloudFrontããã10ã¢ã«ã¦ã³ãï¼
- CloudFront regions in last 3 monthsï¼éå»3ãæéã®CloudFrontãªã¼ã¸ã§ã³ï¼
- CloudFront operations in last 3 monthsï¼éå»3ãæéã®CloudFrontãªãã¬ã¼ã·ã§ã³ï¼
AI/ML
SageMaker ã ComprehendãTextractãRekognitionãBedrockã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
Amazon SageMaker Summary
- SageMaker spend per accountï¼ã¢ã«ã¦ã³ããããã®SageMakeræ¯åºï¼
- SageMaker spend per regionï¼ãªã¼ã¸ã§ã³ãã¨ã® SageMakeræ¯åºï¼
- SageMaker training jobs per compute typeï¼ã³ã³ãã¥ã¼ãã£ã³ã°ã¿ã¤ããã¨ã®SageMakerãã¬ã¼ãã³ã°ã¸ã§ãï¼
- SageMaker spend per build environment: Studio vs Notebook instanceï¼SageMakerã®ãã«ãç°å¢ãããã®è²»ç¨: Studioã¨Notebookã¤ã³ã¹ã¿ã³ã¹ï¼
- SageMaker spend and unit cost by instance typeï¼SageMakerã®ã¤ã³ã¹ã¿ã³ã¹ã¿ã¤ãå¥ã®æ¯åºã¨å価ï¼
- SageMaker spend per usage type groupï¼ä½¿ç¨ã¿ã¤ãã°ã«ã¼ããã¨ã®SageMakeræ¯åºï¼
Amazon Comprehend Summary
- Comprehend spend per accountï¼ã¢ã«ã¦ã³ããã¨ã®Comprehendæ¯åºï¼
- Comprehend spend per regionï¼ãªã¼ã¸ã§ã³ãã¨ã®Comprehendæ¯åºï¼
- Comprehend topic modeling cost and usage (MB)ï¼Comprehendãããã¯ã¢ããªã³ã°ã®ã³ã¹ãã¨ä½¿ç¨ç¶æ³ (MB)ï¼
- Comprehend natural language processing cost and usage (Units)ï¼Comprehendèªç¶è¨èªå¦çã®ã³ã¹ãã¨ä½¿ç¨ç¶æ³ï¼åä½ï¼ï¼
Amazon Textract and Rekognition Summary
- Amazon Textract and Rekognition spend per accountï¼ã¢ã«ã¦ã³ããã¨ã®Amazon Textractããã³Rekognitionã®æ¯åºï¼
-  Amazon Textract and Rekognition spend per regionï¼ãªã¼ã¸ã§ã³ãã¨ã®Amazon Textractããã³Rekognitionã®æ¯åºï¼
-  Amazon Textract and Rekognition spend per serviceï¼ãµã¼ãã¹ãã¨ã®Amazon Textractããã³Rekognitionã®æ¯åºï¼
- Amazon Textract and Rekognition units processedï¼Amazon Textractããã³Rekognitionã®å¦çãããåä½ï¼
-  Amazon Textract and Rekognition daily cost and unitsï¼Amazon Textractããã³Rekognitionã®æ¯æ¥ã®ã³ã¹ãã¨åä½ï¼
Monitoring & Observability
CloudWatchã¨CloudTrailã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
Amazon CloudWatch
- CloudWatch usage cost by accountsï¼ã¢ã«ã¦ã³ãå¥ã®CloudWatch使ç¨ã³ã¹ãï¼
- CloudWatch usage cost per usage type groupï¼ä½¿ç¨ã¿ã¤ãã°ã«ã¼ããã¨ã®CloudWatch使ç¨ã³ã¹ãï¼
- CloudWatch usage cost per operation ï¼CloudWatchæä½ãã¨ã®ä½¿ç¨ã³ã¹ãï¼
- CloudWatch usage cost per usage typeï¼ä½¿ç¨ã¿ã¤ããã¨ã®CloudWatch使ç¨ã³ã¹ãï¼
AWS CloudTrial
- Top 10 CloudTrail usage cost by accountsï¼ã¢ã«ã¦ã³ãå¥ã®CloudTrail使ç¨ã³ã¹ãä¸ä½10件ï¼
- CloudTrail Usage Cost by Usage Typeï¼ä½¿ç¨ã¿ã¤ãå¥ã®CloudTrail使ç¨ã³ã¹ãï¼
AWS Config
- AWS Config usage cost by accountsï¼ã¢ã«ã¦ã³ãå¥ã®AWS Config使ç¨ã³ã¹ãï¼
- AWS Config Usage Cost by Regionï¼ãªã¼ã¸ã§ã³å¥ã®AWS Config使ç¨ã³ã¹ãï¼
- AWS Config usage by usage type groupï¼ä½¿ç¨ã¿ã¤ãã°ã«ã¼ãå¥ã®AWS Config使ç¨ç¶æ³ï¼
- AWS Config usage cost by usage type groupï¼ä½¿ç¨ã¿ã¤ãã°ã«ã¼ãå¥ã®AWS Config使ç¨ã³ã¹ãï¼
Amazon WorkSpaces
Amazon Workspacesã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
- Workspaces spend per top 10 accountsï¼ä¸ä½10ã¢ã«ã¦ã³ããã¨ã®ã¯ã¼ã¯ã¹ãã¼ã¹æ¯åºï¼
- Workspaces spend per bundleï¼ãã³ãã«ãã¨ã®ã¯ã¼ã¯ã¹ãã¼ã¹æ¯åºï¼
- Workspaces spend per regionï¼ãªã¼ã¸ã§ã³ãã¨ã®ã¯ã¼ã¯ã¹ãã¼ã¹æ¯åºï¼
- Workspaces spend per running modeï¼å®è¡ã¢ã¼ããã¨ã®ã¯ã¼ã¯ã¹ãã¼ã¹ã®æ¯åºï¼
GameTech & Media
Amazon GameLift 㨠AWS Elemental MediaConnect ãªã©ã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
- GameLift cost by accountsï¼ã¢ã«ã¦ã³ããã¨ã®GameLiftã³ã¹ãï¼
- GameLift cost by regionï¼ãªã¼ã¸ã§ã³ãã¨ã®GameLiftã³ã¹ãï¼
- GameLift costs by instance typesï¼ã¤ã³ã¹ã¿ã³ã¹ã¿ã¤ããã¨ã®GameLiftã³ã¹ãï¼
- GameLift operationï¼GameLiftã®æä½ï¼
- GameLift instance types in last 90 daysï¼éå»90æ¥éã®GameLiftã¤ã³ã¹ã¿ã³ã¹ã¿ã¤ãï¼
AWS Elemental Summary
- Elemental cost by accountsï¼ã¢ã«ã¦ã³ããã¨ã®Elementalã³ã¹ãï¼
- Elemental cost by product familyï¼ãããã¯ããã¡ããªã¼ãã¨ã®Elementalã³ã¹ãï¼
- Elemental MediaConvert elasticity by purchase optionï¼è³¼å ¥ãªãã·ã§ã³ã«ããElemental MediaConvertå¼¾åæ§ï¼
- Elemental Elasticity by purchase optionï¼è³¼å ¥ãªãã·ã§ã³ã«ããElementalå¼¾åæ§ï¼
OPTICS Explorer
ãã®ä»ãã¹ã¦ã®ä½¿ç¨ç¶æ³ã¨å¤åã®å¾å
- Spend chart monthlyï¼æéæ¯åºãã£ã¼ãï¼
- Forecast spend in next 6 monthsï¼ä»å¾6ãæéã®æ¯åºäºæ¸¬ï¼
- Spend chart dailyï¼æ¯åºãã£ã¼ãï¼æ¥å¥ï¼ï¼
- Spend tableï¼æ¯åºè¡¨ï¼
- Top 10 accounts to Top 10 resources relationï¼ä¸ä½10ã¢ã«ã¦ã³ãã¨ä¸ä½10ãªã½ã¼ã¹ã®é¢ä¿ï¼
- Amortized usage cost per operationï¼æä½ãã¨ã®åå´ä½¿ç¨ã³ã¹ãï¼
å¾å§æ«
æ¬æ¤è¨¼ã§ä½æããQuickSightãã¹ã¦ã®ãªã½ã¼ã¹ãåé¤ãã¾ãã
ãã¼ã¿ã¨ã¯ã¹ãã¼ãã®åé¤èªä½ã¯[è«æ±ã¨ã³ã¹ã管ç]ããã§ãã§ããã®ã§ãããQuickSightããã®æ¹ããã¹ã¦åé¤ã§ããã®ã§ãQuickSightããããã¾ãã
1ï¼[è«æ±ã¨ã³ã¹ã管ç] > [ãã¼ã¿ã¨ã¯ã¹ãã¼ã]ããããcostanalysis-exportããåé¤
ãã®ããã«S3ã¨QuickSightã®æ¹ã¯æ®ããããããããå¾ã§åé¤ãã¾ãã
2ï¼å½è©²ã¢ã«ã¦ã³ãã®QuickSight UIã«ãã°ã¤ã³
3ï¼[åæ]ãããçæãããåæãcostanalysis-export analysisãããã¹ã¦åé¤
4ï¼[ããã·ã¥ãã¼ã]ããããcostanalysis-exportããåé¤
5ï¼[ãã¼ã¿ã»ãã]ããããcostanalysis-exportããåé¤
6ï¼[QuickSightã管ç]ã«ç§»å
[ã»ãã¥ãªãã£ã¨ã¢ã¯ã»ã¹è¨±å¯] > [管ç]ãããS3ãã±ãã[quicksight-dataexport]ã®ãã§ãã¯ãå¤ãã¦[å®äº] > [ä¿å]
7ï¼QuickSightã¢ã«ã¦ã³ãã®åé¤
ä½æããQuickSightã¢ã«ã¦ã³ããåé¤ããã«ã¯ãAmazon QuickSight ãµãã¹ã¯ãªãã·ã§ã³ã®åé¤ã¨ã¢ã«ã¦ã³ãã®éé - Amazon QuickSightã®ãQuickSight UI ã使ç¨ãã¦ã¢ã«ã¦ã³ããçµäºããã«ã¯ãã«å¾ãã¾ãã
[ã¢ã«ã¦ã³ãè¨å®] > [管ç]
ãã¢ã«ã¦ã³ãã®çµäºä¿è·ã¯ on ã§ããããoffã«ããã確èªããå ¥åãã¦[ã¢ã«ã¦ã³ããåé¤]
8ï¼S3åé¤
ãã±ãããquicksight-dataexportããã¾ã空ã«ãã¾ãã
次ã«åé¤
çªå¤ç·¨ï¼è¦æ³¨æï¼ï¼
å®ã¯CUDã¨ã¯ç´æ¥é¢ä¿ãªããã§ããããã®æ¤è¨¼ãå§ãã¦ããããæ¥QuickSightã§ã¨ãã§ããªãæéã課éããã¦ãããã¨ã«æ°ã¥ãã¾ããã
å 訳ãè¦ãã¨ããQS Paginated Reports Monthly Subscription 225 Reportãã¨ãªã£ã¦ãã¾ãããã¼ã¸åå²ãããã¬ãã¼ãã®æéãµãã¹ã¯ãªãã·ã§ã³ã225ã¬ãã¼ãã¨ããæå³ã§ãããã¼ã¸åå²ã¬ãã¼ãã¨ã¯
Amazon ã§ã®ãã¼ã¸åå²ã¬ãã¼ãã®ä½¿ç¨ QuickSight - Amazon QuickSight
Amazon QuickSight ãã¼ã¸åå²ã¬ãã¼ãã使ç¨ããã¨ãé«åº¦ã«ãã©ã¼ããããããè¤æ°ãã¼ã¸ã® PDF ã¬ãã¼ããä½æãã¹ã±ã¸ã¥ã¼ã«ãå ±æã§ãã¾ããããã«ãããããã¾ã§å¥ã ã ã£ãããã·ã¥ãã¼ãã¨ã¬ãã¼ãã®ã·ã¹ãã ãçµ±åããã¾ãã
ãããªæ©è½ä½¿ã£ãè¦ãããªãã®ã§ãQuickSightã®[ä¾¡æ ¼ã管ç]ã調ã¹ã¦ã¿ãã¨ã確ãã«ãã£ããæå¹ã«ãªã£ã¦ã¾ããã
ï¼ãã©ã³ãããã«è§£ç´ããã®ã§ãç»åã§ã¯æ®ãæ¥æ°ã表示ããã¦ã¾ãï¼
誰ãæå¹ã«ããã®ããªã¨ãCloudTrailã§Subscriptionãªã©ã®ã¤ãã³ãåã§æ¤ç´¢ãã¦ãå
¨ããããããã
ã©ãããQuickSightã«æ°è¦ã«ã¢ãµã¤ã³ããã¨ããæ±äº¬ãªã¼ã¸ã§ã³ã«ããã¨ãã¼ã¸åå²ã¬ãã¼ãã¢ããªã³ãããã©ã«ãONã«ãªãããã§ãã確ãã«ä¸ã®æ¹ã¾ã§ããè¦ãããã©ã«ãã®ã¾ã¾é²ããè¨æ¶ãããã¾ãã
225ãã«æ¥å²ãã§èª²éããã¦ããã¨ãããã¨ã¯ã225ãã«Ã·31æ¥ï¼14æ¥ãã¤ã¾ã31â14ï¼17æ¥ãã課éãçºçãããã¨ã«ãªããèªåã使ãå§ããã®ã¯ãã®17æ¥ã®è¾ºããªã®ã§ç¬¦å·ãã¦ã¾ãã
ã©ãããä»å¹´ã®4æã®QuickSightã®ã¢ãããã¼ã辺ããããæ°ããQuickSightã«ãµã¤ã³ã¢ããããã¨ãã¯ãã¼ã¸åå²ã¬ãã¼ãã¢ããªã³ã¯ããã©ã«ããªã³ã«ãªããããªã®ã§è¦æ³¨æã§ãï¼ããã§æ³¨æåèµ·ãã¦ããã¾ãã
æè¦æé
2æé